mirror of
https://github.com/overte-org/overte.git
synced 2025-08-07 04:39:51 +02:00
migrate the deprecated merged master/user config
This commit is contained in:
parent
285478f1b2
commit
62af203d08
7 changed files with 52 additions and 61 deletions
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": 1.6,
|
"version": 1.7,
|
||||||
"settings": [
|
"settings": [
|
||||||
{
|
{
|
||||||
"name": "metaverse",
|
"name": "metaverse",
|
||||||
|
|
|
@ -75,15 +75,6 @@ span.port {
|
||||||
color: #666666;
|
color: #666666;
|
||||||
}
|
}
|
||||||
|
|
||||||
.locked {
|
|
||||||
color: #428bca;
|
|
||||||
}
|
|
||||||
|
|
||||||
.locked-table {
|
|
||||||
cursor: not-allowed;
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.advanced-setting {
|
.advanced-setting {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,15 +57,13 @@
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<% _.each(split_settings[0], function(setting) { %>
|
<% _.each(split_settings[0], function(setting) { %>
|
||||||
<% keypath = isGrouped ? group.name + "." + setting.name : setting.name %>
|
<% keypath = isGrouped ? group.name + "." + setting.name : setting.name %>
|
||||||
<%= getFormGroup(keypath, setting, values, false,
|
<%= getFormGroup(keypath, setting, values, false) %>
|
||||||
(_.has(locked, group.name) && _.has(locked[group.name], setting.name))) %>
|
|
||||||
<% }); %>
|
<% }); %>
|
||||||
<% if (!_.isEmpty(split_settings[1])) { %>
|
<% if (!_.isEmpty(split_settings[1])) { %>
|
||||||
<% $("#advanced-toggle-button").show() %>
|
<% $("#advanced-toggle-button").show() %>
|
||||||
<% _.each(split_settings[1], function(setting) { %>
|
<% _.each(split_settings[1], function(setting) { %>
|
||||||
<% keypath = isGrouped ? group.name + "." + setting.name : setting.name %>
|
<% keypath = isGrouped ? group.name + "." + setting.name : setting.name %>
|
||||||
<%= getFormGroup(keypath, setting, values, true,
|
<%= getFormGroup(keypath, setting, values, true) %>
|
||||||
(_.has(locked, group.name) && _.has(locked[group.name], setting.name))) %>
|
|
||||||
<% }); %>
|
<% }); %>
|
||||||
<% }%>
|
<% }%>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -41,7 +41,7 @@ var Settings = {
|
||||||
};
|
};
|
||||||
|
|
||||||
var viewHelpers = {
|
var viewHelpers = {
|
||||||
getFormGroup: function(keypath, setting, values, isAdvanced, isLocked) {
|
getFormGroup: function(keypath, setting, values, isAdvanced) {
|
||||||
form_group = "<div class='form-group " + (isAdvanced ? Settings.ADVANCED_CLASS : "") + "' data-keypath='" + keypath + "'>";
|
form_group = "<div class='form-group " + (isAdvanced ? Settings.ADVANCED_CLASS : "") + "' data-keypath='" + keypath + "'>";
|
||||||
setting_value = _(values).valueForKeyPath(keypath);
|
setting_value = _(values).valueForKeyPath(keypath);
|
||||||
|
|
||||||
|
@ -54,9 +54,6 @@ var viewHelpers = {
|
||||||
}
|
}
|
||||||
|
|
||||||
label_class = 'control-label';
|
label_class = 'control-label';
|
||||||
if (isLocked) {
|
|
||||||
label_class += ' locked';
|
|
||||||
}
|
|
||||||
|
|
||||||
function common_attrs(extra_classes) {
|
function common_attrs(extra_classes) {
|
||||||
extra_classes = (!_.isUndefined(extra_classes) ? extra_classes : "");
|
extra_classes = (!_.isUndefined(extra_classes) ? extra_classes : "");
|
||||||
|
@ -71,9 +68,8 @@ var viewHelpers = {
|
||||||
form_group += "<label class='" + label_class + "'>" + setting.label + "</label>"
|
form_group += "<label class='" + label_class + "'>" + setting.label + "</label>"
|
||||||
}
|
}
|
||||||
|
|
||||||
form_group += "<div class='toggle-checkbox-container" + (isLocked ? " disabled" : "") + "'>"
|
form_group += "<div class='toggle-checkbox-container'>"
|
||||||
form_group += "<input type='checkbox'" + common_attrs('toggle-checkbox') + (setting_value ? "checked" : "")
|
form_group += "<input type='checkbox'" + common_attrs('toggle-checkbox') + (setting_value ? "checked" : "") + "/>"
|
||||||
form_group += (isLocked ? " disabled" : "") + "/>"
|
|
||||||
|
|
||||||
if (setting.help) {
|
if (setting.help) {
|
||||||
form_group += "<span class='help-block checkbox-help'>" + setting.help + "</span>";
|
form_group += "<span class='help-block checkbox-help'>" + setting.help + "</span>";
|
||||||
|
@ -88,7 +84,7 @@ var viewHelpers = {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input_type === 'table') {
|
if (input_type === 'table') {
|
||||||
form_group += makeTable(setting, keypath, setting_value, isLocked)
|
form_group += makeTable(setting, keypath, setting_value)
|
||||||
} else {
|
} else {
|
||||||
if (input_type === 'select') {
|
if (input_type === 'select') {
|
||||||
form_group += "<select class='form-control' data-hidden-input='" + keypath + "'>'"
|
form_group += "<select class='form-control' data-hidden-input='" + keypath + "'>'"
|
||||||
|
@ -107,12 +103,10 @@ var viewHelpers = {
|
||||||
|
|
||||||
if (setting.href) {
|
if (setting.href) {
|
||||||
form_group += "<a href='" + setting.href + "'style='display: block;' role='button'"
|
form_group += "<a href='" + setting.href + "'style='display: block;' role='button'"
|
||||||
+ (isLocked ? " disabled" : "")
|
|
||||||
+ common_attrs("btn " + setting.classes) + " target='_blank'>"
|
+ common_attrs("btn " + setting.classes) + " target='_blank'>"
|
||||||
+ setting.button_label + "</a>";
|
+ setting.button_label + "</a>";
|
||||||
} else {
|
} else {
|
||||||
form_group += "<button " + common_attrs("btn " + setting.classes)
|
form_group += "<button " + common_attrs("btn " + setting.classes) + ">"
|
||||||
+ (isLocked ? " disabled" : "") + ">"
|
|
||||||
+ setting.button_label + "</button>";
|
+ setting.button_label + "</button>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,7 +118,7 @@ var viewHelpers = {
|
||||||
|
|
||||||
form_group += "<input type='" + input_type + "'" + common_attrs() +
|
form_group += "<input type='" + input_type + "'" + common_attrs() +
|
||||||
"placeholder='" + (_.has(setting, 'placeholder') ? setting.placeholder : "") +
|
"placeholder='" + (_.has(setting, 'placeholder') ? setting.placeholder : "") +
|
||||||
"' value='" + setting_value + "'" + (isLocked ? " disabled" : "") + "/>"
|
"' value='" + setting_value + "'/>"
|
||||||
}
|
}
|
||||||
|
|
||||||
form_group += "<span class='help-block'>" + setting.help + "</span>"
|
form_group += "<span class='help-block'>" + setting.help + "</span>"
|
||||||
|
@ -459,10 +453,8 @@ function setupHFAccountButton() {
|
||||||
$("[data-keypath='metaverse.automatic_networking']").hide();
|
$("[data-keypath='metaverse.automatic_networking']").hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
var tokenLocked = _(Settings.data).valueForKeyPath("locked.metaverse.access_token");
|
|
||||||
|
|
||||||
// use the existing getFormGroup helper to ask for a button
|
// use the existing getFormGroup helper to ask for a button
|
||||||
var buttonGroup = viewHelpers.getFormGroup('', buttonSetting, Settings.data.values, false, tokenLocked);
|
var buttonGroup = viewHelpers.getFormGroup('', buttonSetting, Settings.data.values, false);
|
||||||
|
|
||||||
// add the button group to the top of the metaverse panel
|
// add the button group to the top of the metaverse panel
|
||||||
$('#metaverse .panel-body').prepend(buttonGroup);
|
$('#metaverse .panel-body').prepend(buttonGroup);
|
||||||
|
@ -673,7 +665,7 @@ function setupPlacesTable() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// get a table for the places
|
// get a table for the places
|
||||||
var placesTableGroup = viewHelpers.getFormGroup('', placesTableSetting, Settings.data.values, false, false);
|
var placesTableGroup = viewHelpers.getFormGroup('', placesTableSetting, Settings.data.values, false);
|
||||||
|
|
||||||
// append the places table in the right place
|
// append the places table in the right place
|
||||||
$('#places_paths .panel-body').prepend(placesTableGroup);
|
$('#places_paths .panel-body').prepend(placesTableGroup);
|
||||||
|
@ -873,10 +865,8 @@ function reloadSettings(callback) {
|
||||||
Settings.data = data;
|
Settings.data = data;
|
||||||
Settings.initialValues = form2js('settings-form', ".", false, cleanupFormValues, true);
|
Settings.initialValues = form2js('settings-form', ".", false, cleanupFormValues, true);
|
||||||
|
|
||||||
if (!_.has(data["locked"], "metaverse") && !_.has(data["locked"]["metaverse"], "id")) {
|
// append the domain selection modal
|
||||||
// append the domain selection modal, as long as it's not locked
|
appendDomainIDButtons();
|
||||||
appendDomainIDButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
// call our method to setup the HF account button
|
// call our method to setup the HF account button
|
||||||
setupHFAccountButton();
|
setupHFAccountButton();
|
||||||
|
@ -889,12 +879,6 @@ function reloadSettings(callback) {
|
||||||
|
|
||||||
$('[data-toggle="tooltip"]').tooltip();
|
$('[data-toggle="tooltip"]').tooltip();
|
||||||
|
|
||||||
// add tooltip to locked settings
|
|
||||||
$('label.locked').tooltip({
|
|
||||||
placement: 'right',
|
|
||||||
title: 'This setting is in the master config file and cannot be changed'
|
|
||||||
});
|
|
||||||
|
|
||||||
// call the callback now that settings are loaded
|
// call the callback now that settings are loaded
|
||||||
callback(true);
|
callback(true);
|
||||||
}).fail(function() {
|
}).fail(function() {
|
||||||
|
@ -943,11 +927,11 @@ $('body').on('click', '.save-button', function(e){
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
function makeTable(setting, keypath, setting_value, isLocked) {
|
function makeTable(setting, keypath, setting_value) {
|
||||||
var isArray = !_.has(setting, 'key');
|
var isArray = !_.has(setting, 'key');
|
||||||
var categoryKey = setting.categorize_by_key;
|
var categoryKey = setting.categorize_by_key;
|
||||||
var isCategorized = !!categoryKey && isArray;
|
var isCategorized = !!categoryKey && isArray;
|
||||||
|
|
||||||
if (!isArray && setting.can_order) {
|
if (!isArray && setting.can_order) {
|
||||||
setting.can_order = false;
|
setting.can_order = false;
|
||||||
}
|
}
|
||||||
|
@ -961,7 +945,7 @@ function makeTable(setting, keypath, setting_value, isLocked) {
|
||||||
var nonDeletableRowKey = setting["non-deletable-row-key"];
|
var nonDeletableRowKey = setting["non-deletable-row-key"];
|
||||||
var nonDeletableRowValues = setting["non-deletable-row-values"];
|
var nonDeletableRowValues = setting["non-deletable-row-values"];
|
||||||
|
|
||||||
html += "<table class='table table-bordered " + (isLocked ? "locked-table" : "") + "' " +
|
html += "<table class='table table-bordered' " +
|
||||||
"data-short-name='" + setting.name + "' name='" + keypath + "' " +
|
"data-short-name='" + setting.name + "' name='" + keypath + "' " +
|
||||||
"id='" + (!_.isUndefined(setting.html_id) ? setting.html_id : keypath) + "' " +
|
"id='" + (!_.isUndefined(setting.html_id) ? setting.html_id : keypath) + "' " +
|
||||||
"data-setting-type='" + (isArray ? 'array' : 'hash') + "'>";
|
"data-setting-type='" + (isArray ? 'array' : 'hash') + "'>";
|
||||||
|
@ -976,7 +960,7 @@ function makeTable(setting, keypath, setting_value, isLocked) {
|
||||||
_.each(setting.groups, function (group) {
|
_.each(setting.groups, function (group) {
|
||||||
html += "<td colspan='" + group.span + "'><strong>" + group.label + "</strong></td>"
|
html += "<td colspan='" + group.span + "'><strong>" + group.label + "</strong></td>"
|
||||||
})
|
})
|
||||||
if (!isLocked && !setting.read_only) {
|
if (!setting.read_only) {
|
||||||
if (setting.can_order) {
|
if (setting.can_order) {
|
||||||
html += "<td class='" + Settings.REORDER_BUTTONS_CLASSES +
|
html += "<td class='" + Settings.REORDER_BUTTONS_CLASSES +
|
||||||
"'><a href='javascript:void(0);' class='glyphicon glyphicon-sort'></a></td>";
|
"'><a href='javascript:void(0);' class='glyphicon glyphicon-sort'></a></td>";
|
||||||
|
@ -1004,7 +988,7 @@ function makeTable(setting, keypath, setting_value, isLocked) {
|
||||||
(col.class ? col.class : '') + "'><strong>" + col.label + "</strong></td>" // Data
|
(col.class ? col.class : '') + "'><strong>" + col.label + "</strong></td>" // Data
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!isLocked && !setting.read_only) {
|
if (!setting.read_only) {
|
||||||
if (setting.can_order) {
|
if (setting.can_order) {
|
||||||
numVisibleColumns++;
|
numVisibleColumns++;
|
||||||
html += "<td class='" + Settings.REORDER_BUTTONS_CLASSES +
|
html += "<td class='" + Settings.REORDER_BUTTONS_CLASSES +
|
||||||
|
@ -1083,7 +1067,7 @@ function makeTable(setting, keypath, setting_value, isLocked) {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!isLocked && !setting.read_only) {
|
if (!setting.read_only) {
|
||||||
if (setting.can_order) {
|
if (setting.can_order) {
|
||||||
html += "<td class='" + Settings.REORDER_BUTTONS_CLASSES+
|
html += "<td class='" + Settings.REORDER_BUTTONS_CLASSES+
|
||||||
"'><a href='javascript:void(0);' class='" + Settings.MOVE_UP_SPAN_CLASSES + "'></a>"
|
"'><a href='javascript:void(0);' class='" + Settings.MOVE_UP_SPAN_CLASSES + "'></a>"
|
||||||
|
@ -1108,7 +1092,7 @@ function makeTable(setting, keypath, setting_value, isLocked) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// populate inputs in the table for new values
|
// populate inputs in the table for new values
|
||||||
if (!isLocked && !setting.read_only) {
|
if (!setting.read_only) {
|
||||||
if (setting.can_add_new_categories) {
|
if (setting.can_add_new_categories) {
|
||||||
html += makeTableCategoryInput(setting, numVisibleColumns);
|
html += makeTableCategoryInput(setting, numVisibleColumns);
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,6 +95,8 @@ void DomainServerSettingsManager::processSettingsRequestPacket(QSharedPointer<Re
|
||||||
|
|
||||||
void DomainServerSettingsManager::setupConfigMap(const QStringList& argumentList) {
|
void DomainServerSettingsManager::setupConfigMap(const QStringList& argumentList) {
|
||||||
_argumentList = argumentList;
|
_argumentList = argumentList;
|
||||||
|
|
||||||
|
// after 1.7 we no longer use the master or merged configs - this is kept in place for migration
|
||||||
_configMap.loadMasterAndUserConfig(_argumentList);
|
_configMap.loadMasterAndUserConfig(_argumentList);
|
||||||
|
|
||||||
// What settings version were we before and what are we using now?
|
// What settings version were we before and what are we using now?
|
||||||
|
@ -282,6 +284,19 @@ void DomainServerSettingsManager::setupConfigMap(const QStringList& argumentList
|
||||||
|
|
||||||
packPermissions();
|
packPermissions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (oldVersion < 1.7) {
|
||||||
|
// This was prior to the removal of the master config file
|
||||||
|
// So we write the merged config to the user config file, and stop reading from the user config file
|
||||||
|
|
||||||
|
qDebug() << "Migrating merged config to user config file. The master config file is deprecated.";
|
||||||
|
|
||||||
|
// replace the user config by the merged config
|
||||||
|
_configMap.getUserConfig() = _configMap.getMergedConfig();
|
||||||
|
|
||||||
|
// persist the new config so the user config file has the correctly merged config
|
||||||
|
persistToFile();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unpackPermissions();
|
unpackPermissions();
|
||||||
|
@ -327,9 +342,6 @@ void DomainServerSettingsManager::validateDescriptorsMap() {
|
||||||
if (wasMalformed) {
|
if (wasMalformed) {
|
||||||
// write the new settings to file
|
// write the new settings to file
|
||||||
persistToFile();
|
persistToFile();
|
||||||
|
|
||||||
// reload the master and user config so the merged config is correct
|
|
||||||
_configMap.loadMasterAndUserConfig(_argumentList);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -437,7 +449,6 @@ void DomainServerSettingsManager::packPermissions() {
|
||||||
packPermissionsForMap("permissions", _groupForbiddens, GROUP_FORBIDDENS_KEYPATH);
|
packPermissionsForMap("permissions", _groupForbiddens, GROUP_FORBIDDENS_KEYPATH);
|
||||||
|
|
||||||
persistToFile();
|
persistToFile();
|
||||||
_configMap.loadMasterAndUserConfig(_argumentList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DomainServerSettingsManager::unpackPermissionsForKeypath(const QString& keyPath,
|
bool DomainServerSettingsManager::unpackPermissionsForKeypath(const QString& keyPath,
|
||||||
|
@ -446,7 +457,7 @@ bool DomainServerSettingsManager::unpackPermissionsForKeypath(const QString& key
|
||||||
|
|
||||||
mapPointer->clear();
|
mapPointer->clear();
|
||||||
|
|
||||||
QVariant* permissions = valueForKeyPath(_configMap.getMergedConfig(), keyPath, true);
|
QVariant* permissions = valueForKeyPath(_configMap.getUserConfig(), keyPath, true);
|
||||||
if (!permissions->canConvert(QMetaType::QVariantList)) {
|
if (!permissions->canConvert(QMetaType::QVariantList)) {
|
||||||
qDebug() << "Failed to extract permissions for key path" << keyPath << "from settings.";
|
qDebug() << "Failed to extract permissions for key path" << keyPath << "from settings.";
|
||||||
(*permissions) = QVariantList();
|
(*permissions) = QVariantList();
|
||||||
|
@ -777,7 +788,7 @@ NodePermissions DomainServerSettingsManager::getForbiddensForGroup(const QUuid&
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant DomainServerSettingsManager::valueOrDefaultValueForKeyPath(const QString& keyPath) {
|
QVariant DomainServerSettingsManager::valueOrDefaultValueForKeyPath(const QString& keyPath) {
|
||||||
const QVariant* foundValue = valueForKeyPath(_configMap.getMergedConfig(), keyPath);
|
const QVariant* foundValue = valueForKeyPath(_configMap.getUserConfig(), keyPath);
|
||||||
|
|
||||||
if (foundValue) {
|
if (foundValue) {
|
||||||
return *foundValue;
|
return *foundValue;
|
||||||
|
@ -860,12 +871,10 @@ bool DomainServerSettingsManager::handleAuthenticatedHTTPRequest(HTTPConnection
|
||||||
// setup a JSON Object with descriptions and non-omitted settings
|
// setup a JSON Object with descriptions and non-omitted settings
|
||||||
const QString SETTINGS_RESPONSE_DESCRIPTION_KEY = "descriptions";
|
const QString SETTINGS_RESPONSE_DESCRIPTION_KEY = "descriptions";
|
||||||
const QString SETTINGS_RESPONSE_VALUE_KEY = "values";
|
const QString SETTINGS_RESPONSE_VALUE_KEY = "values";
|
||||||
const QString SETTINGS_RESPONSE_LOCKED_VALUES_KEY = "locked";
|
|
||||||
|
|
||||||
QJsonObject rootObject;
|
QJsonObject rootObject;
|
||||||
rootObject[SETTINGS_RESPONSE_DESCRIPTION_KEY] = _descriptionArray;
|
rootObject[SETTINGS_RESPONSE_DESCRIPTION_KEY] = _descriptionArray;
|
||||||
rootObject[SETTINGS_RESPONSE_VALUE_KEY] = responseObjectForType("", true);
|
rootObject[SETTINGS_RESPONSE_VALUE_KEY] = responseObjectForType("", true);
|
||||||
rootObject[SETTINGS_RESPONSE_LOCKED_VALUES_KEY] = QJsonDocument::fromVariant(_configMap.getMasterConfig()).object();
|
|
||||||
connection->respond(HTTPConnection::StatusCode200, QJsonDocument(rootObject).toJson(), "application/json");
|
connection->respond(HTTPConnection::StatusCode200, QJsonDocument(rootObject).toJson(), "application/json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -910,13 +919,13 @@ QJsonObject DomainServerSettingsManager::responseObjectForType(const QString& ty
|
||||||
QVariant variantValue;
|
QVariant variantValue;
|
||||||
|
|
||||||
if (!groupKey.isEmpty()) {
|
if (!groupKey.isEmpty()) {
|
||||||
QVariant settingsMapGroupValue = _configMap.getMergedConfig().value(groupKey);
|
QVariant settingsMapGroupValue = _configMap.getUserConfig().value(groupKey);
|
||||||
|
|
||||||
if (!settingsMapGroupValue.isNull()) {
|
if (!settingsMapGroupValue.isNull()) {
|
||||||
variantValue = settingsMapGroupValue.toMap().value(settingName);
|
variantValue = settingsMapGroupValue.toMap().value(settingName);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
variantValue = _configMap.getMergedConfig().value(settingName);
|
variantValue = _configMap.getUserConfig().value(settingName);
|
||||||
}
|
}
|
||||||
|
|
||||||
QJsonValue result;
|
QJsonValue result;
|
||||||
|
@ -1208,6 +1217,9 @@ void DomainServerSettingsManager::persistToFile() {
|
||||||
settingsFile.write(QJsonDocument::fromVariant(_configMap.getUserConfig()).toJson());
|
settingsFile.write(QJsonDocument::fromVariant(_configMap.getUserConfig()).toJson());
|
||||||
} else {
|
} else {
|
||||||
qCritical("Could not write to JSON settings file. Unable to persist settings.");
|
qCritical("Could not write to JSON settings file. Unable to persist settings.");
|
||||||
|
|
||||||
|
// failed to write, reload whatever the current config state is
|
||||||
|
_configMap.loadConfig(_argumentList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -111,6 +111,13 @@ void HifiConfigVariantMap::loadMasterAndUserConfig(const QStringList& argumentLi
|
||||||
loadMapFromJSONFile(_masterConfig, masterConfigFilepath);
|
loadMapFromJSONFile(_masterConfig, masterConfigFilepath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// load the user config - that method replaces loadMasterAndUserConfig after the 1.7 migration
|
||||||
|
loadConfig(argumentList);
|
||||||
|
|
||||||
|
mergeMasterAndUserConfigs();
|
||||||
|
}
|
||||||
|
|
||||||
|
void HifiConfigVariantMap::loadConfig(const QStringList& argumentList) {
|
||||||
// load the user config
|
// load the user config
|
||||||
const QString USER_CONFIG_FILE_OPTION = "--user-config";
|
const QString USER_CONFIG_FILE_OPTION = "--user-config";
|
||||||
static const QString USER_CONFIG_FILE_NAME = "config.json";
|
static const QString USER_CONFIG_FILE_NAME = "config.json";
|
||||||
|
@ -159,12 +166,10 @@ void HifiConfigVariantMap::loadMasterAndUserConfig(const QStringList& argumentLi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loadMapFromJSONFile(_userConfig, _userConfigFilename);
|
loadMapFromJSONFile(_userConfig, _userConfigFilename);
|
||||||
|
|
||||||
mergeMasterAndUserConfigs();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HifiConfigVariantMap::mergeMasterAndUserConfigs() {
|
void HifiConfigVariantMap::mergeMasterAndUserConfigs() {
|
||||||
|
|
|
@ -21,6 +21,7 @@ public:
|
||||||
|
|
||||||
HifiConfigVariantMap();
|
HifiConfigVariantMap();
|
||||||
void loadMasterAndUserConfig(const QStringList& argumentList);
|
void loadMasterAndUserConfig(const QStringList& argumentList);
|
||||||
|
void loadConfig(const QStringList& argumentList);
|
||||||
|
|
||||||
const QVariantMap& getMasterConfig() const { return _masterConfig; }
|
const QVariantMap& getMasterConfig() const { return _masterConfig; }
|
||||||
QVariantMap& getUserConfig() { return _userConfig; }
|
QVariantMap& getUserConfig() { return _userConfig; }
|
||||||
|
|
Loading…
Reference in a new issue