From e8daa77eb5f6f5756a8da89ca9864447204fcde8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Szczygie=C5=82?= Date: Wed, 10 Mar 2021 23:52:23 +0100 Subject: [PATCH] Linux: Set config directory to "~/.config/QMPlay2" Keep backward compatibility Closes #352 --- src/qmplay2/QMPlay2Core.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/qmplay2/QMPlay2Core.cpp b/src/qmplay2/QMPlay2Core.cpp index 3685f2b02..68ad2e621 100644 --- a/src/qmplay2/QMPlay2Core.cpp +++ b/src/qmplay2/QMPlay2Core.cpp @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -44,7 +45,6 @@ #include #elif defined Q_OS_MACOS #include - #include #elif !defined Q_OS_ANDROID #include #endif @@ -212,15 +212,27 @@ void QMPlay2CoreClass::init(bool loadModules, bool modulesInSubdirs, const QStri langDir = shareDir + "lang/"; if (Version::isPortable()) + { settingsDir = QCoreApplication::applicationDirPath() + "/settings/"; + } else { #if defined(Q_OS_WIN) settingsDir = QFileInfo(QSettings(QSettings::IniFormat, QSettings::UserScope, QString()).fileName()).absolutePath() + "/QMPlay2/"; #elif defined(Q_OS_MACOS) - settingsDir = Functions::cleanPath(QStandardPaths::standardLocations(QStandardPaths::DataLocation).value(0, settingsDir)); + settingsDir = Functions::cleanPath(QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).value(0)); #else - settingsDir = QDir::homePath() + "/.qmplay2/"; + const QString configSettingsDir(QStandardPaths::standardLocations(QStandardPaths::ConfigLocation).value(0) + "/QMPlay2/"); + const QString homeSettingsDir(QDir::homePath() + "/.qmplay2/"); + if (QFileInfo(configSettingsDir).isDir() || !QFileInfo(homeSettingsDir).isDir()) + { + settingsDir = configSettingsDir; + } + else + { + // Backward compatibility + settingsDir = homeSettingsDir; + } #endif } QDir(settingsDir).mkpath(".");