summaryrefslogtreecommitdiffstats
path: root/src/library
diff options
context:
space:
mode:
authorRJ Skerry-Ryan <rryan@mixxx.org>2018-12-26 09:27:13 -0800
committerRJ Skerry-Ryan <rryan@mixxx.org>2018-12-26 09:27:13 -0800
commit974bb2ad1b7ad1a06ddfc167903d29d977b142cc (patch)
treecd06248fb943ddc3f5de7ac861964ad50df4332f /src/library
parentc05360f110f0280c028cf4d42fc4add94924f7c8 (diff)
parent84ca00e624d8ceaa0ce9d503f699ec37b0718e39 (diff)
Merge remote-tracking branch 'mixxxdj/master' into remove-vamp
Diffstat (limited to 'src/library')
-rw-r--r--src/library/analysisfeature.cpp5
-rw-r--r--src/library/analysisfeature.h1
-rw-r--r--src/library/autodj/autodjfeature.cpp7
-rw-r--r--src/library/autodj/autodjfeature.h2
-rw-r--r--src/library/banshee/bansheedbconnection.cpp12
-rw-r--r--src/library/banshee/bansheedbconnection.h10
-rw-r--r--src/library/banshee/bansheefeature.cpp6
-rw-r--r--src/library/banshee/bansheefeature.h1
-rw-r--r--src/library/banshee/bansheeplaylistmodel.cpp73
-rw-r--r--src/library/banshee/bansheeplaylistmodel.h4
-rw-r--r--src/library/baseexternallibraryfeature.cpp11
-rw-r--r--src/library/baseexternalplaylistmodel.cpp9
-rw-r--r--src/library/baseexternalplaylistmodel.h1
-rw-r--r--src/library/baseplaylistfeature.cpp18
-rw-r--r--src/library/basetrackcache.cpp7
-rw-r--r--src/library/basetrackcache.h3
-rw-r--r--src/library/browse/browsefeature.cpp7
-rw-r--r--src/library/browse/browsefeature.h1
-rw-r--r--src/library/browse/foldertreemodel.cpp4
-rw-r--r--src/library/crate/cratefeature.cpp4
-rw-r--r--src/library/crate/cratestorage.cpp27
-rw-r--r--src/library/crate/cratestorage.h39
-rw-r--r--src/library/crate/cratetablemodel.cpp4
-rw-r--r--src/library/dao/analysisdao.cpp1
-rw-r--r--src/library/dao/playlistdao.cpp7
-rw-r--r--src/library/dao/trackdao.cpp4
-rw-r--r--src/library/dlghidden.cpp4
-rw-r--r--src/library/dlghidden.h2
-rw-r--r--src/library/dlgmissing.cpp4
-rw-r--r--src/library/dlgmissing.h2
-rw-r--r--src/library/dlgtrackmetadataexport.h1
-rw-r--r--src/library/export/trackexportworker.cpp64
-rw-r--r--src/library/itunes/itunesfeature.cpp5
-rw-r--r--src/library/itunes/itunesfeature.h1
-rw-r--r--src/library/library.cpp14
-rw-r--r--src/library/library.h5
-rw-r--r--src/library/libraryfeature.h1
-rw-r--r--src/library/librarytablemodel.cpp4
-rw-r--r--src/library/mixxxlibraryfeature.cpp10
-rw-r--r--src/library/mixxxlibraryfeature.h1
-rw-r--r--src/library/parserm3u.cpp10
-rw-r--r--src/library/playlistfeature.cpp5
-rw-r--r--src/library/playlistfeature.h1
-rw-r--r--src/library/playlisttablemodel.cpp4
-rw-r--r--src/library/proxytrackmodel.cpp2
-rw-r--r--src/library/recording/recordingfeature.cpp5
-rw-r--r--src/library/recording/recordingfeature.h1
-rw-r--r--src/library/rhythmbox/rhythmboxfeature.cpp5
-rw-r--r--src/library/rhythmbox/rhythmboxfeature.h1
-rw-r--r--src/library/scanner/libraryscannerdlg.cpp2
-rw-r--r--src/library/searchquery.cpp116
-rw-r--r--src/library/searchquery.h48
-rw-r--r--src/library/searchqueryparser.cpp57
-rw-r--r--src/library/searchqueryparser.h1
-rw-r--r--src/library/setlogfeature.cpp5
-rw-r--r--src/library/setlogfeature.h1
-rw-r--r--src/library/trackmodel.h4
-rw-r--r--src/library/traktor/traktorfeature.cpp5
-rw-r--r--src/library/traktor/traktorfeature.h1
59 files changed, 491 insertions, 169 deletions
diff --git a/src/library/analysisfeature.cpp b/src/library/analysisfeature.cpp
index d2613670ad..fea74315d8 100644
--- a/src/library/analysisfeature.cpp
+++ b/src/library/analysisfeature.cpp
@@ -32,7 +32,8 @@ AnalysisFeature::AnalysisFeature(Library* parent,
m_pAnalyzerQueue(nullptr),
m_bOldBpmEnabled(false),
m_analysisTitleName(tr("Analyze")),
- m_pAnalysisView(nullptr) {
+ m_pAnalysisView(nullptr),
+ m_icon(":/images/library/ic_library_prepare.svg") {
setTitleDefault();
}
@@ -61,7 +62,7 @@ QVariant AnalysisFeature::title() {
}
QIcon AnalysisFeature::getIcon() {
- return QIcon(":/images/library/ic_library_prepare.svg");
+ return m_icon;
}
void AnalysisFeature::bindWidget(WLibrary* libraryWidget,
diff --git a/src/library/analysisfeature.h b/src/library/analysisfeature.h
index c7d7c63bce..fc22868c55 100644
--- a/src/library/analysisfeature.h
+++ b/src/library/analysisfeature.h
@@ -79,6 +79,7 @@ class AnalysisFeature : public LibraryFeature {
const static QString m_sAnalysisViewName;
QString m_analysisTitleName;
DlgAnalysis* m_pAnalysisView;
+ QIcon m_icon;
};
diff --git a/src/library/autodj/autodjfeature.cpp b/src/library/autodj/autodjfeature.cpp
index 64594d534e..0edbbbae7f 100644
--- a/src/library/autodj/autodjfeature.cpp
+++ b/src/library/autodj/autodjfeature.cpp
@@ -52,7 +52,8 @@ AutoDJFeature::AutoDJFeature(Library* pLibrary,
m_iAutoDJPlaylistId(findOrCrateAutoDjPlaylistId(m_playlistDao)),
m_pAutoDJProcessor(NULL),
m_pAutoDJView(NULL),
- m_autoDjCratesDao(m_iAutoDJPlaylistId, pTrackCollection, pConfig) {
+ m_autoDjCratesDao(m_iAutoDJPlaylistId, pTrackCollection, pConfig),
+ m_icon(":/images/library/ic_library_autodj.svg") {
qRegisterMetaType<AutoDJProcessor::AutoDJState>("AutoDJState");
m_pAutoDJProcessor = new AutoDJProcessor(
@@ -98,7 +99,7 @@ QVariant AutoDJFeature::title() {
}
QIcon AutoDJFeature::getIcon() {
- return QIcon(":/images/library/ic_library_autodj.svg");
+ return m_icon;
}
void AutoDJFeature::bindWidget(WLibrary* libraryWidget,
@@ -132,7 +133,7 @@ TreeItemModel* AutoDJFeature::getChildModel() {
void AutoDJFeature::activate() {
//qDebug() << "AutoDJFeature::activate()";
emit(switchToView(m_sAutoDJViewName));
- emit(restoreSearch(QString())); //Null String disables search box
+ emit disableSearch();
emit(enableCoverArtDisplay(true));
}
diff --git a/src/library/autodj/autodjfeature.h b/src/library/autodj/autodjfeature.h
index 1d447fa642..559f185645 100644
--- a/src/library/autodj/autodjfeature.h
+++ b/src/library/autodj/autodjfeature.h
@@ -91,6 +91,8 @@ class AutoDJFeature : public LibraryFeature {
// Used to map menu-item signals.
QSignalMapper m_crateMapper;
+ QIcon m_icon;
+
private slots:
// Add a crate to the auto-DJ queue.
void slotAddCrateToAutoDj(int iCrateId);
diff --git a/src/library/banshee/bansheedbconnection.cpp b/src/library/banshee/bansheedbconnection.cpp
index ddd985a46c..3d28ecb9ea 100644
--- a/src/library/banshee/bansheedbconnection.cpp
+++ b/src/library/banshee/bansheedbconnection.cpp
@@ -53,10 +53,10 @@ int BansheeDbConnection::getSchemaVersion() {
return -1;
}
-QList<struct BansheeDbConnection::Playlist> BansheeDbConnection::getPlaylists() {
+QList<BansheeDbConnection::Playlist> BansheeDbConnection::getPlaylists() {
- QList<struct BansheeDbConnection::Playlist> list;
- struct BansheeDbConnection::Playlist playlist;
+ QList<BansheeDbConnection::Playlist> list;
+ BansheeDbConnection::Playlist playlist;
QSqlQuery query(m_database);
query.prepare("SELECT PlaylistID, Name FROM CorePlaylists ORDER By Name");
@@ -73,13 +73,13 @@ QList<struct BansheeDbConnection::Playlist> BansheeDbConnection::getPlaylists()
return list;
}
-QList<struct BansheeDbConnection::PlaylistEntry> BansheeDbConnection::getPlaylistEntries(int playlistId) {
+QList<BansheeDbConnection::PlaylistEntry> BansheeDbConnection::getPlaylistEntries(int playlistId) {
PerformanceTimer time;
time.start();
- QList<struct BansheeDbConnection::PlaylistEntry> list;
- struct BansheeDbConnection::PlaylistEntry entry;
+ QList<BansheeDbConnection::PlaylistEntry> list;
+ BansheeDbConnection::PlaylistEntry entry;
QSqlQuery query(m_database);
query.setForwardOnly(true); // Saves about 50% time
diff --git a/src/library/banshee/bansheedbconnection.h b/src/library/banshee/bansheedbconnection.h
index b0d12d6d67..d7e2df6ddd 100644
--- a/src/library/banshee/bansheedbconnection.h
+++ b/src/library/banshee/bansheedbconnection.h
@@ -54,14 +54,14 @@ public:
bool open(const QString& databaseFile);
int getSchemaVersion();
- QList<struct Playlist> getPlaylists();
- QList<struct PlaylistEntry> getPlaylistEntries(int playlistId);
+ QList<Playlist> getPlaylists();
+ QList<PlaylistEntry> getPlaylistEntries(int playlistId);
private:
QSqlDatabase m_database;
- QMap<int, struct Track> m_trackMap;
- QMap<int, struct Artist> m_artistMap;
- QMap<int, struct Album> m_albumMap;
+ QMap<int, Track> m_trackMap;
+ QMap<int, Artist> m_artistMap;
+ QMap<int, Album> m_albumMap;
};
diff --git a/src/library/banshee/bansheefeature.cpp b/src/library/banshee/bansheefeature.cpp
index e0a6b4c75a..fad33e0e67 100644
--- a/src/library/banshee/bansheefeature.cpp
+++ b/src/library/banshee/bansheefeature.cpp
@@ -18,7 +18,8 @@ BansheeFeature::BansheeFeature(QObject* parent,
UserSettingsPointer pConfig)
: BaseExternalLibraryFeature(parent, pTrackCollection),
m_pTrackCollection(pTrackCollection),
- m_cancelImport(false) {
+ m_cancelImport(false),
+ m_icon(":/images/library/ic_library_banshee.svg") {
Q_UNUSED(pConfig);
m_pBansheePlaylistModel = new BansheePlaylistModel(this, m_pTrackCollection, &m_connection);
m_isActivated = false;
@@ -57,7 +58,7 @@ QVariant BansheeFeature::title() {
}
QIcon BansheeFeature::getIcon() {
- return QIcon(":/images/library/ic_library_banshee.svg");
+ return m_icon;
}
void BansheeFeature::activate() {
@@ -139,6 +140,7 @@ void BansheeFeature::appendTrackIdsFromRightClickIndex(QList<TrackId>* trackIds,
if (playlistID > 0) {
BansheePlaylistModel* pPlaylistModelToAdd = new BansheePlaylistModel(this, m_pTrackCollection, &m_connection);
pPlaylistModelToAdd->setTableModel(playlistID);
+ pPlaylistModelToAdd->select();
// Copy Tracks
int rows = pPlaylistModelToAdd->rowCount();
diff --git a/src/library/banshee/bansheefeature.h b/src/library/banshee/bansheefeature.h
index 5668358962..c9f3908df4 100644
--- a/src/library/banshee/bansheefeature.h
+++ b/src/library/banshee/bansheefeature.h
@@ -53,6 +53,7 @@ class BansheeFeature : public BaseExternalLibraryFeature {
QFuture<TreeItem*> m_future;
QString m_title;
bool m_cancelImport;
+ QIcon m_icon;
static QString m_databaseFile;
diff --git a/src/library/banshee/bansheeplaylistmodel.cpp b/src/library/banshee/bansheeplaylistmodel.cpp
index c871095bd3..d46661b965 100644
--- a/src/library/banshee/bansheeplaylistmodel.cpp
+++ b/src/library/banshee/bansheeplaylistmodel.cpp
@@ -11,6 +11,7 @@
#include "mixer/playermanager.h"
#define BANSHEE_TABLE "banshee"
+#define CLM_TRACK_ID "track_id"
#define CLM_VIEW_ORDER "position"
#define CLM_ARTIST "artist"
#define CLM_TITLE "title"
@@ -31,39 +32,50 @@
#define CLM_COMPOSER "composer"
#define CLM_PREVIEW "preview"
+namespace {
+QAtomicInt sTableNumber;
+}
+
BansheePlaylistModel::BansheePlaylistModel(QObject* pParent, TrackCollection* pTrackCollection, BansheeDbConnection* pConnection)
: BaseSqlTableModel(pParent, pTrackCollection, "mixxx.db.model.banshee_playlist"),
m_pConnection(pConnection),
m_playlistId(-1) {
+ m_tempTableName = BANSHEE_TABLE + QString::number(sTableNumber.fetchAndAddAcquire(1));
}
BansheePlaylistModel::~BansheePlaylistModel() {
+ dropTempTable();
}
-void BansheePlaylistModel::setTableModel(int playlistId) {
- //qDebug() << "BansheePlaylistModel::setTableModel" << playlistId;
- if (m_playlistId == playlistId) {
- qDebug() << "Already focused on playlist " << playlistId;
- return;
- }
-
+void BansheePlaylistModel::dropTempTable() {
if (m_playlistId >= 0) {
// Clear old playlist
m_playlistId = -1;
QSqlQuery query(m_pTrackCollection->database());
- QString strQuery("DELETE FROM " BANSHEE_TABLE);
- if (!query.exec(strQuery)) {
+ QString strQuery("DROP TABLE IF EXISTS %1");
+ if (!query.exec(strQuery.arg(m_tempTableName))) {
LOG_FAILED_QUERY(query);
}
}
+}
+
+void BansheePlaylistModel::setTableModel(int playlistId) {
+ //qDebug() << "BansheePlaylistModel::setTableModel" << this << playlistId;
+ if (m_playlistId == playlistId) {
+ qDebug() << "Already focused on playlist " << playlistId;
+ return;
+ }
+
+ dropTempTable();
if (playlistId >= 0) {
// setup new playlist
m_playlistId = playlistId;
QSqlQuery query(m_pTrackCollection->database());
- QString strQuery("CREATE TEMP TABLE IF NOT EXISTS " BANSHEE_TABLE
- " (" CLM_VIEW_ORDER " INTEGER, "
+ QString strQuery("CREATE TEMP TABLE IF NOT EXISTS %1"
+ " (" CLM_TRACK_ID " INTEGER, "
+ CLM_VIEW_ORDER " INTEGER, "
CLM_ARTIST " TEXT, "
CLM_TITLE " TEXT, "
CLM_DURATION " INTEGER, "
@@ -82,12 +94,13 @@ void BansheePlaylistModel::setTableModel(int playlistId) {
CLM_PLAYCOUNT" INTEGER, "
CLM_COMPOSER " TEXT, "
CLM_PREVIEW " TEXT)");
- if (!query.exec(strQuery)) {
+ if (!query.exec(strQuery.arg(m_tempTableName))) {
LOG_FAILED_QUERY(query);
}
- query.prepare("INSERT INTO " BANSHEE_TABLE
- " (" CLM_VIEW_ORDER ", "
+ QString strQuery2("INSERT INTO %1"
+ " (" CLM_TRACK_ID ", "
+ CLM_VIEW_ORDER ", "
CLM_ARTIST ", "
CLM_TITLE ", "
CLM_DURATION ", "
@@ -106,6 +119,7 @@ void BansheePlaylistModel::setTableModel(int playlistId) {
CLM_PLAYCOUNT ", "
CLM_COMPOSER ") "
"VALUES (:"
+ CLM_TRACK_ID ", :"
CLM_VIEW_ORDER ", :"
CLM_ARTIST ", :"
CLM_TITLE ", :"
@@ -125,6 +139,7 @@ void BansheePlaylistModel::setTableModel(int playlistId) {
CLM_PLAYCOUNT ", :"
CLM_COMPOSER ") ");
+ query.prepare(strQuery2.arg(m_tempTableName));
QList<struct BansheeDbConnection::PlaylistEntry> list =
m_pConnection->getPlaylistEntries(playlistId);
@@ -133,6 +148,9 @@ void BansheePlaylistModel::setTableModel(int playlistId) {
beginInsertRows(QModelIndex(), 0, list.size() - 1);
foreach (struct BansheeDbConnection::PlaylistEntry entry, list) {
+ query.bindValue(":" CLM_TRACK_ID, entry.trackId);
+ // Note: entry.viewOrder is 0 for all tracks if they have
+ // never been sorted by the user
query.bindValue(":" CLM_VIEW_ORDER, entry.viewOrder + 1);
query.bindValue(":" CLM_ARTIST, entry.pArtist->name);
query.bindValue(":" CLM_TITLE, entry.pTrack->title);
@@ -165,11 +183,14 @@ void BansheePlaylistModel::setTableModel(int playlistId) {
}
QStringList tableColumns;
- tableColumns << CLM_VIEW_ORDER // 0
- << CLM_PREVIEW;
+ tableColumns
+ << CLM_TRACK_ID // 0
+ << CLM_VIEW_ORDER
+ << CLM_PREVIEW; // 3
QStringList trackSourceColumns;
- trackSourceColumns << CLM_VIEW_ORDER // 0
+ trackSourceColumns
+ << CLM_TRACK_ID // 0
<< CLM_ARTIST
<< CLM_TITLE
<< CLM_DURATION
@@ -189,10 +210,10 @@ void BansheePlaylistModel::setTableModel(int playlistId) {
<< CLM_COMPOSER;
QSharedPointer<BaseTrackCache> trackSource(
- new BaseTrackCache(m_pTrackCollection, BANSHEE_TABLE, CLM_VIEW_ORDER,
+ new BaseTrackCache(m_pTrackCollection, m_tempTableName, CLM_TRACK_ID,
trackSourceColumns, false));
- setTable(BANSHEE_TABLE, CLM_VIEW_ORDER, tableColumns, trackSource);
+ setTable(m_tempTableName, CLM_TRACK_ID, tableColumns, trackSource);
setSearch("");
setDefaultSort(fieldIndex(PLAYLISTTRACKSTABLE_POSITION), Qt::AscendingOrder);
setSort(defaultSortColumn(), defaultSortOrder());
@@ -327,6 +348,15 @@ TrackPointer BansheePlaylistModel::getTrack(const QModelIndex& index) const {
return pTrack;
}
+TrackId BansheePlaylistModel::getTrackId(const QModelIndex& index) const {
+ const auto track = getTrack(index);
+ if (track) {
+ return track->getId();
+ } else {
+ return TrackId();
+ }
+}
+
// Gets the on-disk location of the track at the given location.
QString BansheePlaylistModel::getTrackLocation(const QModelIndex& index) const {
if (!index.isValid()) {
@@ -365,6 +395,7 @@ QString BansheePlaylistModel::getTrackLocation(const QModelIndex& index) const {
}
bool BansheePlaylistModel::isColumnInternal(int column) {
- Q_UNUSED(column);
- return false;
+ return (column == fieldIndex(ColumnCache::COLUMN_PLAYLISTTRACKSTABLE_TRACKID) ||
+ (PlayerManager::numPreviewDecks() == 0 &&
+ column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_PREVIEW)));
}
diff --git a/src/library/banshee/bansheeplaylistmodel.h b/src/library/banshee/bansheeplaylistmodel.h
index efda77a878..d89fc20a8a 100644
--- a/src/library/banshee/bansheeplaylistmodel.h
+++ b/src/library/banshee/bansheeplaylistmodel.h
@@ -20,6 +20,8 @@ class BansheePlaylistModel : public BaseSqlTableModel {
void setTableModel(int playlistId);
TrackPointer getTrack(const QModelIndex& index) const final;
+ TrackId getTrackId(const QModelIndex& index) const final;
+
QString getTrackLocation(const QModelIndex& index) const final;
bool isColumnInternal(int column) final;
@@ -41,9 +43,11 @@ class BansheePlaylistModel : public BaseSqlTableModel {
private:
QString getFieldString(const QModelIndex& index, const QString& fieldName) const;
QVariant getFieldVariant(const QModelIndex& index, const QString& fieldName) const;
+ void dropTempTable();
BansheeDbConnection* m_pConnection;
int m_playlistId;
+ QString m_tempTableName;
};
#endif // BANSHEEPLAYLISTMODEL_H
diff --git a/src/library/baseexternallibraryfeature.cpp b/src/library/baseexternallibraryfeature.cpp
index 87807a62e7..b527c119d3 100644
--- a/src/library/baseexternallibraryfeature.cpp
+++ b/src/library/baseexternallibraryfeature.cpp
@@ -56,7 +56,7 @@ void BaseExternalLibraryFeature::slotAddToAutoDJTop() {
}
void BaseExternalLibraryFeature::addToAutoDJ(bool bTop) {
- // qDebug() << "slotAddToAutoDJ() row:" << m_lastRightClickedIndex.data();
+ //qDebug() << "slotAddToAutoDJ() row:" << m_lastRightClickedIndex.data();
QList<TrackId> trackIds;
QString playlist;
@@ -96,15 +96,14 @@ void BaseExternalLibraryFeature::slotImportAsMixxxPlaylist() {
}
// This is a common function for all external Librarys copied to Mixxx DB
-void BaseExternalLibraryFeature::appendTrackIdsFromRightClickIndex(QList<TrackId>* trackIds, QString* pPlaylist) {
+void BaseExternalLibraryFeature::appendTrackIdsFromRightClickIndex(
+ QList<TrackId>* trackIds, QString* pPlaylist) {
if (!m_lastRightClickedIndex.isValid()) {
return;
}
- // Qt::UserRole asks TreeItemModel for the TreeItem's data. We need to
- // use the data because models with nested playlists need to use the
- // full path/name of the playlist.
- *pPlaylist = m_lastRightClickedIndex.data(Qt::UserRole).toString();
+ DEBUG_ASSERT(pPlaylist);
+ *pPlaylist = m_lastRightClickedIndex.data().toString();
QScopedPointer<BaseSqlTableModel> pPlaylistModelToAdd(
getPlaylistModelForPlaylist(*pPlaylist));
diff --git a/src/library/baseexternalplaylistmodel.cpp b/src/library/baseexternalplaylistmodel.cpp
index 7529523896..2ba94fe30b 100644
--- a/src/library/baseexternalplaylistmodel.cpp
+++ b/src/library/baseexternalplaylistmodel.cpp
@@ -65,6 +65,15 @@ TrackPointer BaseExternalPlaylistModel::getTrack(const QModelIndex& index) const
return pTrack;
}
+TrackId BaseExternalPlaylistModel::getTrackId(const QModelIndex& index) const {
+ const auto track = getTrack(index);
+ if (track) {
+ return track->getId();
+ } else {
+ return TrackId();
+ }
+}
+
bool BaseExternalPlaylistModel::isColumnInternal(int column) {
if (column == fieldIndex(ColumnCache::COLUMN_PLAYLISTTRACKSTABLE_TRACKID) ||
(PlayerManager::numPreviewDecks() == 0 &&
diff --git a/src/library/baseexternalplaylistmodel.h b/src/library/baseexternalplaylistmodel.h
index 0b8cd3e7b4..51cbb9c94f 100644
--- a/src/library/baseexternalplaylistmodel.h
+++ b/src/library/baseexternalplaylistmodel.h
@@ -25,6 +25,7 @@ class BaseExternalPlaylistModel : public BaseSqlTableModel {
void setPlaylist(QString path_name);
TrackPointer getTrack(const QModelIndex& index) const override;
+ TrackId getTrackId(const QModelIndex& index) const override;
bool isColumnInternal(int column) override;
Qt::ItemFlags flags(const QModelIndex &index) const override;
void trackLoaded(QString group, TrackPointer pTrack) override;
diff --git a/src/library/baseplaylistfeature.cpp b/src/library/baseplaylistfeature.cpp
index 0971edbcfb..74b759ea2b 100644
--- a/src/library/baseplaylistfeature.cpp
+++ b/src/library/baseplaylistfeature.cpp
@@ -132,7 +132,7 @@ int BasePlaylistFeature::playlistIdFromIndex(QModelIndex index) {
void BasePlaylistFeature::activate() {
emit(switchToView(m_rootViewName));
- emit(restoreSearch(QString())); // Null String disables search box
+ emit disableSearch();
emit(enableCoverArtDisplay(true));
}
@@ -623,8 +623,8 @@ QModelIndex BasePlaylistFeature::constructChildModel(int selected_id) {
int selected_row = -1;
int row = 0;
- for (QList<QPair<int, QString> >::const_iterator it = m_playlistList.begin();
- it != m_playlistList.end(); ++it, ++row) {
+ for (auto it = m_playlistList.constBegin();
+ it != m_playlistList.constEnd(); ++it, ++row) {
int playlist_id = it->first;
QString playlist_name = it->second;
@@ -654,8 +654,8 @@ void BasePlaylistFeature::updateChildModel(int selected_id) {
buildPlaylistList();
int row = 0;
- for (QList<QPair<int, QString> >::const_iterator it = m_playlistList.begin();
- it != m_playlistList.end(); ++it, ++row) {
+ for (auto it = m_playlistList.constBegin();
+ it != m_playlistList.constEnd(); ++it, ++row) {
int playlist_id = it->first;
QString playlist_name = it->second;
@@ -680,8 +680,8 @@ void BasePlaylistFeature::clearChildModel() {
QModelIndex BasePlaylistFeature::indexFromPlaylistId(int playlistId) {
int row = 0;
- for (QList<QPair<int, QString> >::const_iterator it = m_playlistList.begin();
- it != m_playlistList.end(); ++it, ++row) {
+ for (auto it = m_playlistList.constBegin();
+ it != m_playlistList.constEnd(); ++it, ++row) {
int current_id = it->first;
QString playlist_name = it->second;
@@ -708,8 +708,8 @@ void BasePlaylistFeature::slotTr