From 9627eac5c07c9e1f2b3be34f942af445414c14c5 Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Wed, 9 Sep 2009 05:45:37 -0700 Subject: New chat channel preference should change only on apply --- linden/indra/newview/llprefschat.cpp | 31 ++++++++++------------ .../default/xui/en-us/panel_preferences_chat.xml | 2 +- 2 files changed, 15 insertions(+), 18 deletions(-) (limited to 'linden') diff --git a/linden/indra/newview/llprefschat.cpp b/linden/indra/newview/llprefschat.cpp index 82ae07c..f3b7278 100644 --- a/linden/indra/newview/llprefschat.cpp +++ b/linden/indra/newview/llprefschat.cpp @@ -47,13 +47,10 @@ class LLPrefsChatImpl : public LLPanel public: LLPrefsChatImpl(); /*virtual*/ ~LLPrefsChatImpl(){}; - /*virtual*/ BOOL postBuild(); void apply(); void cancel(); - static void onCheckToggleChannel(LLUICtrl* ctrl, void* user_data); - protected: S32 mChatSize; F32 mChatPersist; @@ -74,6 +71,7 @@ protected: BOOL mPlayTypingAnim; BOOL mChatBubbles; BOOL mScriptErrorAsChat; + BOOL mChatChannel; F32 mConsoleOpacity; F32 mBubbleOpacity; }; @@ -105,6 +103,7 @@ LLPrefsChatImpl::LLPrefsChatImpl() childSetValue("chat_full_width_check", gSavedSettings.getBOOL("ChatFullWidth")); childSetValue("close_chat_on_return_check", gSavedSettings.getBOOL("CloseChatOnReturn")); childSetValue("play_typing_animation", gSavedSettings.getBOOL("PlayTypingAnim")); + childSetValue("toggle_channel_control", gSavedSettings.getBOOL("ChatChannelSelect")); childSetValue("console_opacity", gSavedSettings.getF32("ConsoleBackgroundOpacity")); childSetValue("bubble_chat_opacity", gSavedSettings.getF32("ChatBubbleOpacity")); @@ -128,17 +127,11 @@ LLPrefsChatImpl::LLPrefsChatImpl() mChatFullWidth = gSavedSettings.getBOOL("ChatFullWidth"); mCloseChatOnReturn = gSavedSettings.getBOOL("CloseChatOnReturn"); mPlayTypingAnim = gSavedSettings.getBOOL("PlayTypingAnim"); + mChatChannel = gSavedSettings.getBOOL("ChatChannelSelect"); mConsoleOpacity = gSavedSettings.getF32("ConsoleBackgroundOpacity"); mBubbleOpacity = gSavedSettings.getF32("ChatBubbleOpacity"); } -BOOL LLPrefsChatImpl::postBuild() -{ - childSetCommitCallback("toggle_channel_control",onCheckToggleChannel, this); - - return TRUE; -} - void LLPrefsChatImpl::cancel() { gSavedSettings.setS32("ChatFontSize", mChatSize); @@ -160,6 +153,7 @@ void LLPrefsChatImpl::cancel() gSavedSettings.setBOOL("ChatFullWidth", mChatFullWidth); gSavedSettings.setBOOL("CloseChatOnReturn", mCloseChatOnReturn); gSavedSettings.setBOOL("PlayTypingAnim", mPlayTypingAnim); + gSavedSettings.setBOOL("ChatChannelSelect", mChatChannel); gSavedSettings.setF32("ConsoleBackgroundOpacity", mConsoleOpacity); gSavedSettings.setF32("ChatBubbleOpacity", mBubbleOpacity); } @@ -192,18 +186,21 @@ void LLPrefsChatImpl::apply() gSavedSettings.setF32("ConsoleBackgroundOpacity", childGetValue("console_opacity").asReal()); gSavedSettings.setF32("ChatBubbleOpacity", childGetValue("bubble_chat_opacity").asReal()); -} -// static -void LLPrefsChatImpl::onCheckToggleChannel(LLUICtrl* ctrl, void* user_data) -{ - if (gChatBar) + BOOL chan_check = childGetValue("toggle_channel_control"); + gSavedSettings.setBOOL("ChatChannelSelect", chan_check); + if (mChatChannel != chan_check) { - gChatBar->toggleChannelControl(); - LLFloaterChat::toggleHistoryChannelControl(); + if (gChatBar) + { + gChatBar->toggleChannelControl(); + LLFloaterChat::toggleHistoryChannelControl(); + } + mChatChannel = chan_check; } } + //--------------------------------------------------------------------------- LLPrefsChat::LLPrefsChat() diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml index 0704666..b0384cf 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml @@ -145,7 +145,7 @@ label="Play typing animation when chatting" left="148" mouse_opaque="true" name="play_typing_animation" radio_style="false" width="237" />