From a1dd97507c988da9338eea44a0960a2854b902ef Mon Sep 17 00:00:00 2001 From: Rick Pasetto Date: Mon, 23 Nov 2009 10:08:35 -0800 Subject: 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. --- indra/newview/llfloaterpreference.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'indra/newview/llfloaterpreference.h') 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 control_values_map_t; control_values_map_t mSavedValues; -- cgit v1.2.3