diff options
Diffstat (limited to 'src/core/Config.cpp')
-rw-r--r-- | src/core/Config.cpp | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/core/Config.cpp b/src/core/Config.cpp index 052db34bb..461ab1f74 100644 --- a/src/core/Config.cpp +++ b/src/core/Config.cpp @@ -21,8 +21,8 @@ #include <QCoreApplication> #include <QDir> #include <QSettings> -#include <QStandardPaths> #include <QTemporaryFile> +#include <QStandardPaths> Config* Config::m_instance(nullptr); @@ -51,6 +51,18 @@ void Config::set(const QString& key, const QVariant& value) m_settings->setValue(key, value); } +/** + * Sync configuration with persistent storage. + * + * Usually, you don't need to call this method manually, but if you are writing + * configurations after an emitted \link QCoreApplication::aboutToQuit() signal, + * use it to guarantee your config values are persisted. + */ +void Config::sync() +{ + m_settings->sync(); +} + Config::Config(const QString& fileName, QObject* parent) : QObject(parent) { @@ -106,19 +118,22 @@ Config::~Config() void Config::init(const QString& fileName) { m_settings.reset(new QSettings(fileName, QSettings::IniFormat)); + connect(qApp, &QCoreApplication::aboutToQuit, this, &Config::sync); m_defaults.insert("SingleInstance", true); m_defaults.insert("RememberLastDatabases", true); m_defaults.insert("RememberLastKeyFiles", true); m_defaults.insert("OpenPreviousDatabasesOnStartup", true); - m_defaults.insert("AutoSaveAfterEveryChange", false); + m_defaults.insert("AutoSaveAfterEveryChange", true); m_defaults.insert("AutoReloadOnChange", true); m_defaults.insert("AutoSaveOnExit", false); - m_defaults.insert("ShowToolbar", true); + m_defaults.insert("BackupBeforeSave", false); + m_defaults.insert("UseAtomicSaves", true); m_defaults.insert("SearchLimitGroup", false); m_defaults.insert("MinimizeOnCopy", false); m_defaults.insert("UseGroupIconOnEntryCreation", false); m_defaults.insert("AutoTypeEntryTitleMatch", true); + m_defaults.insert("AutoTypeEntryURLMatch", true); m_defaults.insert("AutoTypeDelay", 25); m_defaults.insert("UseGroupIconOnEntryCreation", true); m_defaults.insert("IgnoreGroupExpansion", true); @@ -130,12 +145,16 @@ void Config::init(const QString& fileName) m_defaults.insert("security/lockdatabasescreenlock", true); m_defaults.insert("security/passwordsrepeat", false); m_defaults.insert("security/passwordscleartext", false); + m_defaults.insert("security/hidepassworddetails", true); m_defaults.insert("security/autotypeask", true); m_defaults.insert("security/IconDownloadFallbackToGoogle", false); m_defaults.insert("GUI/Language", "system"); m_defaults.insert("GUI/ShowTrayIcon", false); + m_defaults.insert("GUI/DarkTrayIcon", false); m_defaults.insert("GUI/MinimizeToTray", false); m_defaults.insert("GUI/MinimizeOnClose", false); + m_defaults.insert("GUI/HideUsernames", false); + m_defaults.insert("GUI/HidePasswords", true); } Config* Config::instance() @@ -156,7 +175,7 @@ void Config::createConfigFromFile(const QString& file) void Config::createTempFileInstance() { Q_ASSERT(!m_instance); - QTemporaryFile* tmpFile = new QTemporaryFile(); + auto* tmpFile = new QTemporaryFile(); bool openResult = tmpFile->open(); Q_ASSERT(openResult); Q_UNUSED(openResult); |