Add QString version of GetRelativePathToClementineBin.

Avoid converting paths to and from URLs when calling this function.
This commit is contained in:
Jim Broadus 2020-02-11 22:23:11 -08:00 committed by John Maguire
parent ba4320859d
commit b9f57c574f
4 changed files with 11 additions and 5 deletions

View File

@ -726,8 +726,13 @@ bool UrlOnSameDriveAsClementine(const QUrl& url) {
} }
QUrl GetRelativePathToClementineBin(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()); QDir appPath(QCoreApplication::applicationDirPath());
return QUrl::fromLocalFile(appPath.relativeFilePath(url.toLocalFile())); return appPath.relativeFilePath(abspath);
} }
QString PathWithoutFilenameExtension(const QString& filename) { QString PathWithoutFilenameExtension(const QString& filename) {

View File

@ -118,6 +118,8 @@ bool UrlOnSameDriveAsClementine(const QUrl& url);
// Get relative path to clementine binary // Get relative path to clementine binary
QUrl GetRelativePathToClementineBin(const QUrl& url); QUrl GetRelativePathToClementineBin(const QUrl& url);
QString GetRelativePathToClementineBin(const QString& abspath);
// Get the path without the filename extension // Get the path without the filename extension
QString PathWithoutFilenameExtension(const QString& filename); QString PathWithoutFilenameExtension(const QString& filename);
QString FiddleFileExtension(const QString& filename, QString FiddleFileExtension(const QString& filename,

View File

@ -218,8 +218,7 @@ void LibraryBackend::AddDirectory(const QString& path) {
if (Application::kIsPortable && Utilities::UrlOnSameDriveAsClementine( if (Application::kIsPortable && Utilities::UrlOnSameDriveAsClementine(
QUrl::fromLocalFile(canonical_path))) { QUrl::fromLocalFile(canonical_path))) {
db_path = Utilities::GetRelativePathToClementineBin( db_path = Utilities::GetRelativePathToClementineBin(db_path);
QUrl::fromLocalFile(db_path)).toLocalFile();
qLog(Debug) << "db_path" << db_path; qLog(Debug) << "db_path" << db_path;
} }

View File

@ -41,8 +41,8 @@ void LibraryDirectoryModel::DirectoryDiscovered(const Directory& dir) {
QStandardItem* item; QStandardItem* item;
if (Application::kIsPortable && if (Application::kIsPortable &&
Utilities::UrlOnSameDriveAsClementine(QUrl::fromLocalFile(dir.path))) { Utilities::UrlOnSameDriveAsClementine(QUrl::fromLocalFile(dir.path))) {
item = new QStandardItem(Utilities::GetRelativePathToClementineBin( item =
QUrl::fromLocalFile(dir.path)).toLocalFile()); new QStandardItem(Utilities::GetRelativePathToClementineBin(dir.path));
} else { } else {
item = new QStandardItem(dir.path); item = new QStandardItem(dir.path);
} }