sailfish-safe

Sailfish frontend for safe(1)
git clone git://git.z3bra.org/sailfish-safe.git
Log | Files | Refs | README | LICENSE

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:
Msrc/settings.cpp | 32++++++++++++++++++++++++++++----
Msrc/settings.h | 2+-
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; };