From 04a71a32725871bc50a43dc6877a006f197fb5cb Mon Sep 17 00:00:00 2001 From: Rye Mutt <rye@alchemyviewer.org> Date: Sat, 1 Jun 2024 13:00:17 -0400 Subject: [PATCH] Refresh camera pulldown --- indra/newview/llfloatercamera.cpp | 6 +- indra/newview/llfloatercamera.h | 2 +- .../newview/llpanelpresetscamerapulldown.cpp | 1 + indra/newview/llviewermenu.cpp | 3 + .../xui/en/panel_presets_camera_pulldown.xml | 393 +++++++++++++++++- 5 files changed, 392 insertions(+), 13 deletions(-) diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp index 9acbafc00c2..01249c00ce9 100644 --- a/indra/newview/llfloatercamera.cpp +++ b/indra/newview/llfloatercamera.cpp @@ -487,11 +487,8 @@ LLFloaterCamera::LLFloaterCamera(const LLSD& val) { LLHints::getInstance()->registerHintTarget("view_popup", getHandle()); mCommitCallbackRegistrar.add("CameraPresets.ChangeView", boost::bind(&LLFloaterCamera::onClickCameraItem, _2)); - mCommitCallbackRegistrar.add("CameraPresets.Save", boost::bind(&LLFloaterCamera::onSavePreset, this)); + mCommitCallbackRegistrar.add("CameraPresets.Save", boost::bind(&LLFloaterCamera::onSavePreset)); mCommitCallbackRegistrar.add("CameraPresets.ShowPresetsList", boost::bind(&LLFloaterReg::showInstance, "camera_presets", LLSD(), FALSE)); - - mCommitCallbackRegistrar.add("Camera.SavePosition", [](LLUICtrl* ctrl, const LLSD& param) { gAgentCamera.storeCameraPosition(); }); - mCommitCallbackRegistrar.add("Camera.RestorePosition", [](LLUICtrl* ctrl, const LLSD& param) { gAgentCamera.loadCameraPosition(); }); } // virtual @@ -759,6 +756,7 @@ void LLFloaterCamera::populatePresetCombo() updateItemsSelection(); } +// static void LLFloaterCamera::onSavePreset() { LLFloaterReg::hideInstance("delete_pref_preset", PRESETS_CAMERA); diff --git a/indra/newview/llfloatercamera.h b/indra/newview/llfloatercamera.h index b28c199a693..9f69384a13f 100644 --- a/indra/newview/llfloatercamera.h +++ b/indra/newview/llfloatercamera.h @@ -76,7 +76,7 @@ class LLFloaterCamera final : public LLFloater virtual void onOpen(const LLSD& key); virtual void onClose(bool app_quitting); - void onSavePreset(); + static void onSavePreset(); void onCustomPresetSelected(); void populatePresetCombo(); diff --git a/indra/newview/llpanelpresetscamerapulldown.cpp b/indra/newview/llpanelpresetscamerapulldown.cpp index a18eda3b270..a5ca23732ab 100644 --- a/indra/newview/llpanelpresetscamerapulldown.cpp +++ b/indra/newview/llpanelpresetscamerapulldown.cpp @@ -50,6 +50,7 @@ LLPanelPresetsCameraPulldown::LLPanelPresetsCameraPulldown() { mCommitCallbackRegistrar.add("Presets.toggleCameraFloater", boost::bind(&LLPanelPresetsCameraPulldown::onViewButtonClick, this, _2)); mCommitCallbackRegistrar.add("PresetsCamera.RowClick", boost::bind(&LLPanelPresetsCameraPulldown::onRowClick, this, _2)); + mCommitCallbackRegistrar.add("CameraPresets.Save", boost::bind(&LLFloaterCamera::onSavePreset)); buildFromFile( "panel_presets_camera_pulldown.xml"); } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 858bc5b4246..a79377d2053 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -10541,5 +10541,8 @@ void initialize_menus() enable.add("RLV.EnableIfNot", boost::bind(&rlvMenuEnableIfNot, _2)); // [/RLVa:KB] + commit.add("Camera.SavePosition", [](LLUICtrl* ctrl, const LLSD& param) { gAgentCamera.storeCameraPosition(); }); + commit.add("Camera.RestorePosition", [](LLUICtrl* ctrl, const LLSD& param) { gAgentCamera.loadCameraPosition(); }); + ALViewerMenu::initialize_menus(); } diff --git a/indra/newview/skins/default/xui/en/panel_presets_camera_pulldown.xml b/indra/newview/skins/default/xui/en/panel_presets_camera_pulldown.xml index d5f1bc81ee5..36e022593ce 100644 --- a/indra/newview/skins/default/xui/en/panel_presets_camera_pulldown.xml +++ b/indra/newview/skins/default/xui/en/panel_presets_camera_pulldown.xml @@ -8,10 +8,10 @@ border="false" chrome="true" follows="bottom" - height="155" + height="420" layout="topleft" name="presets_camera_pulldown" - width="225"> + width="295"> <text type="string" length="1" @@ -30,7 +30,7 @@ layout="topleft" column_padding="0" height="100" - width="215" + width="285" draw_heading="false" draw_stripes="false" bg_stripe_color="0.25 0.25 0.25 0.25" @@ -54,16 +54,393 @@ left="5" name="horiz_separator" top_delta="105" - width="215" /> + width="285" /> + <text + follows="top|left|right" + name="camera_offset_lbl" + height="16" + layout="topleft" + left="10" + top_pad="5" + width="100"> + Camera offset: + </text> + + <spinner + height="20" + label="X" + label_width="12" + follows="top|left" + left="10" + name="camera_x" + top_pad="5" + min_val="-1e+007" + max_val="1e+007" + width="70"> + <spinner.commit_callback + function="CommitSettings" /> + </spinner> + + <spinner + height="20" + label="Y" + label_width="12" + follows="top|left" + name="camera_y" + left_pad="21" + min_val="-1e+007" + max_val="1e+007" + width="70"> + <spinner.commit_callback + function="CommitSettings" /> + </spinner> + + <spinner + height="20" + label="Z" + label_width="12" + follows="top|left" + name="camera_z" + left_pad="21" + min_val="-1e+007" + max_val="1e+007" + width="70"> + <spinner.commit_callback + function="CommitSettings" /> + </spinner> + + <button + follows="top|left|right" + left_pad="3" + top_delta="0" + height="22" + width="22" + name="reset_offset_rear" + image_overlay="Refresh_Off" + tool_tip="Reset camera offset to default value"> + <button.commit_callback + function="ResetControl" + parameter="CameraOffsetRearView" /> + </button> + + <text + follows="top|left|right" + name="focus_offset_lbl" + height="16" + layout="topleft" + left="10" + top_pad="9" + width="100"> + Focus offset: + </text> + + <spinner + height="20" + label="X" + label_width="12" + follows="top|left" + left="10" + name="focus_x" + top_pad="5" + min_val="-1e+007" + max_val="1e+007" + width="70"> + <spinner.commit_callback + function="CommitSettings" /> + </spinner> + + <spinner + height="20" + label="Y" + label_width="12" + follows="top|left" + name="focus_y" + left_pad="21" + min_val="-1e+007" + max_val="1e+007" + width="70"> + <spinner.commit_callback + function="CommitSettings" /> + </spinner> + + <spinner + height="20" + label="Z" + label_width="12" + follows="top|left" + name="focus_z" + left_pad="21" + min_val="-1e+007" + max_val="1e+007" + width="70"> + <spinner.commit_callback + function="CommitSettings" /> + </spinner> + <button + follows="top|left|right" + left_pad="3" + top_delta="0" + height="22" + width="22" + name="reset_offset_rear" + image_overlay="Refresh_Off" + tool_tip="Reset focus offset to default value"> + <button.commit_callback + function="ResetControl" + parameter="FocusOffsetRearView" /> + </button> + + <text + follows="top|left|right" + name="offset_scale_lbl" + height="16" + layout="topleft" + left="10" + top_pad="8" + width="140"> + Camera offset scale: + </text> + + <slider + control_name="CameraOffsetScale" + follows="top|left|right" + height="16" + top_pad="2" + increment="0.1" + min_val="-3" + max_val="5" + show_text="false" + layout="topleft" + left="3" + name="offset_scale_sld" + width="196" /> + <spinner + control_name="CameraOffsetScale" + height="20" + follows="top|left|right" + left_pad="5" + name="offset_scale_ctrl" + min_val="-3" + max_val="5" + width="58"> + <spinner.commit_callback + function="CommitSettings" /> + </spinner> + <button + follows="top|left|right" + left_pad="3" + top_delta="0" + height="22" + width="22" + name="reset_offset_scale" + image_overlay="Refresh_Off" + tool_tip="Reset offset scaling to default value"> + <button.commit_callback + function="ResetControl" + parameter="CameraOffsetScale" /> + </button> + <text + follows="top|left" + name="offset_scale_lbl" + height="16" + layout="topleft" + left="10" + top_pad="3" + width="140"> + Camera angle: + </text> + + <slider + control_name="CameraAngle" + follows="top|left" + height="16" + top_pad="2" + increment="0.025" + min_val="0.08" + max_val="3.06" + show_text="false" + layout="topleft" + left="3" + name="camera_angle_slider" + width="196" /> + <spinner + control_name="CameraAngle" + height="20" + follows="top|left" + left_pad="5" + name="camera_angle_spinner" + min_val="0.08" + max_val="3.06" + width="58" + increment="0.025"> + <spinner.commit_callback + function="CommitSettings" /> + </spinner> + <button + follows="top|left" + left_pad="3" + top_delta="0" + height="22" + width="22" + name="reset_angle" + image_overlay="Refresh_Off" + tool_tip="Reset camera angle to default value"> + <button.commit_callback + function="ResetControl" + parameter="CameraAngle" /> + </button> + + <text + follows="top|left" + name="offset_scale_lbl" + height="16" + layout="topleft" + left="10" + top_pad="3" + width="140"> + Zoom Speed: + </text> + + <slider + control_name="ZoomTime" + follows="top|left" + height="16" + top_pad="2" + increment="0.1" + min_val="0.0" + max_val="30.0" + show_text="false" + layout="topleft" + left="3" + name="zoom_time_slider" + width="196" /> + <spinner + control_name="ZoomTime" + height="20" + follows="top|left" + left_pad="5" + name="zoom_time_spin" + min_val="0.0" + max_val="30.0" + width="58" + increment="0.1"> + <spinner.commit_callback + function="CommitSettings" /> + </spinner> + <button + follows="top|left" + left_pad="3" + top_delta="0" + height="22" + width="22" + name="reset_zoom_time" + image_overlay="Refresh_Off" + tool_tip="Reset camera zoom speed to default value"> + <button.commit_callback + function="ResetControl" + parameter="ZoomTime" /> + </button> + + <text + follows="top|left" + name="offset_scale_lbl" + height="16" + layout="topleft" + left="10" + top_pad="3" + width="140"> + Position Smoothing: + </text> + + <slider + control_name="CameraPositionSmoothing" + follows="top|left" + height="16" + top_pad="2" + increment="1.000" + min_val="0.0" + max_val="60.0" + show_text="false" + layout="topleft" + left="3" + name="cam_pos_slider" + width="196" /> + <spinner + control_name="CameraPositionSmoothing" + height="20" + follows="top|left" + left_pad="5" + name="cam_pos_spinner" + min_val="0.0" + max_val="60.0" + width="58" + increment="1.000"> + </spinner> + <button + follows="top|left" + left_pad="3" + top_delta="0" + height="22" + width="22" + name="cam_pos_reset" + image_overlay="Refresh_Off" + tool_tip="Reset camera position smoothing to default value"> + <button.commit_callback + function="ResetControl" + parameter="CameraPositionSmoothing" /> + </button> + <button + name="open_prefs_btn" + label="Camera" + tool_tip = "Bring up Camera floater" + follows="top|left" + top_pad="5" + left="10" + height="20" + width="108"> + <button.commit_callback + function="Presets.toggleCameraFloater" /> + </button> <button name="open_prefs_btn" - label="Open Camera floater" + label="Save Preset" tool_tip = "Bring up Camera floater" - top_delta="5" - left="15" + follows="top|left" + top_delta="0" + left_pad="5" height="20" - width="200"> + width="108"> <button.commit_callback function="Presets.toggleCameraFloater" /> </button> + <button + height="20" + label="" + image_overlay="Cam_Save" + name="save_cam_pos_btn" + tab_stop="false" + tool_tip="Save current camera position and focus" + follows="top|left" + layout="topleft" + top_delta="0" + left_pad="5" + width="23"> + <button.commit_callback + function="Camera.SavePosition"/> + </button> + <button + height="20" + label="" + follows="top|left" + layout="topleft" + top_delta="0" + left_pad="5" + image_overlay="Cam_Recall" + name="restore_cam_pos_btn" + tab_stop="false" + tool_tip="Restore saved camera position and focus" + width="23"> + <button.commit_callback + function="Camera.RestorePosition"/> + </button> </panel> -- GitLab