diff options
author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2023-04-13 07:05:05 +0300 |
---|---|---|
committer | marchcat-pe <alihatskiy@productengine.com> | 2023-04-18 01:36:44 +0300 |
commit | 82fb4a08ec469cc2c44833d2240564e3f9045d03 (patch) | |
tree | 7294ee0d75821911da81d416090f31903a463428 /indra | |
parent | 41d24952ff000af33d5f077e0b97845544cffef4 (diff) |
SL-19591 Prompt user to save current settings as Graphics Preset before enabling AutoFPS
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llfloaterperformance.cpp | 26 | ||||
-rw-r--r-- | indra/newview/llfloaterperformance.h | 1 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 14 |
3 files changed, 40 insertions, 1 deletions
diff --git a/indra/newview/llfloaterperformance.cpp b/indra/newview/llfloaterperformance.cpp index 5eb58b9482..e35fa55564 100644 --- a/indra/newview/llfloaterperformance.cpp +++ b/indra/newview/llfloaterperformance.cpp @@ -39,6 +39,7 @@ #include "llnamelistctrl.h" #include "llnotificationsutil.h" #include "llperfstats.h" +#include "llpresetsmanager.h" #include "llradiogroup.h" #include "llsliderctrl.h" #include "lltextbox.h" @@ -158,6 +159,8 @@ BOOL LLFloaterPerformance::postBuild() mStartAutotuneBtn->setCommitCallback(boost::bind(&LLFloaterPerformance::startAutotune, this)); mStopAutotuneBtn->setCommitCallback(boost::bind(&LLFloaterPerformance::stopAutotune, this)); + gSavedPerAccountSettings.declareBOOL("HadEnabledAutoFPS", FALSE, "User had enabled AutoFPS at least once", LLControlVariable::PERSIST_ALWAYS); + return TRUE; } @@ -188,7 +191,10 @@ void LLFloaterPerformance::showAutoadjustmentsPanel() void LLFloaterPerformance::draw() { - if (mUpdateTimer->hasExpired()) + enableAutotuneWarning(); + + if (mUpdateTimer->hasExpired() && + !LLFloaterReg::instanceVisible("save_pref_preset", PRESETS_GRAPHIC)) // give user a chance to save the graphics settings before updating them { setFPSText(); if (mHUDsPanel->getVisible()) @@ -672,4 +678,22 @@ void LLFloaterPerformance::updateAutotuneCtrls(bool autotune_enabled) getChild<LLTextBox>("wip_desc")->setVisible(autotune_enabled && !auto_tune_locked); getChild<LLTextBox>("display_desc")->setVisible(LLPerfStats::tunables.vsyncEnabled); } + +void LLFloaterPerformance::enableAutotuneWarning() +{ + if (!gSavedPerAccountSettings.getBOOL("HadEnabledAutoFPS") && LLPerfStats::tunables.userAutoTuneEnabled) + { + gSavedPerAccountSettings.setBOOL("HadEnabledAutoFPS", TRUE); + + LLNotificationsUtil::add("EnableAutoFPSWarning", LLSD(), LLSD(), + [](const LLSD& notif, const LLSD& resp) + { + S32 opt = LLNotificationsUtil::getSelectedOption(notif, resp); + if (opt == 0) + { // offer user to save current graphics settings as a preset + LLFloaterReg::showInstance("save_pref_preset", PRESETS_GRAPHIC); + } + }); + } +} // EOF diff --git a/indra/newview/llfloaterperformance.h b/indra/newview/llfloaterperformance.h index 648e5902b6..00f904f6d6 100644 --- a/indra/newview/llfloaterperformance.h +++ b/indra/newview/llfloaterperformance.h @@ -71,6 +71,7 @@ private: void startAutotune(); void stopAutotune(); void updateAutotuneCtrls(bool autotune_enabled); + void enableAutotuneWarning(); void updateMaxRenderTime(); diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 067e5c23c9..f9211600ea 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -11965,4 +11965,18 @@ If you want others to see this object, remove it and re-attach it to an avatar a yestext="OK"/> </notification> + <notification + icon="alertmodal.tga" + name="EnableAutoFPSWarning" + type="alertmodal"> +You are about to enable AutoFPS. All unsaved graphics settings will be lost. + +Would you like to save them first? + <tag>confirm</tag> + <usetemplate + name="okcancelbuttons" + notext="No" + yestext="Yes"/> + </notification> + </notifications> |