diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index 09ab25ad91..0b42f78fe2 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -2216,12 +2216,13 @@ void DomainServer::respondToPathQuery(const QByteArray& receivedPacket, const Hi pathQuery.prepend("/"); } - const QString PATHS_SETTINGS_KEYPATH_FORMAT = "paths.%2"; + const QString PATHS_SETTINGS_KEYPATH_FORMAT = "%1.%2"; const QString PATH_VIEWPOINT_KEY = "viewpoint"; // check out paths in the _configMap to see if we have a match const QVariant* pathMatch = valueForKeyPath(_settingsManager.getSettingsMap(), - QString(PATHS_SETTINGS_KEYPATH_FORMAT).arg(pathQuery)); + QString(PATHS_SETTINGS_KEYPATH_FORMAT).arg(SETTINGS_PATHS_KEY) + .arg(pathQuery)); if (pathMatch) { // we got a match, respond with the resulting viewpoint auto nodeList = DependencyManager::get(); diff --git a/domain-server/src/DomainServerSettingsManager.cpp b/domain-server/src/DomainServerSettingsManager.cpp index 665038de39..589231b56a 100644 --- a/domain-server/src/DomainServerSettingsManager.cpp +++ b/domain-server/src/DomainServerSettingsManager.cpp @@ -297,7 +297,18 @@ void DomainServerSettingsManager::updateSetting(const QString& key, const QJsonV } } - updateSetting(childKey, newValue.toObject()[childKey], thisMap, childDescriptionObject); + QString sanitizedKey = childKey; + + if (key == SETTINGS_PATHS_KEY) { + // We perform special handling for paths here. + // If we got sent a path without a leading slash then we add it. + + if (!sanitizedKey.startsWith("/")) { + sanitizedKey.prepend("/"); + } + } + + updateSetting(sanitizedKey, newValue.toObject()[childKey], thisMap, childDescriptionObject); } if (settingMap[key].toMap().isEmpty()) { diff --git a/domain-server/src/DomainServerSettingsManager.h b/domain-server/src/DomainServerSettingsManager.h index 1e581c5a21..450baf66ae 100644 --- a/domain-server/src/DomainServerSettingsManager.h +++ b/domain-server/src/DomainServerSettingsManager.h @@ -18,6 +18,8 @@ #include #include +const QString SETTINGS_PATHS_KEY = "paths"; + class DomainServerSettingsManager : public QObject { Q_OBJECT public: