summaryrefslogtreecommitdiffstats
path: root/src/library
diff options
context:
space:
mode:
authorJan Holthuis <jan.holthuis@ruhr-uni-bochum.de>2020-12-07 23:23:29 +0100
committerJan Holthuis <jan.holthuis@ruhr-uni-bochum.de>2020-12-07 23:23:29 +0100
commit5ed122e334449fda0071c4572ce445ed9f2ede4e (patch)
treed68413698a282c1684c280cf670e09167109ed50 /src/library
parent6bac62651147ff2a902347522a629aea13d81f17 (diff)
parente0f70a2cc1d10b65f5b7cf5bd832121510e66a11 (diff)
Merge branch '2.3' of github.com:mixxxdj/mixxx into cleanup-headers
Diffstat (limited to 'src/library')
-rw-r--r--src/library/analysisfeature.cpp14
-rw-r--r--src/library/analysislibrarytablemodel.cpp2
-rw-r--r--src/library/autodj/autodjfeature.cpp1
-rw-r--r--src/library/autodj/autodjprocessor.cpp1
-rw-r--r--src/library/autodj/dlgautodj.cpp1
-rw-r--r--src/library/banshee/bansheefeature.cpp1
-rw-r--r--src/library/banshee/bansheeplaylistmodel.cpp1
-rw-r--r--src/library/baseexternallibraryfeature.cpp3
-rw-r--r--src/library/baseexternalplaylistmodel.cpp1
-rw-r--r--src/library/baseexternaltrackmodel.cpp1
-rw-r--r--src/library/baseplaylistfeature.cpp1
-rw-r--r--src/library/basesqltablemodel.cpp1
-rw-r--r--src/library/basetrackcache.cpp1
-rw-r--r--src/library/basetracksetfeature.cpp2
-rw-r--r--src/library/basetracktablemodel.cpp372
-rw-r--r--src/library/basetracktablemodel.h52
-rw-r--r--src/library/bpmdelegate.cpp12
-rw-r--r--src/library/browse/browsefeature.cpp6
-rw-r--r--src/library/browse/browsetablemodel.cpp1
-rw-r--r--src/library/browse/browsethread.cpp3
-rw-r--r--src/library/browse/foldertreemodel.cpp5
-rw-r--r--src/library/colordelegate.cpp1
-rw-r--r--src/library/columncache.cpp6
-rw-r--r--src/library/coverartcache.cpp1
-rw-r--r--src/library/coverartdelegate.cpp1
-rw-r--r--src/library/crate/cratefeature.cpp1
-rw-r--r--src/library/crate/cratefeaturehelper.cpp2
-rw-r--r--src/library/crate/cratetablemodel.cpp1
-rw-r--r--src/library/dao/autodjcratesdao.cpp2
-rw-r--r--src/library/dao/playlistdao.cpp2
-rw-r--r--src/library/dao/trackdao.cpp1
-rw-r--r--src/library/dlganalysis.cpp14
-rw-r--r--src/library/dlgcoverartfullsize.cpp1
-rw-r--r--src/library/dlghidden.cpp3
-rw-r--r--src/library/dlgmissing.cpp3
-rw-r--r--src/library/dlgtagfetcher.cpp1
-rw-r--r--src/library/dlgtrackinfo.cpp1
-rw-r--r--src/library/dlgtrackmetadataexport.cpp1
-rw-r--r--src/library/export/trackexportdlg.cpp3
-rw-r--r--src/library/export/trackexportwizard.cpp3
-rw-r--r--src/library/export/trackexportworker.cpp1
-rw-r--r--src/library/externaltrackcollection.cpp1
-rw-r--r--src/library/hiddentablemodel.cpp4
-rw-r--r--src/library/itunes/itunesfeature.cpp23
-rw-r--r--src/library/library.cpp41
-rw-r--r--src/library/librarycontrol.cpp5
-rw-r--r--src/library/libraryfeature.cpp5
-rw-r--r--src/library/librarytablemodel.cpp4
-rw-r--r--src/library/locationdelegate.cpp1
-rw-r--r--src/library/missingtablemodel.cpp3
-rw-r--r--src/library/mixxxlibraryfeature.cpp1
-rw-r--r--src/library/parsercsv.cpp6
-rw-r--r--src/library/parserm3u.cpp6
-rw-r--r--src/library/parserpls.cpp6
-rw-r--r--src/library/playlistfeature.cpp1
-rw-r--r--src/library/playlisttablemodel.cpp2
-rw-r--r--src/library/previewbuttondelegate.cpp1
-rw-r--r--src/library/recording/dlgrecording.cpp1
-rw-r--r--src/library/recording/recordingfeature.cpp12
-rw-r--r--src/library/rekordbox/rekordboxfeature.cpp1
-rw-r--r--src/library/rhythmbox/rhythmboxfeature.cpp11
-rw-r--r--src/library/scanner/importfilestask.cpp1
-rw-r--r--src/library/scanner/libraryscanner.cpp1
-rw-r--r--src/library/scanner/libraryscannerdlg.cpp4
-rw-r--r--src/library/scanner/recursivescandirectorytask.cpp7
-rw-r--r--src/library/scanner/scannertask.cpp2
-rw-r--r--src/library/serato/seratofeature.cpp1
-rw-r--r--src/library/setlogfeature.cpp1
-rw-r--r--src/library/sidebarmodel.cpp10
-rw-r--r--src/library/songdownloader.cpp1
-rw-r--r--src/library/stardelegate.cpp1
-rw-r--r--src/library/stareditor.cpp4
-rw-r--r--src/library/starrating.cpp16
-rw-r--r--src/library/starrating.h27
-rw-r--r--src/library/tableitemdelegate.cpp1
-rw-r--r--src/library/trackcollection.cpp5
-rw-r--r--src/library/trackcollectionmanager.cpp1
-rw-r--r--src/library/trackloader.cpp3
-rw-r--r--src/library/trackprocessing.cpp1
-rw-r--r--src/library/traktor/traktorfeature.cpp13
-rw-r--r--src/library/treeitemmodel.cpp1
81 files changed, 541 insertions, 226 deletions
diff --git a/src/library/analysisfeature.cpp b/src/library/analysisfeature.cpp
index 67308ec958..5ef8dd6b24 100644
--- a/src/library/analysisfeature.cpp
+++ b/src/library/analysisfeature.cpp
@@ -1,18 +1,18 @@
-#include <QtDebug>
-
-#include "library/library.h"
#include "library/analysisfeature.h"
+#include <QtDebug>
+
+#include "controllers/keyboard/keyboardeventfilter.h"
+#include "library/dlganalysis.h"
#include "library/library.h"
#include "library/librarytablemodel.h"
#include "library/trackcollection.h"
-#include "library/dlganalysis.h"
-#include "widget/wlibrary.h"
-#include "controllers/keyboard/keyboardeventfilter.h"
+#include "moc_analysisfeature.cpp"
#include "sources/soundsourceproxy.h"
-#include "util/dnd.h"
#include "util/debug.h"
+#include "util/dnd.h"
#include "util/logger.h"
+#include "widget/wlibrary.h"
namespace {
diff --git a/src/library/analysislibrarytablemodel.cpp b/src/library/analysislibrarytablemodel.cpp
index 2e726fb6aa..4eeccbf5e1 100644
--- a/src/library/analysislibrarytablemodel.cpp
+++ b/src/library/analysislibrarytablemodel.cpp
@@ -1,5 +1,7 @@
#include "library/analysislibrarytablemodel.h"
+#include "moc_analysislibrarytablemodel.cpp"
+
namespace {
const QString RECENT_FILTER = "datetime_added > datetime('now', '-7 days')";
diff --git a/src/library/autodj/autodjfeature.cpp b/src/library/autodj/autodjfeature.cpp
index 8a39556978..6209eff423 100644
--- a/src/library/autodj/autodjfeature.cpp
+++ b/src/library/autodj/autodjfeature.cpp
@@ -14,6 +14,7 @@
#include "library/trackcollectionmanager.h"
#include "library/treeitem.h"
#include "mixer/playermanager.h"
+#include "moc_autodjfeature.cpp"
#include "sources/soundsourceproxy.h"
#include "track/track.h"
#include "util/compatibility.h"
diff --git a/src/library/autodj/autodjprocessor.cpp b/src/library/autodj/autodjprocessor.cpp
index 5c5ebf2ea8..029876bbb3 100644
--- a/src/library/autodj/autodjprocessor.cpp
+++ b/src/library/autodj/autodjprocessor.cpp
@@ -6,6 +6,7 @@
#include "library/trackcollection.h"
#include "mixer/basetrackplayer.h"
#include "mixer/playermanager.h"
+#include "moc_autodjprocessor.cpp"
#include "track/track.h"
#include "util/math.h"
diff --git a/src/library/autodj/dlgautodj.cpp b/src/library/autodj/dlgautodj.cpp
index aede1ad54c..f56c0054e4 100644
--- a/src/library/autodj/dlgautodj.cpp
+++ b/src/library/autodj/dlgautodj.cpp
@@ -4,6 +4,7 @@
#include "library/playlisttablemodel.h"
#include "library/trackcollectionmanager.h"
+#include "moc_dlgautodj.cpp"
#include "track/track.h"
#include "util/assert.h"
#include "util/compatibility.h"
diff --git a/src/library/banshee/bansheefeature.cpp b/src/library/banshee/bansheefeature.cpp
index ee6f9a8333..faed634666 100644
--- a/src/library/banshee/bansheefeature.cpp
+++ b/src/library/banshee/bansheefeature.cpp
@@ -10,6 +10,7 @@
#include "library/dao/settingsdao.h"
#include "library/library.h"
#include "library/trackcollectionmanager.h"
+#include "moc_bansheefeature.cpp"
#include "track/track.h"
const QString BansheeFeature::BANSHEE_MOUNT_KEY = "mixxx.BansheeFeature.mount";
diff --git a/src/library/banshee/bansheeplaylistmodel.cpp b/src/library/banshee/bansheeplaylistmodel.cpp
index 61d0c919e8..f3a7b70eba 100644
--- a/src/library/banshee/bansheeplaylistmodel.cpp
+++ b/src/library/banshee/bansheeplaylistmodel.cpp
@@ -8,6 +8,7 @@
#include "library/starrating.h"
#include "library/trackcollectionmanager.h"
#include "mixer/playermanager.h"
+#include "moc_bansheeplaylistmodel.cpp"
#include "track/beatfactory.h"
#include "track/beats.h"
#include "track/track.h"
diff --git a/src/library/baseexternallibraryfeature.cpp b/src/library/baseexternallibraryfeature.cpp
index 7f4604e0cb..32b4160c04 100644
--- a/src/library/baseexternallibraryfeature.cpp
+++ b/src/library/baseexternallibraryfeature.cpp
@@ -6,8 +6,9 @@
#include "library/library.h"
#include "library/trackcollection.h"
#include "library/trackcollectionmanager.h"
-#include "widget/wlibrarysidebar.h"
+#include "moc_baseexternallibraryfeature.cpp"
#include "util/logger.h"
+#include "widget/wlibrarysidebar.h"
namespace {
diff --git a/src/library/baseexternalplaylistmodel.cpp b/src/library/baseexternalplaylistmodel.cpp
index 77b39dcf2f..c419cdba6b 100644
--- a/src/library/baseexternalplaylistmodel.cpp
+++ b/src/library/baseexternalplaylistmodel.cpp
@@ -5,6 +5,7 @@
#include "library/trackcollection.h"
#include "library/trackcollectionmanager.h"
#include "mixer/playermanager.h"
+#include "moc_baseexternalplaylistmodel.cpp"
#include "track/track.h"
BaseExternalPlaylistModel::BaseExternalPlaylistModel(QObject* parent,
diff --git a/src/library/baseexternaltrackmodel.cpp b/src/library/baseexternaltrackmodel.cpp
index 96b909d957..ca48510a08 100644
--- a/src/library/baseexternaltrackmodel.cpp
+++ b/src/library/baseexternaltrackmodel.cpp
@@ -4,6 +4,7 @@
#include "library/queryutil.h"
#include "library/trackcollectionmanager.h"
#include "mixer/playermanager.h"
+#include "moc_baseexternaltrackmodel.cpp"
#include "track/track.h"
BaseExternalTrackModel::BaseExternalTrackModel(QObject* parent,
diff --git a/src/library/baseplaylistfeature.cpp b/src/library/baseplaylistfeature.cpp
index 9f7d897f80..c6be511351 100644
--- a/src/library/baseplaylistfeature.cpp
+++ b/src/library/baseplaylistfeature.cpp
@@ -16,6 +16,7 @@
#include "library/trackcollection.h"
#include "library/trackcollectionmanager.h"
#include "library/treeitem.h"
+#include "moc_baseplaylistfeature.cpp"
#include "track/track.h"
#include "util/assert.h"
#include "widget/wlibrary.h"
diff --git a/src/library/basesqltablemodel.cpp b/src/library/basesqltablemodel.cpp
index feee3b4ef8..eea7c328a1 100644
--- a/src/library/basesqltablemodel.cpp
+++ b/src/library/basesqltablemodel.cpp
@@ -10,6 +10,7 @@
#include "library/trackcollection.h"
#include "library/trackcollectionmanager.h"
#include "mixer/playermanager.h"
+#include "moc_basesqltablemodel.cpp"
#include "track/keyutils.h"
#include "track/track.h"
#include "track/trackmetadata.h"
diff --git a/src/library/basetrackcache.cpp b/src/library/basetrackcache.cpp
index 93f3e1931a..e9cb79293d 100644
--- a/src/library/basetrackcache.cpp
+++ b/src/library/basetrackcache.cpp
@@ -3,6 +3,7 @@
#include "library/queryutil.h"
#include "library/searchqueryparser.h"
#include "library/trackcollection.h"
+#include "moc_basetrackcache.cpp"
#include "track/globaltrackcache.h"
#include "track/keyutils.h"
#include "track/track.h"
diff --git a/src/library/basetracksetfeature.cpp b/src/library/basetracksetfeature.cpp
index f3160a6659..0521895777 100644
--- a/src/library/basetracksetfeature.cpp
+++ b/src/library/basetracksetfeature.cpp
@@ -1,5 +1,7 @@
#include "library/basetracksetfeature.h"
+#include "moc_basetracksetfeature.cpp"
+
BaseTrackSetFeature::BaseTrackSetFeature(
Library* pLibrary,
UserSettingsPointer pConfig,
diff --git a/src/library/basetracktablemodel.cpp b/src/library/basetracktablemodel.cpp
index 01b26920e0..b7881f23c6 100644
--- a/src/library/basetracktablemodel.cpp
+++ b/src/library/basetracktablemodel.cpp
@@ -13,6 +13,7 @@
#include "library/trackcollectionmanager.h"
#include "mixer/playerinfo.h"
#include "mixer/playermanager.h"
+#include "moc_basetracktablemodel.cpp"
#include "track/track.h"
#include "util/assert.h"
#include "util/compatibility.h"
@@ -402,19 +403,14 @@ QVariant BaseTrackTableModel::data(
}
if (role == Qt::BackgroundRole) {
- QModelIndex colorIndex = index.sibling(
- index.row(),
- fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_COLOR));
- if (!colorIndex.isValid()) {
+ const auto rgbColorValue = rawSiblingValue(
+ index,
+ ColumnCache::COLUMN_LIBRARYTABLE_COLOR);
+ const auto rgbColor = mixxx::RgbColor::fromQVariant(rgbColorValue);
+ if (!rgbColor) {
return QVariant();
}
- const auto trackColor =
- mixxx::RgbColor::fromQVariant(
- rawValue(colorIndex));
- if (!trackColor) {
- return QVariant();
- }
- auto bgColor = mixxx::RgbColor::toQColor(trackColor);
+ auto bgColor = mixxx::RgbColor::toQColor(rgbColor);
DEBUG_ASSERT(bgColor.isValid());
DEBUG_ASSERT(m_backgroundColorOpacity >= 0.0);
DEBUG_ASSERT(m_backgroundColorOpacity <= 1.0);
@@ -433,23 +429,65 @@ QVariant BaseTrackTableModel::data(
return roleValue(index, rawValue(index), role);
}
+QVariant BaseTrackTableModel::rawValue(
+ const QModelIndex& index) const {
+ VERIFY_OR_DEBUG_ASSERT(index.isValid()) {
+ return QVariant();
+ }
+ const auto field = mapColumn(index.column());
+ if (field == ColumnCache::COLUMN_LIBRARYTABLE_INVALID) {
+ return QVariant();
+ }
+ return rawSiblingValue(index, field);
+}
+
+QVariant BaseTrackTableModel::rawSiblingValue(
+ const QModelIndex& index,
+ ColumnCache::Column siblingField) const {
+ VERIFY_OR_DEBUG_ASSERT(index.isValid()) {
+ return QVariant();
+ }
+ VERIFY_OR_DEBUG_ASSERT(siblingField != ColumnCache::COLUMN_LIBRARYTABLE_INVALID) {
+ return QVariant();
+ }
+ const auto siblingColumn = fieldIndex(siblingField);
+ DEBUG_ASSERT(siblingColumn >= 0);
+ VERIFY_OR_DEBUG_ASSERT(siblingColumn != index.column()) {
+ // Prevent infinite recursion
+ return QVariant();
+ }
+ const auto siblingIndex = index.sibling(index.row(), siblingColumn);
+ return rawValue(siblingIndex);
+}
+
bool BaseTrackTableModel::setData(
const QModelIndex& index,
const QVariant& value,
int role) {
const int column = index.column();
-
- // Override sets to TIMESPLAYED and redirect them to PLAYED
if (role == Qt::CheckStateRole) {
- const auto val = value.toInt() > 0;
- if (column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_TIMESPLAYED)) {
- QModelIndex playedIndex = index.sibling(index.row(), fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_PLAYED));
- return setData(playedIndex, val, Qt::EditRole);
- } else if (column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BPM)) {
- QModelIndex bpmLockindex = index.sibling(index.row(), fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BPM_LOCK));
- return setData(bpmLockindex, val, Qt::EditRole);
+ const auto field = mapColumn(index.column());
+ if (field == ColumnCache::COLUMN_LIBRARYTABLE_INVALID) {
+ return false;
+ }
+ const auto checked = value.toInt() > 0;
+ switch (field) {
+ case ColumnCache::COLUMN_LIBRARYTABLE_TIMESPLAYED: {
+ // Override sets to TIMESPLAYED and redirect them to PLAYED
+ QModelIndex playedIndex = index.sibling(
+ index.row(),
+ fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_PLAYED));
+ return setData(playedIndex, checked, Qt::EditRole);
+ }
+ case ColumnCache::COLUMN_LIBRARYTABLE_BPM: {
+ QModelIndex bpmLockedIndex = index.sibling(
+ index.row(),
+ fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BPM_LOCK));
+ return setData(bpmLockedIndex, checked, Qt::EditRole);
+ }
+ default:
+ return false;
}
- return false;
}
TrackPointer pTrack = getTrack(index);
@@ -499,133 +537,263 @@ QVariant BaseTrackTableModel::roleValue(
const QModelIndex& index,
QVariant&& rawValue,
int role) const {
- const int column = index.column();
- // Format the value based on whether we are in a tooltip,
- // display, or edit role
+ const auto field = mapColumn(index.column());
+ if (field == ColumnCache::COLUMN_LIBRARYTABLE_INVALID) {
+ return std::move(rawValue);
+ }
switch (role) {
case Qt::ToolTipRole:
- if (column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_COLOR)) {
+ switch (field) {
+ case ColumnCache::COLUMN_LIBRARYTABLE_COLOR:
return mixxx::RgbColor::toQString(mixxx::RgbColor::fromQVariant(rawValue));
- } else if (column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_COVERART)) {
+ case ColumnCache::COLUMN_LIBRARYTABLE_COVERART:
return composeCoverArtToolTipHt