diff options
author | Rick Pasetto <rick@lindenlab.com> | 2009-11-23 10:08:35 -0800 |
---|---|---|
committer | Rick Pasetto <rick@lindenlab.com> | 2009-11-23 10:08:35 -0800 |
commit | a1dd97507c988da9338eea44a0960a2854b902ef (patch) | |
tree | f7cbbfe1dd1d9627ec7e3948c0053372e23d4307 /indra/newview/llfloaterpreference.h | |
parent | 1d9d099baae1b502f4fae02238330c06bf49adb2 (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.h | 9 |
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; |