summaryrefslogtreecommitdiffstats
path: root/sigscript/Config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sigscript/Config.cpp')
-rw-r--r--sigscript/Config.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/sigscript/Config.cpp b/sigscript/Config.cpp
index 00dcc21e..25efc677 100644
--- a/sigscript/Config.cpp
+++ b/sigscript/Config.cpp
@@ -99,7 +99,7 @@ QStringList Config::values(const bool recursive) const
bool Config::setOptions(const QString& name, const ConfigOptions newOptions)
{
- if ((~options(name) & newOptions) || addValue(name, QVariant()))
+ if ((~options(name) & newOptions) || (overrides(name) & newOptions) || addValue(name, QVariant()))
{
m_values.setOptions(name, newOptions);
emit(optionsChanged(name, options(name)));
@@ -110,7 +110,7 @@ bool Config::setOptions(const QString& name, const ConfigOptions newOptions)
bool Config::unsetOptions(const QString& name, const ConfigOptions oldOptions)
{
- if (options(name) & oldOptions)
+ if ((options(name) & oldOptions) || (overrides(name) & oldOptions))
{
m_values.unsetOptions(name, oldOptions);
emit(optionsChanged(name, options(name)));
@@ -133,6 +133,7 @@ bool Config::setOverrides(const QString& name, const ConfigOptions newOverrides)
{
if ((~overrides(name) & newOverrides) || addValue(name, QVariant()))
{
+ m_values.setOptions(name, options(name) & newOverrides);
m_values.setOverrides(name, newOverrides);
emit(overridesChanged(name, overrides(name)));
return true;