summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2023-04-13 07:05:05 +0300
committermarchcat-pe <alihatskiy@productengine.com>2023-04-18 01:36:44 +0300
commit82fb4a08ec469cc2c44833d2240564e3f9045d03 (patch)
tree7294ee0d75821911da81d416090f31903a463428 /indra
parent41d24952ff000af33d5f077e0b97845544cffef4 (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.cpp26
-rw-r--r--indra/newview/llfloaterperformance.h1
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml14
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>