diff options
author | Petr Mrázek <peterix@gmail.com> | 2013-03-24 15:36:00 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2013-03-24 15:36:00 +0100 |
commit | 40570c321069b832722b807227fd8ff9bbd7c10d (patch) | |
tree | c29a37baba94726c27ef2c19ab3d81980cb43abb /libsettings | |
parent | e4f86893a899ee86cfa6d238f891bec04977c966 (diff) | |
download | PrismLauncher-40570c321069b832722b807227fd8ff9bbd7c10d.tar.gz PrismLauncher-40570c321069b832722b807227fd8ff9bbd7c10d.tar.bz2 PrismLauncher-40570c321069b832722b807227fd8ff9bbd7c10d.zip |
Fix settings objects, instances can be started from the GUI now
Diffstat (limited to 'libsettings')
-rw-r--r-- | libsettings/src/basicsettingsobject.cpp | 5 | ||||
-rw-r--r-- | libsettings/src/inisettingsobject.cpp | 5 | ||||
-rw-r--r-- | libsettings/src/setting.cpp | 9 |
3 files changed, 16 insertions, 3 deletions
diff --git a/libsettings/src/basicsettingsobject.cpp b/libsettings/src/basicsettingsobject.cpp index 66a2c2c8..484928c8 100644 --- a/libsettings/src/basicsettingsobject.cpp +++ b/libsettings/src/basicsettingsobject.cpp @@ -26,7 +26,10 @@ void BasicSettingsObject::changeSetting(const Setting &setting, QVariant value) { if (contains(setting.id())) { - config.setValue(setting.configKey(), value); + if(value.isValid()) + config.setValue(setting.configKey(), value); + else + config.remove(setting.configKey()); } } diff --git a/libsettings/src/inisettingsobject.cpp b/libsettings/src/inisettingsobject.cpp index 75228865..8c4cc89d 100644 --- a/libsettings/src/inisettingsobject.cpp +++ b/libsettings/src/inisettingsobject.cpp @@ -32,7 +32,10 @@ void INISettingsObject::changeSetting(const Setting &setting, QVariant value) { if (contains(setting.id())) { - m_ini.set(setting.configKey(), value); + if(value.isValid()) + m_ini.set(setting.configKey(), value); + else + m_ini.remove(setting.configKey()); } } diff --git a/libsettings/src/setting.cpp b/libsettings/src/setting.cpp index a224ad39..1a4f9e13 100644 --- a/libsettings/src/setting.cpp +++ b/libsettings/src/setting.cpp @@ -26,9 +26,16 @@ QVariant Setting::get() const { SettingsObject *sbase = qobject_cast<SettingsObject *>(parent()); if (!sbase) + { return defValue(); + } else - return sbase->retrieveValue(*this); + { + QVariant test = sbase->retrieveValue(*this); + if(!test.isValid()) + return defValue(); + return test; + } } QVariant Setting::defValue() const |