summaryrefslogtreecommitdiffstats
path: root/src/library/banshee
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2019-11-01 20:51:43 +0100
committerUwe Klotz <uklotz@mixxx.org>2019-11-21 11:27:43 +0100
commit8e04492dcb85205a3ec8d9a33e238eac8651391f (patch)
tree696c11ea9f059ea4ccbc86f0f3ce078fdb69cf89 /src/library/banshee
parent0cdced650845d66c8fc5b71acb9ed7f9b1e914aa (diff)
Move export of track metadata from TrackCollection into Library
Diffstat (limited to 'src/library/banshee')
-rw-r--r--src/library/banshee/bansheefeature.cpp13
-rw-r--r--src/library/banshee/bansheefeature.h5
-rw-r--r--src/library/banshee/bansheeplaylistmodel.cpp15
-rw-r--r--src/library/banshee/bansheeplaylistmodel.h2
4 files changed, 18 insertions, 17 deletions
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<TrackId>* 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<BaseTrackCache> 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);