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" />