diff options
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 |