From 74b2a44050f7b1b7e8c8c73cfcc1743a40ac734f Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 19 Jan 2016 13:08:34 -0800 Subject: [PATCH] merge the master and user configs after a settings change --- domain-server/src/DomainServerSettingsManager.cpp | 3 +++ libraries/shared/src/HifiConfigVariantMap.cpp | 4 ++++ libraries/shared/src/HifiConfigVariantMap.h | 2 ++ 3 files changed, 9 insertions(+) diff --git a/domain-server/src/DomainServerSettingsManager.cpp b/domain-server/src/DomainServerSettingsManager.cpp index 9190e4f99f..e10007784f 100644 --- a/domain-server/src/DomainServerSettingsManager.cpp +++ b/domain-server/src/DomainServerSettingsManager.cpp @@ -482,6 +482,9 @@ void DomainServerSettingsManager::recurseJSONObjectAndOverwriteSettings(const QJ settingsVariant.remove(rootKey); } } + + // re-merge the user and master configs after a settings change + _configMap.mergeMasterAndUserConfigs(); } void DomainServerSettingsManager::persistToFile() { diff --git a/libraries/shared/src/HifiConfigVariantMap.cpp b/libraries/shared/src/HifiConfigVariantMap.cpp index 95c8519314..5d21473fd8 100644 --- a/libraries/shared/src/HifiConfigVariantMap.cpp +++ b/libraries/shared/src/HifiConfigVariantMap.cpp @@ -157,6 +157,10 @@ void HifiConfigVariantMap::loadMasterAndUserConfig(const QStringList& argumentLi loadMapFromJSONFile(_userConfig, _userConfigFilename); + mergeMasterAndUserConfigs(); +} + +void HifiConfigVariantMap::mergeMasterAndUserConfigs() { // the merged config is initially matched to the master config _mergedConfig = _masterConfig; diff --git a/libraries/shared/src/HifiConfigVariantMap.h b/libraries/shared/src/HifiConfigVariantMap.h index bf1e84dffc..e92561cff5 100644 --- a/libraries/shared/src/HifiConfigVariantMap.h +++ b/libraries/shared/src/HifiConfigVariantMap.h @@ -26,6 +26,8 @@ public: QVariantMap& getUserConfig() { return _userConfig; } QVariantMap& getMergedConfig() { return _mergedConfig; } + void mergeMasterAndUserConfigs(); + const QString& getUserConfigFilename() const { return _userConfigFilename; } private: QString _userConfigFilename;