diff options
author | Uwe Klotz <uklotz@mixxx.org> | 2019-11-02 11:31:19 +0100 |
---|---|---|
committer | Uwe Klotz <uklotz@mixxx.org> | 2019-11-21 11:27:42 +0100 |
commit | aa1dc6483aa53f35c4718df8478348cc9acdba1f (patch) | |
tree | 5289ced8120a62aa439e3830bec51a24bc92e90a /src | |
parent | d643918e52b9ed5b36fd2f7917bc0e277786d568 (diff) |
Hide tracks via TrackCollection
Diffstat (limited to 'src')
-rw-r--r-- | src/library/dao/trackdao.cpp | 6 | ||||
-rw-r--r-- | src/library/library.cpp | 2 | ||||
-rw-r--r-- | src/library/mixxxlibraryfeature.cpp | 2 | ||||
-rw-r--r-- | src/library/trackcollection.cpp | 15 | ||||
-rw-r--r-- | src/library/trackcollection.h | 17 |
5 files changed, 23 insertions, 19 deletions
diff --git a/src/library/dao/trackdao.cpp b/src/library/dao/trackdao.cpp index b804a477cd..f634409a97 100644 --- a/src/library/dao/trackdao.cpp +++ b/src/library/dao/trackdao.cpp @@ -1745,11 +1745,11 @@ bool TrackDAO::detectMovedTracks(QList<QPair<TrackRef, TrackRef>>* pReplacedTrac return true; } -void TrackDAO::markTracksAsMixxxDeleted(const QString& dir) { +void TrackDAO::markTracksAsMixxxDeleted(const QDir& rootDir) { // Capture entries that start with the directory prefix dir. // dir needs to end in a slash otherwise we might match other // directories. - QString likeClause = SqlLikeWildcardEscaper::apply(dir + "/", kSqlLikeMatchAll) + kSqlLikeMatchAll; + QString likeClause = SqlLikeWildcardEscaper::apply(rootDir.absolutePath() + "/", kSqlLikeMatchAll) + kSqlLikeMatchAll; QSqlQuery query(m_database); query.prepare(QString("SELECT library.id FROM library INNER JOIN track_locations " @@ -1758,7 +1758,7 @@ void TrackDAO::markTracksAsMixxxDeleted(const QString& dir) { .arg(SqlStringFormatter::format(m_database, likeClause), kSqlLikeMatchAll)); if (!query.exec()) { - LOG_FAILED_QUERY(query) << "could not get tracks within directory:" << dir; + LOG_FAILED_QUERY(query) << "could not get tracks within directory:" << rootDir; } QStringList trackIds; diff --git a/src/library/library.cpp b/src/library/library.cpp index 041e797b76..1300f37d9b 100644 --- a/src/library/library.cpp +++ b/src/library/library.cpp @@ -517,7 +517,7 @@ void Library::slotRequestRemoveDir(QString dir, RemovalType removalType) { case Library::HideTracks: // Mark all tracks in this directory as deleted but DON'T purge them // in case the user re-adds them manually. - m_pTrackCollection->getTrackDAO().markTracksAsMixxxDeleted(dir); + m_pTrackCollection->hideAllTracks(dir); break; case Library::PurgeTracks: // The user requested that we purge all metadata. diff --git a/src/library/mixxxlibraryfeature.cpp b/src/library/mixxxlibraryfeature.cpp index 0d77aeb21a..ce9387d3d0 100644 --- a/src/library/mixxxlibraryfeature.cpp +++ b/src/library/mixxxlibraryfeature.cpp @@ -91,7 +91,7 @@ MixxxLibraryFeature::MixxxLibraryFeature(Library* pLibrary, BaseTrackCache* pBaseTrackCache = new BaseTrackCache( pTrackCollection, tableName, LIBRARYTABLE_ID, columns, true); - auto pTrackDAO = &pTrackCollection.getTrackDAO(); + auto pTrackDAO = &pTrackCollection->getTrackDAO(); connect(pTrackDAO, &TrackDAO::trackDirty, pBaseTrackCache, diff --git a/src/library/trackcollection.cpp b/src/library/trackcollection.cpp index fdd6bfcf66..9c695af4b2 100644 --- a/src/library/trackcollection.cpp +++ b/src/library/trackcollection.cpp @@ -1,19 +1,20 @@ +#include <QApplication> #include <QStringBuilder> #include <QThread> -#include <QApplication> #include "library/trackcollection.h" #include "sources/soundsourceproxy.h" #include "track/globaltrackcache.h" -#include "util/logger.h" -#include "util/db/sqltransaction.h" - #include "util/assert.h" +#include "util/db/sqltransaction.h" #include "util/dnd.h" +#include "util/logger.h" namespace { - mixxx::Logger kLogger("TrackCollection"); + +mixxx::Logger kLogger("TrackCollection"); + } // anonymous namespace TrackCollection::TrackCollection( @@ -218,6 +219,10 @@ bool TrackCollection::hideTracks(const QList<TrackId>& trackIds) { return true; } +void TrackCollection::hideAllTracks(const QDir& rootDir) { + m_trackDao.markTracksAsMixxxDeleted(rootDir); +} + bool TrackCollection::unhideTracks(const QList<TrackId>& trackIds) { DEBUG_ASSERT(QApplication::instance()->thread() == QThread::currentThread()); diff --git a/src/library/trackcollection.h b/src/library/trackcollection.h index b4b48c9317..ad84886521 100644 --- a/src/library/trackcollection.h +++ b/src/library/trackcollection.h @@ -1,12 +1,11 @@ -#ifndef TRACKCOLLECTION_H -#define TRACKCOLLECTION_H +#pragma once +#include <QDir> #include <QList> #include <QSharedPointer> #include <QSqlDatabase> #include "preferences/usersettings.h" -#include "library/basetrackcache.h" #include "library/crate/cratestorage.h" #include "library/dao/trackdao.h" #include "library/dao/cuedao.h" @@ -15,11 +14,9 @@ #include "library/dao/directorydao.h" #include "library/dao/libraryhashdao.h" +class BaseTrackCache; -// forward declaration(s) -class Track; - -// Manages everything around tracks. +// Manages the internal database. class TrackCollection : public QObject, public virtual /*implements*/ SqlStorage { Q_OBJECT @@ -111,8 +108,12 @@ class TrackCollection : public QObject, private: friend class Library; friend class Upgrade; + + void hideAllTracks(const QDir& rootDir); + bool purgeTracks(const QList<TrackId>& trackIds); bool purgeAllTracks(const QDir& rootDir); + bool addDirectory(const QString& dir); void relocateDirectory(QString oldDir, QString newDir); @@ -130,5 +131,3 @@ class TrackCollection : public QObject, QSharedPointer<BaseTrackCache> m_pTrackSource; }; - -#endif // TRACKCOLLECTION_H |