diff options
77 files changed, 620 insertions, 776 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c368e69665..72be447a74 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -832,7 +832,6 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL src/track/serato/markers2.cpp src/track/serato/tags.cpp src/track/track.cpp - src/track/trackfile.cpp src/track/trackinfo.cpp src/track/trackmetadata.cpp src/track/tracknumbers.cpp diff --git a/src/engine/cachingreader/cachingreaderworker.cpp b/src/engine/cachingreader/cachingreaderworker.cpp index 5353b7b105..3a9fd507a2 100644 --- a/src/engine/cachingreader/cachingreaderworker.cpp +++ b/src/engine/cachingreader/cachingreaderworker.cpp @@ -135,17 +135,16 @@ void CachingReaderWorker::loadTrack(const TrackPointer& pTrack) { // Emit that a new track is loading, stops the current track emit trackLoading(); - const QString trackLocation = pTrack->getLocation(); - if (trackLocation.isEmpty() || !pTrack->checkFileExists()) { + if (!pTrack->getFileInfo().checkFileExists()) { kLogger.warning() << m_group << "File not found" - << trackLocation; + << pTrack->getFileInfo(); const auto update = ReaderStatusUpdate::trackUnloaded(); m_pReaderStatusFIFO->writeBlocking(&update, 1); emit trackLoadFailed(pTrack, tr("The file '%1' could not be found.") - .arg(QDir::toNativeSeparators(trackLocation))); + .arg(QDir::toNativeSeparators(pTrack->getLocation()))); return; } @@ -156,12 +155,12 @@ void CachingReaderWorker::loadTrack(const TrackPointer& pTrack) { kLogger.warning() << m_group << "Failed to open file" - << trackLocation; + << pTrack->getFileInfo(); const auto update = ReaderStatusUpdate::trackUnloaded(); m_pReaderStatusFIFO->writeBlocking(&update, 1); emit trackLoadFailed(pTrack, tr("The file '%1' could not be loaded.") - .arg(QDir::toNativeSeparators(trackLocation))); + .arg(QDir::toNativeSeparators(pTrack->getLocation()))); return; } @@ -173,12 +172,12 @@ void CachingReaderWorker::loadTrack(const TrackPointer& pTrack) { kLogger.warning() << m_group << "Failed to open empty file" - << trackLocation; + << pTrack->getFileInfo(); const auto update = ReaderStatusUpdate::trackUnloaded(); m_pReaderStatusFIFO->writeBlocking(&update, 1); emit trackLoadFailed(pTrack, tr("The file '%1' is empty and could not be loaded.") - .arg(QDir::toNativeSeparators(trackLocation))); + .arg(QDir::toNativeSeparators(pTrack->getLocation()))); return; } diff --git a/src/library/autodj/autodjfeature.cpp b/src/library/autodj/autodjfeature.cpp index a732951387..de985538a4 100644 --- a/src/library/autodj/autodjfeature.cpp +++ b/src/library/autodj/autodjfeature.cpp @@ -256,7 +256,7 @@ void AutoDJFeature::slotAddRandomTrack() { << randomTrackId; continue; } - if (!pRandomTrack->checkFileExists()) { + if (!pRandomTrack->getFileInfo().checkFileExists()) { qWarning() << "Track does not exist:" << pRandomTrack->getInfo() << pRandomTrack->getFileInfo(); diff --git a/src/library/autodj/autodjprocessor.cpp b/src/library/autodj/autodjprocessor.cpp index 0c41bdd375..a39682797a 100644 --- a/src/library/autodj/autodjprocessor.cpp +++ b/src/library/autodj/autodjprocessor.cpp @@ -860,7 +860,7 @@ TrackPointer AutoDJProcessor::getNextTrackFromQueue() { m_pAutoDJTableModel->index(0, 0)); if (nextTrack) { - if (nextTrack->checkFileExists()) { + if (nextTrack->getFileInfo().checkFileExists()) { return nextTrack; } else { // Remove missing song from auto DJ playlist. diff --git a/src/library/banshee/bansheefeature.cpp b/src/library/banshee/bansheefeature.cpp index d7b565ec02..e8ee1580aa 100644 --- a/src/library/banshee/bansheefeature.cpp +++ b/src/library/banshee/bansheefeature.cpp @@ -79,7 +79,9 @@ void BansheeFeature::activate() { qDebug() << m_databaseFile << "does not exist"; } - if (!Sandbox::askForAccess(m_databaseFile) || !m_connection.open(m_databaseFile)) { + mixxx::FileInfo fileInfo(m_databaseFile); + if (!Sandbox::askForAccess(&fileInfo) || + !m_connection.open(m_databaseFile)) { QMessageBox::warning( nullptr, tr("Error loading Banshee database"), diff --git a/src/library/banshee/bansheeplaylistmodel.cpp b/src/library/banshee/bansheeplaylistmodel.cpp index f0eca64c68..0630fed8cc 100644 --- a/src/library/banshee/bansheeplaylistmodel.cpp +++ b/src/library/banshee/bansheeplaylistmodel.cpp @@ -225,7 +225,7 @@ TrackId BansheePlaylistModel::doGetTrackId(const TrackPointer& pTrack) const { if (pTrack) { for (int row = 0; row < rowCount(); ++row) { const QUrl rowUrl(getFieldString(index(row, 0), CLM_URI)); - if (TrackFile::fromUrl(rowUrl) == pTrack->getFileInfo()) { + if (mixxx::FileInfo::fromQUrl(rowUrl) == pTrack->getFileInfo()) { return TrackId(getFieldVariant(index(row, 0), CLM_VIEW_ORDER)); } } @@ -253,7 +253,7 @@ TrackPointer BansheePlaylistModel::getTrack(const QModelIndex& index) const { bool track_already_in_library = false; TrackPointer pTrack = m_pTrackCollectionManager->getOrAddTrack( - TrackRef::fromFileInfo(location), + TrackRef::fromFilePath(location), &track_already_in_library); // If this track was not in the Mixxx library it is now added and will be @@ -295,7 +295,7 @@ QString BansheePlaylistModel::getTrackLocation(const QModelIndex& index) const { } QUrl url(getFieldString(index, CLM_URI)); - QString location = TrackFile::fromUrl(url).location(); + QString location = mixxx::FileInfo::fromQUrl(url).location(); qDebug() << location << " = " << url; if (!location.isEmpty()) { return location; diff --git a/src/library/baseexternalplaylistmodel.cpp b/src/library/baseexternalplaylistmodel.cpp index 30762d468a..8f574bb0d3 100644 --- a/src/library/baseexternalplaylistmodel.cpp +++ b/src/library/baseexternalplaylistmodel.cpp @@ -34,7 +34,7 @@ TrackPointer BaseExternalPlaylistModel::getTrack(const QModelIndex& index) const bool track_already_in_library = false; TrackPointer pTrack = m_pTrackCollectionManager->getOrAddTrack( - TrackRef::fromFileInfo(location), + TrackRef::fromFilePath(location), &track_already_in_library); // If this track was not in the Mixxx library it is now added and will be diff --git a/src/library/baseexternaltrackmodel.cpp b/src/library/baseexternaltrackmodel.cpp index 1f4649e333..6a0539c6ff 100644 --- a/src/library/baseexternaltrackmodel.cpp +++ b/src/library/baseexternaltrackmodel.cpp @@ -59,7 +59,7 @@ TrackPointer BaseExternalTrackModel::getTrack(const QModelIndex& index) const { bool track_already_in_library = false; TrackPointer pTrack = m_pTrackCollectionManager->getOrAddTrack( - TrackRef::fromFileInfo(location), + TrackRef::fromFilePath(location), &track_already_in_library); if (pTrack) { diff --git a/src/library/basesqltablemodel.cpp b/src/library/basesqltablemodel.cpp index a5336bdaa0..011011b7bf 100644 --- a/src/library/basesqltablemodel.cpp +++ b/src/library/basesqltablemodel.cpp @@ -842,8 +842,8 @@ QList<TrackRef> BaseSqlTableModel::getTrackRefs( QList<TrackRef> trackRefs; trackRefs.reserve(indices.size()); foreach (QModelIndex index, indices) { - trackRefs.append(TrackRef::fromFileInfo( - TrackFile(getTrackLocation(index)), + trackRefs.append(TrackRef::fromFilePath( + getTrackLocation(index), getTrackId(index))); } return trackRefs; diff --git a/src/library/basetrackcache.cpp b/src/library/basetrackcache.cpp index d0a5694535..d3fcdd686f 100644 --- a/src/library/basetrackcache.cpp +++ b/src/library/basetrackcache.cpp @@ -17,10 +17,10 @@ constexpr bool sDebug = false; } // namespace BaseTrackCache::BaseTrackCache(TrackCollection* pTrackCollection, - const QString& tableName, - const QString& idColumn, - const QStringList& columns, - bool isCaching) + const QString& tableName, + const QString& idColumn, + const QStringList& columns, + bool isCaching) : m_tableName(tableName), m_idColumn(idColumn), m_columnCount(columns.size()), diff --git a/src/library/basetracktablemodel.cpp b/src/library/basetracktablemodel.cpp index 986d66f3b6..957068bb2b 100644 --- a/src/library/basetracktablemodel.cpp +++ b/src/library/basetracktablemodel.cpp @@ -915,7 +915,7 @@ QList<QUrl> BaseTrackTableModel::collectUrls( continue; } visitedRows.insert(index.row()); - QUrl url = TrackFile(getTrackLocation(index)).toUrl(); + QUrl url = mixxx::FileInfo(getTrackLocation(index)).toQUrl(); if (url.isValid()) { urls.append(url); } diff --git a/src/library/browse/browsefeature.cpp b/src/library/browse/browsefeature.cpp index 560dcf8600..e69e39b01a 100644 --- a/src/library/browse/browsefeature.cpp +++ b/src/library/browse/browsefeature.cpp @@ -253,17 +253,18 @@ void BrowseFeature::activateChild(const QModelIndex& index) { } else { // Open a security token for this path and if we do not have access, ask // for it. - auto dir = mixxx::FileAccess(mixxx::FileInfo(path)); - if (!dir.isReadable()) { - if (Sandbox::askForAccess(path)) { + auto dirInfo = mixxx::FileInfo(path); + auto dirAccess = mixxx::FileAccess(dirInfo); + if (!dirAccess.isReadable()) { + if (Sandbox::askForAccess(&dirInfo)) { // Re-create to get a new token. - dir = mixxx::FileAccess(mixxx::FileInfo(path)); + dirAccess = mixxx::FileAccess(dirInfo); } else { // TODO(rryan): Activate an info page about sandboxing? return; } } - m_browseModel.setPath(std::move(dir)); + m_browseModel.setPath(std::move(dirAccess)); } emit showTrackModel(&m_proxyModel); emit enableCoverArtDisplay(false); @@ -485,12 +486,12 @@ QStringList BrowseFeature::getDefaultQuickLinks() const { bool osDesktopDirIncluded = false; bool osDocumentsDirIncluded = false; const auto rootDirs = m_pLibrary->trackCollections()->internalCollection()->loadRootDirs(); - for (const mixxx::FileInfo& fileInfo : rootDirs) { - const auto dir = fileInfo.toQDir(); + for (mixxx::FileInfo fileInfo : rootDirs) { // Skip directories we don't have permission to. - if (!Sandbox::canAccessDir(dir)) { + if (!Sandbox::canAccess(&fileInfo)) { continue; } + const auto dir = fileInfo.toQDir(); if (dir == osMusicDir) { osMusicDirIncluded = true; } @@ -515,13 +516,11 @@ QStringList BrowseFeature::getDefaultQuickLinks() const { result << osDownloadsDir.canonicalPath() + "/"; } - if (!osDesktopDirIncluded && - Sandbox::canAccessDir(osDesktopDir)) { + if (!osDesktopDirIncluded && Sandbox::canAccessDir(osDesktopDir)) { result << osDesktopDir.canonicalPath() + "/"; } - if (!osDocumentsDirIncluded && - Sandbox::canAccessDir(osDocumentsDir)) { + if (!osDocumentsDirIncluded && Sandbox::canAccessDir(osDocumentsDir)) { result << osDocumentsDir.canonicalPath() + "/"; } diff --git a/src/library/browse/browsetablemodel.cpp b/src/library/browse/browsetablemodel.cpp index e51063a7ad..e35f805079 100644 --- a/src/library/browse/browsetablemodel.cpp +++ b/src/library/browse/browsetablemodel.cpp @@ -19,7 +19,6 @@ #include "moc_browsetablemodel.cpp" #include "track/track.h" #include "util/compatibility.h" -#include "util/fileaccess.h" #include "widget/wlibrarytableview.h" BrowseTableModel::BrowseTableModel(QObject* parent, @@ -191,7 +190,7 @@ void BrowseTableModel::setPath(mixxx::FileAccess path) { } TrackPointer BrowseTableModel::getTrack(const QModelIndex& index) const { - return getTrackByRef(TrackRef::fromFileInfo(getTrackLocation(index))); + return getTrackByRef(TrackRef::fromFilePath(getTrackLocation(index))); } TrackPointer BrowseTableModel::getTrackByRef(const TrackRef& trackRef) const { @@ -298,7 +297,7 @@ QMimeData* BrowseTableModel::mimeData(const QModelIndexList& indexes) const { if (index.isValid()) { if (!rows.contains(index.row())) { rows.push_back(index.row()); - QUrl url = TrackFile(getTrackLocation(index)).toUrl(); + QUrl url = mixxx::FileInfo(getTrackLocation(index)).toQUrl(); if (!url.isValid()) { qDebug() << "ERROR invalid url" << url; continue; diff --git a/src/library/browse/browsethread.cpp b/src/library/browse/browsethread.cpp index 285053aa03..83656f0fa5 100644 --- a/src/library/browse/browsethread.cpp +++ b/src/library/browse/browsethread.cpp @@ -151,12 +151,12 @@ void BrowseThread::populateModel() { item->setData("0", Qt::UserRole); row_data.insert(COLUMN_PREVIEW, item); - const QString filepath = fileIt.next(); + const auto fileAccess = mixxx::FileAccess( + mixxx::FileInfo(fileIt.next()), + thisPath.token()); { const TrackPointer pTrack = - SoundSourceProxy::importTemporaryTrack( - filepath, - thisPath.token()); + SoundSourceProxy::importTemporaryTrack(fileAccess); |