From b50de181623874ab799fdc31532dffe8f7bc610a Mon Sep 17 00:00:00 2001 From: Mnikolenko Productengine Date: Tue, 25 Jan 2022 19:43:32 +0200 Subject: SL-16627 add auto-adjustment warning for affected settings --- indra/llui/llcombobox.cpp | 18 +++++++++++++++++- indra/llui/llcombobox.h | 5 +++++ indra/newview/llfloaterperformance.cpp | 19 +------------------ indra/newview/llfloaterperformance.h | 2 -- indra/newview/llfloaterpreference.cpp | 4 ++-- indra/newview/llfloaterpreference.h | 2 +- .../newview/llfloaterpreferencesgraphicsadvanced.cpp | 19 +------------------ indra/newview/llfloaterpreferencesgraphicsadvanced.h | 1 - .../xui/en/floater_preferences_graphics_advanced.xml | 6 +++--- .../default/xui/en/panel_performance_preferences.xml | 2 +- .../default/xui/en/panel_preferences_graphics1.xml | 2 +- 11 files changed, 32 insertions(+), 48 deletions(-) (limited to 'indra') diff --git a/indra/llui/llcombobox.cpp b/indra/llui/llcombobox.cpp index bcc653a602..5768686659 100644 --- a/indra/llui/llcombobox.cpp +++ b/indra/llui/llcombobox.cpp @@ -78,6 +78,7 @@ LLComboBox::Params::Params() combo_button("combo_button"), combo_list("combo_list"), combo_editor("combo_editor"), + mouse_down_callback("mouse_down_callback"), drop_down_button("drop_down_button") { addSynonym(items, "combo_item"); @@ -97,7 +98,8 @@ LLComboBox::LLComboBox(const LLComboBox::Params& p) mTextChangedCallback(p.text_changed_callback()), mListPosition(p.list_position), mLastSelectedIndex(-1), - mLabel(p.label) + mLabel(p.label), + mMouseDownSignal(NULL) { // Text label button @@ -153,6 +155,11 @@ LLComboBox::LLComboBox(const LLComboBox::Params& p) createLineEditor(p); + if (p.mouse_down_callback.isProvided()) + { + setMouseDownCallback(initCommitCallback(p.mouse_down_callback)); + } + mTopLostSignalConnection = setTopLostCallback(boost::bind(&LLComboBox::hideList, this)); } @@ -183,6 +190,7 @@ LLComboBox::~LLComboBox() // explicitly disconect this signal, since base class destructor might fire top lost mTopLostSignalConnection.disconnect(); + delete mMouseDownSignal; } @@ -709,6 +717,9 @@ void LLComboBox::hideList() void LLComboBox::onButtonMouseDown() { + if (mMouseDownSignal) + (*mMouseDownSignal)( this, 0 ); + if (!mList->getVisible()) { // this might change selection, so do it first @@ -1183,6 +1194,11 @@ BOOL LLComboBox::selectItemRange( S32 first, S32 last ) return mList->selectItemRange(first, last); } +boost::signals2::connection LLComboBox::setMouseDownCallback( const commit_signal_t::slot_type& cb ) +{ + if (!mMouseDownSignal) mMouseDownSignal = new commit_signal_t(); + return mMouseDownSignal->connect(cb); +} static LLDefaultChildRegistry::Register register_icons_combo_box("icons_combo_box"); diff --git a/indra/llui/llcombobox.h b/indra/llui/llcombobox.h index e17d6cdfb4..49a55c98a3 100644 --- a/indra/llui/llcombobox.h +++ b/indra/llui/llcombobox.h @@ -78,6 +78,8 @@ public: text_entry_callback, text_changed_callback; + Optional mouse_down_callback; + Optional list_position; // components @@ -207,6 +209,8 @@ public: void setTextEntryCallback( commit_callback_t cb ) { mTextEntryCallback = cb; } void setTextChangedCallback( commit_callback_t cb ) { mTextChangedCallback = cb; } + boost::signals2::connection setMouseDownCallback( const commit_signal_t::slot_type& cb ); + /** * Connects callback to signal called when Return key is pressed. */ @@ -244,6 +248,7 @@ private: commit_callback_t mTextChangedCallback; commit_callback_t mSelectionCallback; boost::signals2::connection mTopLostSignalConnection; + commit_signal_t* mMouseDownSignal; commit_signal_t mOnReturnSignal; S32 mLastSelectedIndex; }; diff --git a/indra/newview/llfloaterperformance.cpp b/indra/newview/llfloaterperformance.cpp index 316b9ab1b6..9cb3c4ce66 100644 --- a/indra/newview/llfloaterperformance.cpp +++ b/indra/newview/llfloaterperformance.cpp @@ -80,7 +80,7 @@ LLFloaterPerformance::LLFloaterPerformance(const LLSD& key) { mContextMenu = new LLExceptionsContextMenu(this); - mCommitCallbackRegistrar.add("Pref.MouseDown", boost::bind(&LLFloaterPerformance::onUICtrlMouseDown, this)); + mCommitCallbackRegistrar.add("Pref.AutoAdjustWarning", boost::bind(&LLFloaterPreference::showAutoAdjustWarning)); } LLFloaterPerformance::~LLFloaterPerformance() @@ -540,21 +540,4 @@ void LLFloaterPerformance::onAvatarListRightClick(LLUICtrl* ctrl, S32 x, S32 y) } } -void LLFloaterPerformance::onUICtrlMouseDown() -{ - static LLCachedControl use_auto_adjust(gSavedSettings,"AutoFPS"); - if (use_auto_adjust) - { - LLNotificationsUtil::add("AutoFPSConfirmDisable", LLSD(), LLSD(), - [](const LLSD¬if, const LLSD&resp) - { - S32 opt = LLNotificationsUtil::getSelectedOption(notif, resp); - if (opt == 0) - { - gSavedSettings.setBOOL("AutoFPS", FALSE); - } - }); - } -} - // EOF diff --git a/indra/newview/llfloaterperformance.h b/indra/newview/llfloaterperformance.h index 7a1394c51b..d8288b0728 100644 --- a/indra/newview/llfloaterperformance.h +++ b/indra/newview/llfloaterperformance.h @@ -63,8 +63,6 @@ private: void onClickHideAvatars(); void onClickExceptions(); - void onUICtrlMouseDown(); - void updateMaxComplexity(); void updateComplexityText(); diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index b655a04b14..41ae39152b 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -304,7 +304,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.RememberedUsernames", boost::bind(&LLFloaterPreference::onClickRememberedUsernames, this)); mCommitCallbackRegistrar.add("Pref.SpellChecker", boost::bind(&LLFloaterPreference::onClickSpellChecker, this)); mCommitCallbackRegistrar.add("Pref.Advanced", boost::bind(&LLFloaterPreference::onClickAdvanced, this)); - mCommitCallbackRegistrar.add("Pref.MouseDown", boost::bind(&LLFloaterPreference::onUICtrlMouseDown, this)); + mCommitCallbackRegistrar.add("Pref.AutoAdjustWarning", boost::bind(&LLFloaterPreference::showAutoAdjustWarning)); sSkin = gSavedSettings.getString("SkinCurrent"); @@ -1783,7 +1783,7 @@ void LLFloaterPreference::updateSearchableItems() mSearchDataDirty = true; } -void LLFloaterPreference::onUICtrlMouseDown() +void LLFloaterPreference::showAutoAdjustWarning() { static LLCachedControl use_auto_adjust(gSavedSettings,"AutoFPS"); if (use_auto_adjust) diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 8a68f9f279..3e4c853a08 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -110,7 +110,7 @@ public: void updateClickActionViews(); void updateSearchableItems(); - void onUICtrlMouseDown(); + static void showAutoAdjustWarning(); void onBtnOK(const LLSD& userdata); void onBtnCancel(const LLSD& userdata); diff --git a/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp b/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp index 548a6eb769..85a0fee143 100644 --- a/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp +++ b/indra/newview/llfloaterpreferencesgraphicsadvanced.cpp @@ -49,7 +49,7 @@ LLFloaterPreferenceGraphicsAdvanced::LLFloaterPreferenceGraphicsAdvanced(const L mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxNonImpostors", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateMaxNonImpostors,this)); mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxComplexity", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateMaxComplexity,this)); - mCommitCallbackRegistrar.add("Pref.MouseDown", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onUICtrlMouseDown, this)); + mCommitCallbackRegistrar.add("Pref.AutoAdjustWarning", boost::bind(&LLFloaterPreference::showAutoAdjustWarning)); mCommitCallbackRegistrar.add("Pref.Cancel", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onBtnCancel, this, _2)); mCommitCallbackRegistrar.add("Pref.OK", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onBtnOK, this, _2)); @@ -195,23 +195,6 @@ void LLFloaterPreferenceGraphicsAdvanced::updateSliderText(LLSliderCtrl* ctrl, L } } -void LLFloaterPreferenceGraphicsAdvanced::onUICtrlMouseDown() -{ - static LLCachedControl use_auto_adjust(gSavedSettings,"AutoFPS"); - if (use_auto_adjust) - { - LLNotificationsUtil::add("AutoFPSConfirmDisable", LLSD(), LLSD(), - [](const LLSD¬if, const LLSD&resp) - { - S32 opt = LLNotificationsUtil::getSelectedOption(notif, resp); - if (opt == 0) - { - gSavedSettings.setBOOL("AutoFPS", FALSE); - } - }); - } -} - void LLFloaterPreferenceGraphicsAdvanced::updateMaxNonImpostors() { // Called when the IndirectMaxNonImpostors control changes diff --git a/indra/newview/llfloaterpreferencesgraphicsadvanced.h b/indra/newview/llfloaterpreferencesgraphicsadvanced.h index cf3ed02614..7f26ff8b00 100644 --- a/indra/newview/llfloaterpreferencesgraphicsadvanced.h +++ b/indra/newview/llfloaterpreferencesgraphicsadvanced.h @@ -46,7 +46,6 @@ public: void updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box); void updateMaxNonImpostors(); void updateIndirectMaxNonImpostors(const LLSD& newvalue); - void onUICtrlMouseDown(); void setMaxNonImpostorsText(U32 value, LLTextBox* text_box); void updateMaxComplexity(); void updateComplexityText(); diff --git a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml index 5978ae685a..65b96d3694 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml @@ -41,7 +41,7 @@ top_delta="16" width="330"> + function="Pref.AutoAdjustWarning" /> + function="Pref.AutoAdjustWarning" /> + function="Pref.AutoAdjustWarning" /> + function="Pref.AutoAdjustWarning" /> + function="Pref.AutoAdjustWarning" />