summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterpreference.h
diff options
context:
space:
mode:
authorRick Pasetto <rick@lindenlab.com>2009-11-23 10:08:35 -0800
committerRick Pasetto <rick@lindenlab.com>2009-11-23 10:08:35 -0800
commita1dd97507c988da9338eea44a0960a2854b902ef (patch)
treef7cbbfe1dd1d9627ec7e3948c0053372e23d4307 /indra/newview/llfloaterpreference.h
parent1d9d099baae1b502f4fae02238330c06bf49adb2 (diff)
DEV-42967: Fix prefs panel to not clobber changes to prefs made by other UI
The prefs floater was unilaterally reverting any changes made by other UI. This fixes that by making squirreling away the current settings an explicit operation, and cancel now happens explicitly on close(), but only if a flag is not set (as is what happens when you hit OK). Reviewed by James.
Diffstat (limited to 'indra/newview/llfloaterpreference.h')
-rw-r--r--indra/newview/llfloaterpreference.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index 41c8bb7124..a30422564a 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -97,6 +97,10 @@ protected:
// callback for when client turns on shaders
void onVertexShaderEnable();
+ // This function squirrels away the current values of the controls so that
+ // cancel() can restore them.
+ void saveSettings();
+
public:
@@ -145,6 +149,7 @@ private:
static std::string sSkin;
bool mGotPersonalInfo;
bool mOriginalIMViaEmail;
+ bool mCancelOnClose;
bool mOriginalHideOnlineStatus;
std::string mDirectoryVisibility;
@@ -161,6 +166,10 @@ public:
virtual void cancel();
void setControlFalse(const LLSD& user_data);
+ // This function squirrels away the current values of the controls so that
+ // cancel() can restore them.
+ virtual void saveSettings();
+
private:
typedef std::map<LLControlVariable*, LLSD> control_values_map_t;
control_values_map_t mSavedValues;