diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp index fdad77dbf..cac5cafef 100644 --- a/src/core/utilities.cpp +++ b/src/core/utilities.cpp @@ -726,8 +726,13 @@ bool UrlOnSameDriveAsClementine(const QUrl& url) { } QUrl GetRelativePathToClementineBin(const QUrl& url) { + QString relPath = GetRelativePathToClementineBin(url.toLocalFile()); + return QUrl::fromLocalFile(relPath); +} + +QString GetRelativePathToClementineBin(const QString& abspath) { QDir appPath(QCoreApplication::applicationDirPath()); - return QUrl::fromLocalFile(appPath.relativeFilePath(url.toLocalFile())); + return appPath.relativeFilePath(abspath); } QString PathWithoutFilenameExtension(const QString& filename) { diff --git a/src/core/utilities.h b/src/core/utilities.h index 42940597f..cb5eea311 100644 --- a/src/core/utilities.h +++ b/src/core/utilities.h @@ -118,6 +118,8 @@ bool UrlOnSameDriveAsClementine(const QUrl& url); // Get relative path to clementine binary QUrl GetRelativePathToClementineBin(const QUrl& url); +QString GetRelativePathToClementineBin(const QString& abspath); + // Get the path without the filename extension QString PathWithoutFilenameExtension(const QString& filename); QString FiddleFileExtension(const QString& filename, diff --git a/src/library/librarybackend.cpp b/src/library/librarybackend.cpp index d4202b451..388eec3ee 100644 --- a/src/library/librarybackend.cpp +++ b/src/library/librarybackend.cpp @@ -218,8 +218,7 @@ void LibraryBackend::AddDirectory(const QString& path) { if (Application::kIsPortable && Utilities::UrlOnSameDriveAsClementine( QUrl::fromLocalFile(canonical_path))) { - db_path = Utilities::GetRelativePathToClementineBin( - QUrl::fromLocalFile(db_path)).toLocalFile(); + db_path = Utilities::GetRelativePathToClementineBin(db_path); qLog(Debug) << "db_path" << db_path; } diff --git a/src/library/librarydirectorymodel.cpp b/src/library/librarydirectorymodel.cpp index 018772d84..34d72c09d 100644 --- a/src/library/librarydirectorymodel.cpp +++ b/src/library/librarydirectorymodel.cpp @@ -41,8 +41,8 @@ void LibraryDirectoryModel::DirectoryDiscovered(const Directory& dir) { QStandardItem* item; if (Application::kIsPortable && Utilities::UrlOnSameDriveAsClementine(QUrl::fromLocalFile(dir.path))) { - item = new QStandardItem(Utilities::GetRelativePathToClementineBin( - QUrl::fromLocalFile(dir.path)).toLocalFile()); + item = + new QStandardItem(Utilities::GetRelativePathToClementineBin(dir.path)); } else { item = new QStandardItem(dir.path); }