diff options
author | maxim_productengine <mnikolenko@productengine.com> | 2019-11-13 15:55:02 +0200 |
---|---|---|
committer | maxim_productengine <mnikolenko@productengine.com> | 2019-11-13 15:55:02 +0200 |
commit | 4778417f25f070e9019e975c979d93fb8881b5ac (patch) | |
tree | d8f624a0e935c4a4dfa24acda05c2b7b8dcc89aa /indra/newview/llpresetsmanager.cpp | |
parent | 382c1845012cc4e2be78a5a03334b4157a732349 (diff) |
SL-12186 WIP Use appropriate offset names when saving presets
Diffstat (limited to 'indra/newview/llpresetsmanager.cpp')
-rw-r--r-- | indra/newview/llpresetsmanager.cpp | 63 |
1 files changed, 47 insertions, 16 deletions
diff --git a/indra/newview/llpresetsmanager.cpp b/indra/newview/llpresetsmanager.cpp index 057f60a015..71f0cd72d4 100644 --- a/indra/newview/llpresetsmanager.cpp +++ b/indra/newview/llpresetsmanager.cpp @@ -275,6 +275,9 @@ void LLPresetsManager::getOffsetControlNames(std::vector<std::string>& names) bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string name, bool createDefault) { + bool IS_CAMERA = (PRESETS_CAMERA == subdirectory); + bool IS_GRAPHIC = (PRESETS_GRAPHIC == subdirectory); + if (LLTrans::getString(PRESETS_DEFAULT) == name) { name = PRESETS_DEFAULT; @@ -294,7 +297,7 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n bool saved = false; std::vector<std::string> name_list; - if(PRESETS_GRAPHIC == subdirectory) + if (IS_GRAPHIC) { LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences"); if (instance && !createDefault) @@ -309,11 +312,13 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n LL_WARNS("Presets") << "preferences floater instance not found" << LL_ENDL; } } - else if(PRESETS_CAMERA == subdirectory) + else if (IS_CAMERA) { name_list.clear(); getControlNames(name_list); name_list.push_back("PresetCameraActive"); + name_list.push_back(gAgentCamera.getCameraOffsetCtrlName()); + name_list.push_back(gAgentCamera.getFocusOffsetCtrlName()); } else { @@ -324,7 +329,7 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n LLSD paramsData(LLSD::emptyMap()); // Create a default graphics preset from hw recommended settings - if (createDefault && name == PRESETS_DEFAULT && subdirectory == PRESETS_GRAPHIC) + if (IS_GRAPHIC && createDefault && name == PRESETS_DEFAULT) { paramsData = LLFeatureManager::getInstance()->getRecommendedSettingsMap(); if (gSavedSettings.getU32("RenderAvatarMaxComplexity") == 0) @@ -335,25 +340,47 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n } else { - bool custom_camera_offsets = false; - if (subdirectory == PRESETS_CAMERA) + ECameraPreset new_camera_preset = (ECameraPreset)gSavedSettings.getU32("CameraPreset"); + bool new_camera_offsets = false; + if (IS_CAMERA) { - name_list.push_back(gAgentCamera.getCameraOffsetCtrlName()); - name_list.push_back(gAgentCamera.getFocusOffsetCtrlName()); - custom_camera_offsets = !isDefaultCameraPreset(name); + if (isDefaultCameraPreset(name)) + { + if (PRESETS_REAR_VIEW == name) + { + new_camera_preset = CAMERA_PRESET_REAR_VIEW; + } + else if (PRESETS_SIDE_VIEW == name) + { + new_camera_preset = CAMERA_PRESET_GROUP_VIEW; + } + else if (PRESETS_FRONT_VIEW == name) + { + new_camera_preset = CAMERA_PRESET_FRONT_VIEW; + } + } + else + { + new_camera_preset = CAMERA_PRESET_CUSTOM; + } + new_camera_offsets = (!isDefaultCameraPreset(name) || (ECameraPreset)gSavedSettings.getU32("CameraPreset") != new_camera_preset); } for (std::vector<std::string>::iterator it = name_list.begin(); it != name_list.end(); ++it) { std::string ctrl_name = *it; std::string dest_ctrl_name = ctrl_name; - if (custom_camera_offsets && ctrl_name == gAgentCamera.getCameraOffsetCtrlName()) - { - dest_ctrl_name = "CameraOffsetCustomPreset"; - } - if (custom_camera_offsets && ctrl_name == gAgentCamera.getFocusOffsetCtrlName()) + if (IS_CAMERA && new_camera_offsets) { - dest_ctrl_name = "FocusOffsetCustomPreset"; + if (ctrl_name == gAgentCamera.getCameraOffsetCtrlName()) + { + dest_ctrl_name = gAgentCamera.getCameraOffsetCtrlName(new_camera_preset); + } + if (ctrl_name == gAgentCamera.getFocusOffsetCtrlName()) + { + dest_ctrl_name = gAgentCamera.getFocusOffsetCtrlName(new_camera_preset); + } } + LLControlVariable* ctrl = gSavedSettings.getControl(ctrl_name).get(); if (ctrl) { @@ -367,6 +394,10 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n paramsData[dest_ctrl_name]["Value"] = value; } } + if (IS_CAMERA) + { + gSavedSettings.setU32("CameraPreset", new_camera_preset); + } } std::string pathName(getPresetsDir(subdirectory) + gDirUtilp->getDirDelimiter() + LLURI::escape(name) + ".xml"); @@ -385,14 +416,14 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n LL_DEBUGS() << "saved preset '" << name << "'; " << paramsData.size() << " parameters" << LL_ENDL; - if (subdirectory == PRESETS_GRAPHIC) + if (IS_GRAPHIC) { gSavedSettings.setString("PresetGraphicActive", name); // signal interested parties triggerChangeSignal(); } - if (subdirectory == PRESETS_CAMERA) + if (IS_CAMERA) { gSavedSettings.setString("PresetCameraActive", name); setCameraDirty(false); |