diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2009-03-16 20:32:53 -0400 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2009-03-17 17:35:07 -0400 |
commit | 1b5a89d33b81af0939bef3c8e54633300a69b375 (patch) | |
tree | 635fa41ee2f31076e3e8276073a0539b4f631824 /sigscript/Config.cpp | |
parent | 3d7155a10a4bf9e6ba2f2b9a992c3e0aff44c3d0 (diff) | |
download | sigen-1b5a89d33b81af0939bef3c8e54633300a69b375.tar.gz sigen-1b5a89d33b81af0939bef3c8e54633300a69b375.tar.xz sigen-1b5a89d33b81af0939bef3c8e54633300a69b375.zip |
Fix up option handling (only emit when changed and if the value exists)
Diffstat (limited to 'sigscript/Config.cpp')
-rw-r--r-- | sigscript/Config.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sigscript/Config.cpp b/sigscript/Config.cpp index 6979a49f..3070f4cc 100644 --- a/sigscript/Config.cpp +++ b/sigscript/Config.cpp @@ -96,15 +96,21 @@ QStringList Config::values(const bool recursive) const void Config::setOptions(const QString& name, const Options options) { QWriteLocker locker(&m_lock); - m_values[name].second |= options; - emit(optionsChanged(name, options)); + if (m_values.contains(name) && ((~m_values[name].second) & options)) + { + m_values[name].second |= options; + emit(optionsChanged(name, options)); + } } void Config::unsetOptions(const QString& name, const Options options) { QWriteLocker locker(&m_lock); - m_values[name].second |= ~options; - emit(optionsChanged(name, options)); + if (m_values.contains(name) && (m_values[name].second & options)) + { + m_values[name].second &= ~options; + emit(optionsChanged(name, options)); + } } Config::Options Config::options(const QString& name, const bool recursive) const |