diff options
author | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-12-07 23:23:29 +0100 |
---|---|---|
committer | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-12-07 23:23:29 +0100 |
commit | 5ed122e334449fda0071c4572ce445ed9f2ede4e (patch) | |
tree | d68413698a282c1684c280cf670e09167109ed50 /src/library | |
parent | 6bac62651147ff2a902347522a629aea13d81f17 (diff) | |
parent | e0f70a2cc1d10b65f5b7cf5bd832121510e66a11 (diff) |
Merge branch '2.3' of github.com:mixxxdj/mixxx into cleanup-headers
Diffstat (limited to 'src/library')
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 |