From ea0fca4322d3a40574599a37d7df80bf0eb426c6 Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Thu, 28 Apr 2022 06:30:38 -0400
Subject: [PATCH] Start to hook up lightbox floater

---
 indra/newview/alfloaterlightbox.cpp           | 51 +++++++++++++++++++
 indra/newview/alfloaterlightbox.h             |  2 +
 .../default/xui/en/panel_lightbox_image.xml   | 10 ++--
 .../default/xui/en/panel_lightbox_shadow.xml  | 35 ++++++++-----
 .../default/xui/en/panel_lightbox_ssao.xml    | 20 +++++---
 5 files changed, 92 insertions(+), 26 deletions(-)

diff --git a/indra/newview/alfloaterlightbox.cpp b/indra/newview/alfloaterlightbox.cpp
index e4621971cf3..dbd9daebed7 100644
--- a/indra/newview/alfloaterlightbox.cpp
+++ b/indra/newview/alfloaterlightbox.cpp
@@ -31,12 +31,63 @@
 #include "llviewerprecompiledheaders.h"
 #include "alfloaterlightbox.h"
 
+#include "llviewercontrol.h"
+
 ALFloaterLightBox::ALFloaterLightBox(const LLSD& key)
 :	LLFloater(key)
 {
+    mCommitCallbackRegistrar.add("LightBox.ResetControlDefault", std::bind(&ALFloaterLightBox::onClickResetControlDefault, this, std::placeholders::_2));
+    mCommitCallbackRegistrar.add("LightBox.ResetGroupDefault", std::bind(&ALFloaterLightBox::onClickResetGroupDefault, this, std::placeholders::_2));
 }
 
 BOOL ALFloaterLightBox::postBuild()
 {
 	return TRUE;
+}
+
+void ALFloaterLightBox::onClickResetControlDefault(const LLSD& userdata)
+{
+	const std::string& control_name = userdata.asString();
+	LLControlVariable* controlp = gSavedSettings.getControl(control_name);
+	if (controlp)
+	{
+		controlp->resetToDefault(true);
+	}
+}
+
+void ALFloaterLightBox::onClickResetGroupDefault(const LLSD& userdata)
+{
+	const std::string& setting_group = userdata.asString();
+	LLControlVariable* controlp = nullptr;
+	if (setting_group == "sharpen")
+	{
+		controlp = gSavedSettings.getControl("RenderSharpenMethod");
+		if (controlp)
+		{
+			controlp->resetToDefault(true);
+		}
+		controlp = gSavedSettings.getControl("RenderSharpenCASParams");
+		if (controlp)
+		{
+			controlp->resetToDefault(true);
+		}
+	    controlp = gSavedSettings.getControl("RenderSharpenDLSParams");
+		if (controlp)
+		{
+			controlp->resetToDefault(true);
+		}
+	}
+	else if (setting_group == "tonemap")
+	{
+		controlp = gSavedSettings.getControl("RenderToneMapType");
+		if (controlp)
+		{
+			controlp->resetToDefault(true);
+		}
+		controlp = gSavedSettings.getControl("RenderToneMapExposure");
+		if (controlp)
+		{
+			controlp->resetToDefault(true);
+		}
+	}
 }
\ No newline at end of file
diff --git a/indra/newview/alfloaterlightbox.h b/indra/newview/alfloaterlightbox.h
index 5f417a23ca8..171501f2e2d 100644
--- a/indra/newview/alfloaterlightbox.h
+++ b/indra/newview/alfloaterlightbox.h
@@ -41,6 +41,8 @@ class ALFloaterLightBox final : public LLFloater
 	ALFloaterLightBox(const LLSD& key);
 	BOOL postBuild() override;
 private:
+	void onClickResetControlDefault(const LLSD& userdata);
+	void onClickResetGroupDefault(const LLSD& userdata);
 	
 };
 
diff --git a/indra/newview/skins/default/xui/en/panel_lightbox_image.xml b/indra/newview/skins/default/xui/en/panel_lightbox_image.xml
index a6ad96801ca..efebeaa2654 100644
--- a/indra/newview/skins/default/xui/en/panel_lightbox_image.xml
+++ b/indra/newview/skins/default/xui/en/panel_lightbox_image.xml
@@ -85,8 +85,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	<button.commit_callback
+	   function="LightBox.ResetGroupDefault"
+	   parameter="sharpen" />
   </button>
   <text
    follows="left|top"
@@ -185,8 +186,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		 function="LightBox.ResetGroupDefault"
+		 parameter="tonemap" />
   </button>
   
 <text
diff --git a/indra/newview/skins/default/xui/en/panel_lightbox_shadow.xml b/indra/newview/skins/default/xui/en/panel_lightbox_shadow.xml
index 3c350dce585..d37f28d2ba8 100644
--- a/indra/newview/skins/default/xui/en/panel_lightbox_shadow.xml
+++ b/indra/newview/skins/default/xui/en/panel_lightbox_shadow.xml
@@ -87,8 +87,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		 function="LightBox.ResetControlDefault"
+		 parameter="RenderShadowResolutionScale" />
   </button>
   <text
     follows="left|top"
@@ -138,8 +139,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderShadowBias" />
   </button>
   <text
     follows="left|top"
@@ -189,8 +191,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderShadowOffset" />
   </button>
   <text
     follows="left|top"
@@ -240,8 +243,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderSpotShadowBias" />
   </button>
   <text
     follows="left|top"
@@ -291,8 +295,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderSpotShadowOffset" />
   </button>
   <text
     follows="left|top"
@@ -342,8 +347,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderShadowBlurSize" />
   </button>
   <text
     follows="left|top"
@@ -393,8 +399,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderShadowBlurDistFactor" />
   </button>
   <panel
 				label="SSAO"
diff --git a/indra/newview/skins/default/xui/en/panel_lightbox_ssao.xml b/indra/newview/skins/default/xui/en/panel_lightbox_ssao.xml
index d00a9456aeb..9d3fe3bc5f4 100644
--- a/indra/newview/skins/default/xui/en/panel_lightbox_ssao.xml
+++ b/indra/newview/skins/default/xui/en/panel_lightbox_ssao.xml
@@ -66,8 +66,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderShadowBlurDistFactor" />
   </button>
   <text
     follows="left|top"
@@ -117,8 +118,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderSSAOFactor" />
   </button>
   <text
     follows="left|top"
@@ -168,8 +170,9 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderSSAOScale" />
   </button>
   <text
     follows="left|top"
@@ -219,7 +222,8 @@
     scale_image="true"
     image_overlay="Refresh_Off"
     image_overlay_alignment="center">
-    <button.commit_callback
-       function="ClickDefault" />
+	  <button.commit_callback
+		  function="LightBox.ResetControlDefault"
+		  parameter="RenderSSAOMaxScale" />
   </button>
 </panel>
-- 
GitLab