diff options
Diffstat (limited to 'source/base/StarConfiguration.cpp')
-rw-r--r-- | source/base/StarConfiguration.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source/base/StarConfiguration.cpp b/source/base/StarConfiguration.cpp index 81c1212..89ec7fa 100644 --- a/source/base/StarConfiguration.cpp +++ b/source/base/StarConfiguration.cpp @@ -46,7 +46,10 @@ void Configuration::set(String const& key, Json const& value) { if (key == "configurationVersion") throw ConfigurationException("cannot set configurationVersion"); - m_currentConfig = m_currentConfig.set(key, value); + if (value) + m_currentConfig = m_currentConfig.set(key, value); + else + m_currentConfig = m_currentConfig.eraseKey(key); } void Configuration::setPath(String const& path, Json const& value) { @@ -54,7 +57,10 @@ void Configuration::setPath(String const& path, Json const& value) { if (path.splitAny("[].").get(0) == "configurationVersion") throw ConfigurationException("cannot set configurationVersion"); - m_currentConfig = m_currentConfig.setPath(path, value); + if (value) + m_currentConfig = m_currentConfig.setPath(path, value); + else + m_currentConfig = m_currentConfig.erasePath(path); } } |