From b4536e545f1a46ea920e5e25e3dcbc080e2927a1 Mon Sep 17 00:00:00 2001 From: minerjr Date: Thu, 30 Jan 2025 03:30:25 -0400 Subject: [PATCH] Added new parameter to the OnCommitSpinner method and XML objects Added new parameter to the OnCommitSpinner method and XML objects Also changed logic to use Switch statement so that each action takes the same amount of time to be reached. --- indra/newview/fsfloaterposer.cpp | 184 +++++++++--------- indra/newview/fsfloaterposer.h | 3 +- .../skins/default/xui/en/floater_fs_poser.xml | 39 ++-- 3 files changed, 118 insertions(+), 108 deletions(-) diff --git a/indra/newview/fsfloaterposer.cpp b/indra/newview/fsfloaterposer.cpp index dd9aba2eb8..eba653938d 100644 --- a/indra/newview/fsfloaterposer.cpp +++ b/indra/newview/fsfloaterposer.cpp @@ -106,7 +106,8 @@ FSFloaterPoser::FSFloaterPoser(const LLSD& key) : LLFloater(key) mCommitCallbackRegistrar.add("Poser.TogglePosingSelectedBones", [this](LLUICtrl*, const LLSD&) { onClickToggleSelectedBoneEnabled(); }); mCommitCallbackRegistrar.add("Poser.PoseJointsReset", [this](LLUICtrl*, const LLSD&) { onPoseJointsReset(); }); - mCommitCallbackRegistrar.add("Poser.CommitSpinner", [this](LLUICtrl* spinnerControl, const LLSD&) { onCommitSpinner(spinnerControl); }); + //mCommitCallbackRegistrar.add("Poser.CommitSpinner", [this](LLUICtrl* spinnerControl, const LLSD&) { onCommitSpinner(spinnerControl); }); + mCommitCallbackRegistrar.add("Poser.CommitSpinner", boost::bind(&FSFloaterPoser::onCommitSpinner, this, _1, _2)); } bool FSFloaterPoser::postBuild() @@ -581,7 +582,9 @@ void FSFloaterPoser::onClickBrowsePoseCache() gViewerWindow->getWindow()->openFile(pathname); } -void FSFloaterPoser::onCommitSpinner(LLUICtrl* spinner) +//void FSFloaterPoser::onCommitSpinner(LLUICtrl* spinner) +// Pass in an ID as a parameter, so you can use a switch statement +void FSFloaterPoser::onCommitSpinner(LLUICtrl* spinner, S32 id) { if (!spinner) return; @@ -594,103 +597,96 @@ void FSFloaterPoser::onCommitSpinner(LLUICtrl* spinner) F32 value = (F32)spinner->getValue().asReal(); - if (spinner == mTrackpadSensitivitySpnr) + // Use the ID passed in to perform a switch statment + // which should make each action take the same amount of time. + switch (id) { - onAdjustTrackpadSensitivity(); - return; - } - - if (spinner == mInOutSpnr) - { - mPosXSlider->setValue(value); - onAvatarPositionSet(); - return; - } - - if (spinner == mAdvPosXSpnr) - { - if (changingBodyPosition) - mPosXSlider->setValue(value); - - mAdvPosXSlider->setValue(value); - onAdvancedPositionSet(); - return; - } - - if (spinner == mLeftRightSpnr) - { - mPosYSlider->setValue(value); - onAvatarPositionSet(); - return; - } - - if (spinner == mAdvPosYSpnr) - { - if (changingBodyPosition) - mPosYSlider->setValue(value); - - mAdvPosYSlider->setValue(value); - onAdvancedPositionSet(); - return; - } - - if (spinner == mUpDownSpnr) - { - mPosZSlider->setValue(value); - onAvatarPositionSet(); - return; - } - - if (spinner == mAdvPosZSpnr) - { - if (changingBodyPosition) + case 0: // av_position_updown_spinner + { mPosZSlider->setValue(value); + onAvatarPositionSet(); + break; + } + case 1: // av_position_leftright + { + mPosYSlider->setValue(value); + onAvatarPositionSet(); + break; + } + case 2: // av_position_inout_spinner + { + mPosXSlider->setValue(value); + onAvatarPositionSet(); + break; + } + case 3: // trackpad_sensitivity_spinner + { + onAdjustTrackpadSensitivity(); + break; + } + case 4: // limb_pitch_spinner + { + mLimbPitchSlider->setValue(value); + onYawPitchRollSliderChanged(); + break; + } + case 5: // limb_yaw_spinner + { + mLimbYawSlider->setValue(value); + onYawPitchRollSliderChanged(); + break; + } + case 6: // limb_roll_spinner + { + mLimbRollSlider->setValue(value); + onYawPitchRollSliderChanged(); + break; + } + case 7: // adv_posx_spinner + { + if (changingBodyPosition) + mPosXSlider->setValue(value); - mAdvPosZSlider->setValue(value); - onAdvancedPositionSet(); - return; - } + mAdvPosXSlider->setValue(value); + onAdvancedPositionSet(); + break; + } + case 8: // adv_posy_spinner + { + if (changingBodyPosition) + mPosYSlider->setValue(value); - if (spinner == mScaleXSpnr) - { - mAdvScaleXSlider->setValue(value); - onAdvancedScaleSet(); - return; - } + mAdvPosYSlider->setValue(value); + onAdvancedPositionSet(); + break; + } + case 9: // adv_posz_spinner + { + if (changingBodyPosition) + mPosZSlider->setValue(value); - if (spinner == mScaleYSpnr) - { - mAdvScaleYSlider->setValue(value); - onAdvancedScaleSet(); - return; - } - - if (spinner == mScaleZSpnr) - { - mAdvScaleZSlider->setValue(value); - onAdvancedScaleSet(); - return; - } - - if (spinner == mYawSpnr) - { - mLimbYawSlider->setValue(value); - onYawPitchRollSliderChanged(); - return; - } - - if (spinner == mPitchSpnr) - { - mLimbPitchSlider->setValue(value); - onYawPitchRollSliderChanged(); - return; - } - - if (spinner == mRollSpnr) - { - mLimbRollSlider->setValue(value); - onYawPitchRollSliderChanged(); - return; + mAdvPosZSlider->setValue(value); + onAdvancedPositionSet(); + break; + } + case 10: // adv_scalex_spinner + { + mAdvScaleXSlider->setValue(value); + onAdvancedScaleSet(); + break; + } + case 11: // adv_scaley_spinner + { + mAdvScaleYSlider->setValue(value); + onAdvancedScaleSet(); + break; + } + case 12: // adv_scalez_spinner + { + mAdvScaleZSlider->setValue(value); + onAdvancedScaleSet(); + break; + } } } diff --git a/indra/newview/fsfloaterposer.h b/indra/newview/fsfloaterposer.h index f403154134..bd8e4c09db 100644 --- a/indra/newview/fsfloaterposer.h +++ b/indra/newview/fsfloaterposer.h @@ -253,7 +253,8 @@ class FSFloaterPoser : public LLFloater void onClickLoadRightHandPose(); void onClickLoadHandPose(bool isRightHand); void onClickSetBaseRotZero(); - void onCommitSpinner(LLUICtrl* spinner); + //void onCommitSpinner(LLUICtrl* spinner); + void onCommitSpinner(LLUICtrl* spinner, S32 ID); // UI Refreshments void refreshRotationSlidersAndSpinners(); diff --git a/indra/newview/skins/default/xui/en/floater_fs_poser.xml b/indra/newview/skins/default/xui/en/floater_fs_poser.xml index 1f273104c8..61db38b42a 100644 --- a/indra/newview/skins/default/xui/en/floater_fs_poser.xml +++ b/indra/newview/skins/default/xui/en/floater_fs_poser.xml @@ -380,7 +380,8 @@ width="403"> max_val="1.5" width="47"> + function="Poser.CommitSpinner" + parameter="0"/> max_val="1.5" width="47"> + function="Poser.CommitSpinner" + parameter="1"/> max_val="1.5" width="47"> + function="Poser.CommitSpinner" + parameter="2"/> max_val="2" width="47"> + function="Poser.CommitSpinner" + parameter="3"/> max_val="180" width="57"> + function="Poser.CommitSpinner" + parameter="4"/> max_val="180" width="57"> + function="Poser.CommitSpinner" + parameter="5"/> max_val="180" width="57"> + function="Poser.CommitSpinner" + parameter="6"/> max_val="1.5" width="47"> + function="Poser.CommitSpinner" + parameter="7"/> max_val="1.5" width="47"> + function="Poser.CommitSpinner" + parameter="8"/> max_val="1.5" width="47"> + function="Poser.CommitSpinner" + parameter="9"/>