commit bab48e6dcb7456b06b947f5fb8fb159622cc8f6f
parent d1856ff7481b08150f5998fdbc342c6399f2ab85
Author: Daniel Vrátil <dvratil@kde.org>
Date: Sun, 17 Feb 2019 12:15:57 +0100
Move Passilic configuration to correct location
Harbour requires the config be stored in ~/.config/harbour-passilic.
Diffstat:
2 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/src/settings.cpp b/src/settings.cpp
@@ -17,9 +17,33 @@
#include "settings.h"
+#include <QStandardPaths>
+#include <QDir>
+
std::unique_ptr<Settings> Settings::kInstance = {};
-Settings::Settings(): QObject() {}
+static const QString OldSettingsDir = QStringLiteral("Daniel Vrátil");
+static const QString SettingsDir = QStringLiteral("harbour-passilic");
+static const QString SettingsName = QStringLiteral("passilic");
+
+Settings::Settings()
+ : QObject()
+{
+ // Migrate config directory to new location
+ const auto oldPath = QStandardPaths::locate(QStandardPaths::ConfigLocation,
+ OldSettingsDir,
+ QStandardPaths::LocateDirectory);
+ const QDir newDir(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation)
+ + QLatin1Char('/') + SettingsDir);
+ if (!oldPath.isEmpty() && !newDir.exists()) {
+ qDebug("Migrating Passilic configuration from %s to %s",
+ qUtf8Printable(oldPath),
+ qUtf8Printable(newDir.absolutePath()));
+ QDir().rename(oldPath, newDir.absolutePath());
+ }
+
+ mSettings.reset(new QSettings(SettingsDir, SettingsName));
+}
Settings *Settings::self()
{
@@ -36,18 +60,18 @@ void Settings::destroy()
void Settings::save()
{
- mSettings.sync();
+ mSettings->sync();
}
#define IMPLEMENT_OPTION(type, lc, uc, name, defValue) \
void Settings::set##uc(type val) { \
if (lc() != val) { \
- mSettings.setValue(QStringLiteral(name), val); \
+ mSettings->setValue(QStringLiteral(name), val); \
Q_EMIT lc##Changed(); \
} \
} \
type Settings::lc() const { \
- return mSettings.value(QStringLiteral(name), defValue).value<type>(); \
+ return mSettings->value(QStringLiteral(name), defValue).value<type>(); \
}
IMPLEMENT_OPTION(int, expirationTimeout, ExpirationTimeout, "expirationTimeout", 45)
diff --git a/src/settings.h b/src/settings.h
@@ -43,7 +43,7 @@ public:
private:
explicit Settings();
- QSettings mSettings;
+ std::unique_ptr<QSettings> mSettings;
static std::unique_ptr<Settings> kInstance;
};