diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2009-03-17 20:45:05 -0400 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2009-03-17 20:45:05 -0400 |
commit | e8e5acd7f0a9e0dc0f31c6d214d86a847e45c5f6 (patch) | |
tree | 2bf1bcc43d845ce967e8c1ce56e69016dddd0709 /sigscript | |
parent | af483183c11a494394a3c61c47f9c46f805806bf (diff) | |
download | sigen-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.cpp | 30 | ||||
-rw-r--r-- | sigscript/Config.h | 18 |
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; } |