From abd5277a7b3dac90e8a555eefe855cfcca1536dc Mon Sep 17 00:00:00 2001
From: maxim_productengine <mnikolenko@productengine.com>
Date: Wed, 18 Dec 2019 11:26:22 +0200
Subject: [PATCH] SL-12424 WIP Save mousewheel zoom fraction in preset

---
 indra/newview/app_settings/camera/Front.xml | 11 +++++++++++
 indra/newview/app_settings/camera/Rear.xml  | 11 +++++++++++
 indra/newview/app_settings/camera/Side.xml  | 11 +++++++++++
 indra/newview/app_settings/settings.xml     | 11 +++++++++++
 indra/newview/llfloatercamera.cpp           |  1 +
 indra/newview/llpresetsmanager.cpp          |  4 +++-
 6 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/indra/newview/app_settings/camera/Front.xml b/indra/newview/app_settings/camera/Front.xml
index cb3380589ed..e4839d48ece 100644
--- a/indra/newview/app_settings/camera/Front.xml
+++ b/indra/newview/app_settings/camera/Front.xml
@@ -63,6 +63,17 @@
         <key>Value</key>
             <real>1</real>
         </map>
+    <key>CameraZoomFraction</key>
+        <map>
+        <key>Comment</key>
+            <string>Mousewheel driven fraction of zoom</string>
+        <key>Persist</key>
+            <integer>1</integer>
+        <key>Type</key>
+            <string>F32</string>
+        <key>Value</key>
+            <real>0.9</real>
+        </map>
     <key>EditCameraMovement</key>
         <map>
         <key>Comment</key>
diff --git a/indra/newview/app_settings/camera/Rear.xml b/indra/newview/app_settings/camera/Rear.xml
index 0bfe5a9ed83..72e6c5d93ac 100644
--- a/indra/newview/app_settings/camera/Rear.xml
+++ b/indra/newview/app_settings/camera/Rear.xml
@@ -63,6 +63,17 @@
         <key>Value</key>
             <real>1</real>
         </map>
+    <key>CameraZoomFraction</key>
+        <map>
+        <key>Comment</key>
+            <string>Mousewheel driven fraction of zoom</string>
+        <key>Persist</key>
+            <integer>1</integer>
+        <key>Type</key>
+            <string>F32</string>
+        <key>Value</key>
+            <real>0.9</real>
+        </map>
     <key>EditCameraMovement</key>
         <map>
         <key>Comment</key>
diff --git a/indra/newview/app_settings/camera/Side.xml b/indra/newview/app_settings/camera/Side.xml
index 49582a8a3ce..eb3b3253c11 100644
--- a/indra/newview/app_settings/camera/Side.xml
+++ b/indra/newview/app_settings/camera/Side.xml
@@ -63,6 +63,17 @@
         <key>Value</key>
             <real>1</real>
         </map>
+    <key>CameraZoomFraction</key>
+        <map>
+        <key>Comment</key>
+            <string>Mousewheel driven fraction of zoom</string>
+        <key>Persist</key>
+            <integer>1</integer>
+        <key>Type</key>
+            <string>F32</string>
+        <key>Value</key>
+            <real>0.9</real>
+        </map>
     <key>EditCameraMovement</key>
         <map>
         <key>Comment</key>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 5be89c92a87..93a3c29530c 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1525,6 +1525,17 @@
       <key>Value</key>
       <real>1.0</real>
     </map>
+    <key>CameraZoomFraction</key>
+    <map>
+      <key>Comment</key>
+      <string>Mousewheel driven fraction of zoom</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>F32</string>
+      <key>Value</key>
+      <real>0.9</real>
+    </map>
     <key>CameraPosOnLogout</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index 7e538d1bfcc..f45033aa20a 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -565,6 +565,7 @@ void LLFloaterCamera::switchToPreset(const std::string& name)
 	{
 		LLPresetsManager::getInstance()->loadPreset(PRESETS_CAMERA, name);
 	}
+	gAgentCamera.setCameraZoomFraction(gSavedSettings.getF32("CameraZoomFraction"));
 
 	LLFloaterCamera* camera_floater = LLFloaterCamera::findInstance();
 	if (camera_floater)
diff --git a/indra/newview/llpresetsmanager.cpp b/indra/newview/llpresetsmanager.cpp
index c4161ed1bc9..73978e9dfbf 100644
--- a/indra/newview/llpresetsmanager.cpp
+++ b/indra/newview/llpresetsmanager.cpp
@@ -236,7 +236,6 @@ void LLPresetsManager::getControlNames(std::vector<std::string>& names)
 		("AppearanceCameraMovement")
 		// From llagentcamera.cpp
 		("CameraOffsetBuild")
-		("CameraOffsetScale")
 		("TrackFocusObject")
 		("CameraOffsetRearView")
 		("FocusOffsetRearView")
@@ -288,6 +287,9 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n
 		name_list.clear();
 		getControlNames(name_list);
 		name_list.push_back("PresetCameraActive");
+
+		gSavedSettings.setF32("CameraZoomFraction", gAgentCamera.getCameraZoomFraction());
+		name_list.push_back("CameraZoomFraction");
 	}
 	else
 	{
-- 
GitLab