diff --git a/apps/launcher/advancedpage.cpp b/apps/launcher/advancedpage.cpp index fa29b848b7..94e36ebd66 100644 --- a/apps/launcher/advancedpage.cpp +++ b/apps/launcher/advancedpage.cpp @@ -164,7 +164,7 @@ bool Launcher::AdvancedPage::loadSettings() // Audio { - std::string selectedAudioDevice = Settings::Manager::getString("device", "Sound"); + const std::string& selectedAudioDevice = Settings::Manager::getString("device", "Sound"); if (selectedAudioDevice.empty() == false) { int audioDeviceIndex = audioDeviceSelectorComboBox->findData(QString::fromStdString(selectedAudioDevice)); @@ -178,7 +178,7 @@ bool Launcher::AdvancedPage::loadSettings() { enableHRTFComboBox->setCurrentIndex(hrtfEnabledIndex + 1); } - std::string selectedHRTFProfile = Settings::Manager::getString("hrtf", "Sound"); + const std::string& selectedHRTFProfile = Settings::Manager::getString("hrtf", "Sound"); if (selectedHRTFProfile.empty() == false) { int hrtfProfileIndex = hrtfProfileSelectorComboBox->findData(QString::fromStdString(selectedHRTFProfile)); @@ -324,7 +324,7 @@ void Launcher::AdvancedPage::saveSettings() // Audio { int audioDeviceIndex = audioDeviceSelectorComboBox->currentIndex(); - std::string prevAudioDevice = Settings::Manager::getString("device", "Sound"); + const std::string& prevAudioDevice = Settings::Manager::getString("device", "Sound"); if (audioDeviceIndex != 0) { const std::string& newAudioDevice = audioDeviceSelectorComboBox->currentText().toUtf8().constData(); @@ -341,7 +341,7 @@ void Launcher::AdvancedPage::saveSettings() Settings::Manager::setInt("hrtf enable", "Sound", hrtfEnabledIndex); } int selectedHRTFProfileIndex = hrtfProfileSelectorComboBox->currentIndex(); - std::string prevHRTFProfile = Settings::Manager::getString("hrtf", "Sound"); + const std::string& prevHRTFProfile = Settings::Manager::getString("hrtf", "Sound"); if (selectedHRTFProfileIndex != 0) { const std::string& newHRTFProfile = hrtfProfileSelectorComboBox->currentText().toUtf8().constData(); diff --git a/apps/opencs/model/prefs/modifiersetting.cpp b/apps/opencs/model/prefs/modifiersetting.cpp index aa8b651547..1e4d29f1b6 100644 --- a/apps/opencs/model/prefs/modifiersetting.cpp +++ b/apps/opencs/model/prefs/modifiersetting.cpp @@ -49,7 +49,7 @@ namespace CSMPrefs { if (mButton) { - std::string shortcut = Settings::Manager::getString(getKey(), getParent()->getKey()); + const std::string& shortcut = Settings::Manager::getString(getKey(), getParent()->getKey()); int modifier; State::get().getShortcutManager().convertFromString(shortcut, modifier); diff --git a/apps/opencs/model/prefs/shortcutsetting.cpp b/apps/opencs/model/prefs/shortcutsetting.cpp index 0d5f9c039a..44260b8cb0 100644 --- a/apps/opencs/model/prefs/shortcutsetting.cpp +++ b/apps/opencs/model/prefs/shortcutsetting.cpp @@ -55,7 +55,7 @@ namespace CSMPrefs { if (mButton) { - std::string shortcut = Settings::Manager::getString(getKey(), getParent()->getKey()); + const std::string& shortcut = Settings::Manager::getString(getKey(), getParent()->getKey()); QKeySequence sequence; State::get().getShortcutManager().convertFromString(shortcut, sequence); diff --git a/apps/openmw/mwgui/dialogue.cpp b/apps/openmw/mwgui/dialogue.cpp index 1e740abe22..e26a96f2e4 100644 --- a/apps/openmw/mwgui/dialogue.cpp +++ b/apps/openmw/mwgui/dialogue.cpp @@ -745,8 +745,8 @@ namespace MWGui if (!Settings::Manager::getBool("color topic enable", "GUI")) return; - std::string specialColour = Settings::Manager::getString("color topic specific", "GUI"); - std::string oldColour = Settings::Manager::getString("color topic exhausted", "GUI"); + const std::string& specialColour = Settings::Manager::getString("color topic specific", "GUI"); + const std::string& oldColour = Settings::Manager::getString("color topic exhausted", "GUI"); for (const std::string& keyword : mKeywords) { diff --git a/apps/openmw/mwgui/settingswindow.cpp b/apps/openmw/mwgui/settingswindow.cpp index f24fafb855..a249f1e203 100644 --- a/apps/openmw/mwgui/settingswindow.cpp +++ b/apps/openmw/mwgui/settingswindow.cpp @@ -338,7 +338,7 @@ namespace MWGui } highlightCurrentResolution(); - std::string tmip = Settings::Manager::getString("texture mipmap", "General"); + const std::string& tmip = Settings::Manager::getString("texture mipmap", "General"); mTextureFilteringButton->setCaptionWithReplacing(textureMipmappingToStr(tmip)); int waterTextureSize = Settings::Manager::getInt("rtt size", "Water"); diff --git a/apps/openmw/mwrender/npcanimation.cpp b/apps/openmw/mwrender/npcanimation.cpp index deb44c14d5..421a7e622f 100644 --- a/apps/openmw/mwrender/npcanimation.cpp +++ b/apps/openmw/mwrender/npcanimation.cpp @@ -514,7 +514,7 @@ void NpcAnimation::updateNpcBase() if(!is1stPerson) { - const std::string base = Settings::Manager::getString("xbaseanim", "Models"); + const std::string& base = Settings::Manager::getString("xbaseanim", "Models"); if (smodel != base && !isWerewolf) addAnimSource(base, smodel); @@ -528,7 +528,7 @@ void NpcAnimation::updateNpcBase() } else { - const std::string base = Settings::Manager::getString("xbaseanim1st", "Models"); + const std::string& base = Settings::Manager::getString("xbaseanim1st", "Models"); if (smodel != base && !isWerewolf) addAnimSource(base, smodel); diff --git a/apps/openmw/mwrender/renderingmanager.cpp b/apps/openmw/mwrender/renderingmanager.cpp index 1385147c4c..fc45d06828 100644 --- a/apps/openmw/mwrender/renderingmanager.cpp +++ b/apps/openmw/mwrender/renderingmanager.cpp @@ -493,9 +493,9 @@ namespace MWRender mEffectManager = std::make_unique(sceneRoot, mResourceSystem); - const std::string normalMapPattern = Settings::Manager::getString("normal map pattern", "Shaders"); - const std::string heightMapPattern = Settings::Manager::getString("normal height map pattern", "Shaders"); - const std::string specularMapPattern = Settings::Manager::getString("terrain specular map pattern", "Shaders"); + const std::string& normalMapPattern = Settings::Manager::getString("normal map pattern", "Shaders"); + const std::string& heightMapPattern = Settings::Manager::getString("normal height map pattern", "Shaders"); + const std::string& specularMapPattern = Settings::Manager::getString("terrain specular map pattern", "Shaders"); const bool useTerrainNormalMaps = Settings::Manager::getBool("auto use terrain normal maps", "Shaders"); const bool useTerrainSpecularMaps = Settings::Manager::getBool("auto use terrain specular maps", "Shaders"); diff --git a/apps/openmw/mwsound/soundmanagerimp.cpp b/apps/openmw/mwsound/soundmanagerimp.cpp index 8b6c9f2ef9..3bd371ef8f 100644 --- a/apps/openmw/mwsound/soundmanagerimp.cpp +++ b/apps/openmw/mwsound/soundmanagerimp.cpp @@ -96,12 +96,12 @@ namespace MWSound return; } - std::string hrtfname = Settings::Manager::getString("hrtf", "Sound"); + const std::string& hrtfname = Settings::Manager::getString("hrtf", "Sound"); int hrtfstate = Settings::Manager::getInt("hrtf enable", "Sound"); HrtfMode hrtfmode = hrtfstate < 0 ? HrtfMode::Auto : hrtfstate > 0 ? HrtfMode::Enable : HrtfMode::Disable; - std::string devname = Settings::Manager::getString("device", "Sound"); + const std::string& devname = Settings::Manager::getString("device", "Sound"); if(!mOutput->init(devname, hrtfname, hrtfmode)) { Log(Debug::Error) << "Failed to initialize audio output, sound disabled"; diff --git a/components/sceneutil/actorutil.cpp b/components/sceneutil/actorutil.cpp index a0785e413d..c13cd093bf 100644 --- a/components/sceneutil/actorutil.cpp +++ b/components/sceneutil/actorutil.cpp @@ -4,7 +4,7 @@ namespace SceneUtil { - std::string getActorSkeleton(bool firstPerson, bool isFemale, bool isBeast, bool isWerewolf) + const std::string& getActorSkeleton(bool firstPerson, bool isFemale, bool isBeast, bool isWerewolf) { if (!firstPerson) { diff --git a/components/sceneutil/actorutil.hpp b/components/sceneutil/actorutil.hpp index 7bdbbaa922..038fc4e15e 100644 --- a/components/sceneutil/actorutil.hpp +++ b/components/sceneutil/actorutil.hpp @@ -5,7 +5,7 @@ namespace SceneUtil { - std::string getActorSkeleton(bool firstPerson, bool female, bool beast, bool werewolf); + const std::string& getActorSkeleton(bool firstPerson, bool female, bool beast, bool werewolf); } #endif diff --git a/components/sceneutil/lightmanager.cpp b/components/sceneutil/lightmanager.cpp index a861dcd32c..76e1ea852e 100644 --- a/components/sceneutil/lightmanager.cpp +++ b/components/sceneutil/lightmanager.cpp @@ -814,7 +814,7 @@ namespace SceneUtil return; } - std::string lightingMethodString = Settings::Manager::getString("lighting method", "Shaders"); + const std::string& lightingMethodString = Settings::Manager::getString("lighting method", "Shaders"); auto lightingMethod = LightManager::getLightingMethodFromString(lightingMethodString); static bool hasLoggedWarnings = false; diff --git a/components/sceneutil/shadow.cpp b/components/sceneutil/shadow.cpp index 8727dec37d..d1d0fc3251 100644 --- a/components/sceneutil/shadow.cpp +++ b/components/sceneutil/shadow.cpp @@ -43,10 +43,10 @@ namespace SceneUtil mShadowSettings->setMinimumShadowMapNearFarRatio(Settings::Manager::getFloat("minimum lispsm near far ratio", "Shadows")); - std::string computeSceneBounds = Settings::Manager::getString("compute scene bounds", "Shadows"); - if (Misc::StringUtils::lowerCase(computeSceneBounds) == "primitives") + const std::string& computeSceneBounds = Settings::Manager::getString("compute scene bounds", "Shadows"); + if (Misc::StringUtils::ciEqual(computeSceneBounds, "primitives")) mShadowSettings->setComputeNearFarModeOverride(osg::CullSettings::COMPUTE_NEAR_FAR_USING_PRIMITIVES); - else if (Misc::StringUtils::lowerCase(computeSceneBounds) == "bounds") + else if (Misc::StringUtils::ciEqual(computeSceneBounds, "bounds")) mShadowSettings->setComputeNearFarModeOverride(osg::CullSettings::COMPUTE_NEAR_FAR_USING_BOUNDING_VOLUMES); int mapres = Settings::Manager::getInt("shadow map resolution", "Shadows"); diff --git a/components/settings/settings.cpp b/components/settings/settings.cpp index 6591fd005b..d77f814468 100644 --- a/components/settings/settings.cpp +++ b/components/settings/settings.cpp @@ -71,7 +71,7 @@ void Manager::saveUser(const std::string &file) parser.saveSettingsFile(file, mUserSettings); } -std::string Manager::getString(std::string_view setting, std::string_view category) +const std::string& Manager::getString(std::string_view setting, std::string_view category) { const auto key = std::make_pair(category, setting); CategorySettingValueMap::iterator it = mUserSettings.find(key); diff --git a/components/settings/settings.hpp b/components/settings/settings.hpp index 178b8d3ebc..f50449b5de 100644 --- a/components/settings/settings.hpp +++ b/components/settings/settings.hpp @@ -63,7 +63,7 @@ namespace Settings static std::int64_t getInt64(std::string_view setting, std::string_view category); static float getFloat(std::string_view setting, std::string_view category); static double getDouble(std::string_view setting, std::string_view category); - static std::string getString(std::string_view setting, std::string_view category); + static const std::string& getString(std::string_view setting, std::string_view category); static std::vector getStringArray(std::string_view setting, std::string_view category); static bool getBool(std::string_view setting, std::string_view category); static osg::Vec2f getVector2(std::string_view setting, std::string_view category);