summaryrefslogtreecommitdiffstats
path: root/sigscript
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-03-17 20:45:05 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-03-17 20:45:05 -0400
commite8e5acd7f0a9e0dc0f31c6d214d86a847e45c5f6 (patch)
tree2bf1bcc43d845ce967e8c1ce56e69016dddd0709 /sigscript
parentaf483183c11a494394a3c61c47f9c46f805806bf (diff)
downloadsigen-e8e5acd7f0a9e0dc0f31c6d214d86a847e45c5f6.tar.gz
sigen-e8e5acd7f0a9e0dc0f31c6d214d86a847e45c5f6.tar.xz
sigen-e8e5acd7f0a9e0dc0f31c6d214d86a847e45c5f6.zip
Use the Config query instead of the internal map so that queries are centralized
Diffstat (limited to 'sigscript')
-rw-r--r--sigscript/Config.cpp30
-rw-r--r--sigscript/Config.h18
2 files changed, 18 insertions, 30 deletions
diff --git a/sigscript/Config.cpp b/sigscript/Config.cpp
index a30fa997..00dcc21e 100644
--- a/sigscript/Config.cpp
+++ b/sigscript/Config.cpp
@@ -31,18 +31,18 @@ Config::Config(Config* parent) :
bool Config::addValue(const QString& name, const QVariant& value)
{
- if (!m_values.contains(name) || (m_values.options(name) & Deleted))
+ if (!hasValue(name))
return setValue(name, value);
return false;
}
bool Config::setValue(const QString& name, const QVariant& value)
{
- if (m_values.contains(name) && (m_values.options(name) & ReadOnly))
+ if (hasValue(name) && (options(name) & ReadOnly))
return false;
if (!m_values.contains(name))
emit(valueAdded(name, value));
- if (m_values.options(name) & Deleted)
+ if (options(name) & Deleted)
unsetOptions(name, Deleted);
m_values.setValue(name, value);
emit(valueChanged(name, value));
@@ -65,7 +65,7 @@ QVariant Config::value(const QString& name, const bool recursive) const
{
if (m_values.contains(name))
{
- if (m_values.options(name) & (Deleted | Hidden))
+ if (options(name) & (Deleted | Hidden))
return QVariant();
return m_values.value(name);
}
@@ -77,7 +77,7 @@ QVariant Config::value(const QString& name, const bool recursive) const
bool Config::hasValue(const QString& name, const bool recursive) const
{
if (m_values.contains(name))
- return !(m_values.options(name) & (Deleted | Hidden));
+ return !(options(name) & (Deleted | Hidden));
if (recursive && m_parent)
return m_parent->hasValue(name, true);
return false;
@@ -91,29 +91,29 @@ QStringList Config::values(const bool recursive) const
const QStringList keys = m_values.keys();
foreach (const QString& key, keys)
{
- if (m_values.options(key) & (Deleted | Hidden))
+ if (options(key) & (Deleted | Hidden))
values.removeAll(key);
}
return values.toSet().toList();
}
-bool Config::setOptions(const QString& name, const ConfigOptions options)
+bool Config::setOptions(const QString& name, const ConfigOptions newOptions)
{
- if ((m_values.contains(name) && (~m_values.options(name) & options)) || addValue(name, QVariant()))
+ if ((~options(name) & newOptions) || addValue(name, QVariant()))
{
- m_values.setOptions(name, options);
- emit(optionsChanged(name, options));
+ m_values.setOptions(name, newOptions);
+ emit(optionsChanged(name, options(name)));
return true;
}
return false;
}
-bool Config::unsetOptions(const QString& name, const ConfigOptions options)
+bool Config::unsetOptions(const QString& name, const ConfigOptions oldOptions)
{
- if (m_values.contains(name) && (m_values.options(name) & options))
+ if (options(name) & oldOptions)
{
- m_values.unsetOptions(name, options);
- emit(optionsChanged(name, options));
+ m_values.unsetOptions(name, oldOptions);
+ emit(optionsChanged(name, options(name)));
return true;
}
return false;
@@ -164,7 +164,7 @@ void Config::clean()
foreach (const QString& value, values)
{
unsetOptions(value, Hidden);
- if (m_values.options(value) & Temporary)
+ if (options(value) & Temporary)
removeValue(value, false);
}
}
diff --git a/sigscript/Config.h b/sigscript/Config.h
index 458cff97..d228f828 100644
--- a/sigscript/Config.h
+++ b/sigscript/Config.h
@@ -69,32 +69,20 @@ class SIGSCRIPT_EXPORT Config : public QObject
ValueMap m_values;
};
-template<typename T> bool Config::valueOfType(const QString& name, T* value, const bool recursive) const
+template<typename T> bool Config::valueOfType(const QString& name, T* dest, const bool recursive) const
{
if (hasValueOfType<T>(name))
{
- *value = m_values.value(name).value<T>();
+ *dest = value(name, recursive).value<T>();
return true;
}
- if (recursive)
- {
- Config* par = m_parent;
- while (par)
- {
- if (par->hasValue(name))
- return par->valueOfType(name, value, true);
- par = par->m_parent;
- }
- }
return false;
}
template<typename T> bool Config::hasValueOfType(const QString& name, const bool recursive) const
{
- if (hasValue(name) && m_values.value(name).canConvert<T>())
+ if (hasValue(name) && value(name, recursive).canConvert<T>())
return true;
- if (recursive)
- return m_parent->hasValueOfType<T>(name, true);
return false;
}