summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2012-03-01 08:03:50 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-03-03 09:00:30 (GMT)
commitfde71bd59b1412ae475c06f2d4100ce088e86af6 (patch)
tree4f3d85c700942d666c5ac5d032c757bc45bb1593 /Swift/QtUI
parent5271144cb6c0ecf3dc237af25197fa72a8737c09 (diff)
downloadswift-contrib-fde71bd59b1412ae475c06f2d4100ce088e86af6.zip
swift-contrib-fde71bd59b1412ae475c06f2d4100ce088e86af6.tar.bz2
Unit tests for SettingsProviderHierachy
Also fixing up errors they found and an uninitialised read left-over from the original patch.
Diffstat (limited to 'Swift/QtUI')
-rw-r--r--Swift/QtUI/QtSettingsProvider.cpp5
-rw-r--r--Swift/QtUI/QtSettingsProvider.h1
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_;
};
}