summaryrefslogtreecommitdiffstats
path: root/sigscript/Config.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-03-17 21:29:22 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-03-17 21:29:22 -0400
commit847e73d18f27e960493780b3f570dd036e32dd8b (patch)
tree81b2d88d36e750e50d0b46ff2b2fdb95ab6e01f4 /sigscript/Config.cpp
parente8e5acd7f0a9e0dc0f31c6d214d86a847e45c5f6 (diff)
downloadsigen-847e73d18f27e960493780b3f570dd036e32dd8b.tar.gz
sigen-847e73d18f27e960493780b3f570dd036e32dd8b.tar.xz
sigen-847e73d18f27e960493780b3f570dd036e32dd8b.zip
Overrides let us be smarter
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;