diff options
Diffstat (limited to 'Swift/QtUI')
-rw-r--r-- | Swift/QtUI/QtSettingsProvider.cpp | 5 | ||||
-rw-r--r-- | Swift/QtUI/QtSettingsProvider.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/Swift/QtUI/QtSettingsProvider.cpp b/Swift/QtUI/QtSettingsProvider.cpp index 0c4d49b..64e88d4 100644 --- a/Swift/QtUI/QtSettingsProvider.cpp +++ b/Swift/QtUI/QtSettingsProvider.cpp @@ -1,55 +1,60 @@ /* * Copyright (c) 2010-2012 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include <QtSettingsProvider.h> #include <QStringList> #include <QFile> namespace Swift { QtSettingsProvider::QtSettingsProvider() { } QtSettingsProvider::~QtSettingsProvider() { } +bool QtSettingsProvider::hasSetting(const std::string& key) { + return !settings_.value(key.c_str()).isNull(); +} + + std::string QtSettingsProvider::getSetting(const Setting<std::string>& setting) { QVariant variant = settings_.value(setting.getKey().c_str()); return variant.isNull() ? setting.getDefaultValue() : std::string(variant.toString().toUtf8()); } void QtSettingsProvider::storeSetting(const Setting<std::string>& setting, const std::string& settingValue) { bool changed = false; if (getSetting(setting) != settingValue) { changed = true; } settings_.setValue(setting.getKey().c_str(), settingValue.c_str()); if (changed) { onSettingChanged(setting.getKey()); } updatePermissions(); } bool QtSettingsProvider::getSetting(const Setting<bool>& setting) { QVariant variant = settings_.value(setting.getKey().c_str()); return variant.isNull() ? setting.getDefaultValue() : variant.toBool(); } void QtSettingsProvider::storeSetting(const Setting<bool>& setting, const bool& settingValue) { bool changed = false; if (getSetting(setting) != settingValue) { changed = true; } settings_.setValue(setting.getKey().c_str(), settingValue); if (changed) { onSettingChanged(setting.getKey()); } updatePermissions(); } int QtSettingsProvider::getSetting(const Setting<int>& setting) { diff --git a/Swift/QtUI/QtSettingsProvider.h b/Swift/QtUI/QtSettingsProvider.h index ececa6e..e85bfb5 100644 --- a/Swift/QtUI/QtSettingsProvider.h +++ b/Swift/QtUI/QtSettingsProvider.h @@ -1,43 +1,44 @@ /* * Copyright (c) 2010-2012 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include <Swift/Controllers/Settings/SettingsProvider.h> #include <QSettings> namespace Swift { class QtSettingsProvider : public SettingsProvider { public: QtSettingsProvider(); virtual ~QtSettingsProvider(); virtual std::string getSetting(const Setting<std::string>& setting); virtual void storeSetting(const Setting<std::string>& setting, const std::string& value); virtual bool getSetting(const Setting<bool>& setting); virtual void storeSetting(const Setting<bool>& setting, const bool& value); virtual int getSetting(const Setting<int>& setting); virtual void storeSetting(const Setting<int>& setting, const int& value); virtual std::vector<std::string> getAvailableProfiles(); virtual void createProfile(const std::string& profile); virtual void removeProfile(const std::string& profile); + virtual bool hasSetting(const std::string& key); QSettings* getQSettings(); protected: virtual bool getIsSettingFinal(const std::string& settingPath); private: void updatePermissions(); private: QSettings settings_; }; } |