From 8e04492dcb85205a3ec8d9a33e238eac8651391f Mon Sep 17 00:00:00 2001 From: Uwe Klotz Date: Fri, 1 Nov 2019 20:51:43 +0100 Subject: Move export of track metadata from TrackCollection into Library --- src/library/banshee/bansheefeature.cpp | 13 ++++++------- src/library/banshee/bansheefeature.h | 5 ++--- src/library/banshee/bansheeplaylistmodel.cpp | 15 +++++++++------ src/library/banshee/bansheeplaylistmodel.h | 2 +- 4 files changed, 18 insertions(+), 17 deletions(-) (limited to 'src/library/banshee') diff --git a/src/library/banshee/bansheefeature.cpp b/src/library/banshee/bansheefeature.cpp index fad33e0e67..732dcd80ec 100644 --- a/src/library/banshee/bansheefeature.cpp +++ b/src/library/banshee/bansheefeature.cpp @@ -5,6 +5,8 @@ #include "library/banshee/bansheefeature.h" #include "library/banshee/bansheedbconnection.h" +#include "library/library.h" +#include "library/trackcollectionmanager.h" #include "library/dao/settingsdao.h" #include "library/baseexternalplaylistmodel.h" #include "library/banshee/bansheeplaylistmodel.h" @@ -13,15 +15,12 @@ const QString BansheeFeature::BANSHEE_MOUNT_KEY = "mixxx.BansheeFeature.mount"; QString BansheeFeature::m_databaseFile; -BansheeFeature::BansheeFeature(QObject* parent, - TrackCollection* pTrackCollection, - UserSettingsPointer pConfig) - : BaseExternalLibraryFeature(parent, pTrackCollection), - m_pTrackCollection(pTrackCollection), +BansheeFeature::BansheeFeature(Library* pLibrary, UserSettingsPointer pConfig) + : BaseExternalLibraryFeature(pLibrary, std::move(pConfig)), m_cancelImport(false), m_icon(":/images/library/ic_library_banshee.svg") { Q_UNUSED(pConfig); - m_pBansheePlaylistModel = new BansheePlaylistModel(this, m_pTrackCollection, &m_connection); + m_pBansheePlaylistModel = new BansheePlaylistModel(this, m_pLibrary->trackCollections(), &m_connection); m_isActivated = false; m_title = tr("Banshee"); } @@ -138,7 +137,7 @@ void BansheeFeature::appendTrackIdsFromRightClickIndex(QList* trackIds, int playlistID = item->getData().toInt(); qDebug() << "BansheeFeature::appendTrackIdsFromRightClickIndex " << *pPlaylist << " " << playlistID; if (playlistID > 0) { - BansheePlaylistModel* pPlaylistModelToAdd = new BansheePlaylistModel(this, m_pTrackCollection, &m_connection); + BansheePlaylistModel* pPlaylistModelToAdd = new BansheePlaylistModel(this, m_pLibrary->trackCollections(), &m_connection); pPlaylistModelToAdd->setTableModel(playlistID); pPlaylistModelToAdd->select(); diff --git a/src/library/banshee/bansheefeature.h b/src/library/banshee/bansheefeature.h index c9f3908df4..3df7b4f68d 100644 --- a/src/library/banshee/bansheefeature.h +++ b/src/library/banshee/bansheefeature.h @@ -20,7 +20,7 @@ class BansheePlaylistModel; class BansheeFeature : public BaseExternalLibraryFeature { Q_OBJECT public: - BansheeFeature(QObject* parent, TrackCollection* pTrackCollection, UserSettingsPointer pConfig); + BansheeFeature(Library*pLibrary, UserSettingsPointer pConfig); virtual ~BansheeFeature(); static bool isSupported(); static void prepareDbPath(UserSettingsPointer pConfig); @@ -40,9 +40,8 @@ class BansheeFeature : public BaseExternalLibraryFeature { BansheePlaylistModel* m_pBansheePlaylistModel; TreeItemModel m_childModel; QStringList m_playlists; - TrackCollection* m_pTrackCollection; - //a new DB connection for the worker thread + //a new DB connection for the worker thread BansheeDbConnection m_connection; QSqlDatabase m_database; diff --git a/src/library/banshee/bansheeplaylistmodel.cpp b/src/library/banshee/bansheeplaylistmodel.cpp index 7c6a1256a0..666d426dcd 100644 --- a/src/library/banshee/bansheeplaylistmodel.cpp +++ b/src/library/banshee/bansheeplaylistmodel.cpp @@ -5,6 +5,7 @@ #include "library/queryutil.h" #include "library/starrating.h" #include "library/previewbuttondelegate.h" +#include "library/trackcollectionmanager.h" #include "track/beatfactory.h" #include "track/beats.h" #include "mixer/playermanager.h" @@ -32,11 +33,13 @@ #define CLM_PREVIEW "preview" namespace { + QAtomicInt sTableNumber; + } -BansheePlaylistModel::BansheePlaylistModel(QObject* pParent, TrackCollection* pTrackCollection, BansheeDbConnection* pConnection) - : BaseSqlTableModel(pParent, pTrackCollection, "mixxx.db.model.banshee_playlist"), +BansheePlaylistModel::BansheePlaylistModel(QObject* pParent, TrackCollectionManager* pTrackCollectionManager, BansheeDbConnection* pConnection) + : BaseSqlTableModel(pParent, pTrackCollectionManager, "mixxx.db.model.banshee_playlist"), m_pConnection(pConnection), m_playlistId(-1) { m_tempTableName = BANSHEE_TABLE + QString::number(sTableNumber.fetchAndAddAcquire(1)); @@ -50,7 +53,7 @@ void BansheePlaylistModel::dropTempTable() { if (m_playlistId >= 0) { // Clear old playlist m_playlistId = -1; - QSqlQuery query(m_pTrackCollection->database()); + QSqlQuery query(m_database); QString strQuery("DROP TABLE IF EXISTS %1"); if (!query.exec(strQuery.arg(m_tempTableName))) { LOG_FAILED_QUERY(query); @@ -71,7 +74,7 @@ void BansheePlaylistModel::setTableModel(int playlistId) { // setup new playlist m_playlistId = playlistId; - QSqlQuery query(m_pTrackCollection->database()); + QSqlQuery query(m_database); QString strQuery("CREATE TEMP TABLE IF NOT EXISTS %1" " (" CLM_TRACK_ID " INTEGER, " CLM_VIEW_ORDER " INTEGER, " @@ -209,7 +212,7 @@ void BansheePlaylistModel::setTableModel(int playlistId) { << CLM_COMPOSER; QSharedPointer trackSource( - new BaseTrackCache(m_pTrackCollection, m_tempTableName, CLM_TRACK_ID, + new BaseTrackCache(m_pTrackCollectionManager->internalCollection(), m_tempTableName, CLM_TRACK_ID, trackSourceColumns, false)); setTable(m_tempTableName, CLM_TRACK_ID, tableColumns, trackSource); @@ -315,7 +318,7 @@ TrackPointer BansheePlaylistModel::getTrack(const QModelIndex& index) const { } bool track_already_in_library = false; - TrackPointer pTrack = m_pTrackCollection->getOrAddTrack( + TrackPointer pTrack = m_pTrackCollectionManager->getOrAddTrack( TrackRef::fromFileInfo(location), &track_already_in_library); diff --git a/src/library/banshee/bansheeplaylistmodel.h b/src/library/banshee/bansheeplaylistmodel.h index d89fc20a8a..6e7149a710 100644 --- a/src/library/banshee/bansheeplaylistmodel.h +++ b/src/library/banshee/bansheeplaylistmodel.h @@ -14,7 +14,7 @@ class BansheePlaylistModel : public BaseSqlTableModel { Q_OBJECT public: - BansheePlaylistModel(QObject* pParent, TrackCollection* pTrackCollection, BansheeDbConnection* pConnection); + BansheePlaylistModel(QObject* pParent, TrackCollectionManager* pTrackCollectionManager, BansheeDbConnection* pConnection); ~BansheePlaylistModel() final; void setTableModel(int playlistId); -- cgit v1.2.3