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 | |
| parent | 41d24952ff000af33d5f077e0b97845544cffef4 (diff) | |
SL-19591 Prompt user to save current settings as Graphics Preset before enabling AutoFPS
Diffstat (limited to 'indra/newview')
| -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> | 
