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/newview/llfloaterperformance.cpp | |
parent | 41d24952ff000af33d5f077e0b97845544cffef4 (diff) |
SL-19591 Prompt user to save current settings as Graphics Preset before enabling AutoFPS
Diffstat (limited to 'indra/newview/llfloaterperformance.cpp')
-rw-r--r-- | indra/newview/llfloaterperformance.cpp | 26 |
1 files changed, 25 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 |