From b4d35c8d24d1095cdb67864b6576ef280b76c646 Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Wed, 9 Sep 2009 02:31:31 -0700 Subject: Created my own version of Emerald's chat channel tool --- linden/indra/newview/llprefschat.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'linden/indra/newview/llprefschat.cpp') diff --git a/linden/indra/newview/llprefschat.cpp b/linden/indra/newview/llprefschat.cpp index 4453751..82ae07c 100644 --- a/linden/indra/newview/llprefschat.cpp +++ b/linden/indra/newview/llprefschat.cpp @@ -32,6 +32,8 @@ #include "llviewerprecompiledheaders.h" +#include "llchatbar.h" +#include "llfloaterchat.h" #include "llprefschat.h" #include "lltexteditor.h" #include "llviewercontrol.h" @@ -45,10 +47,13 @@ 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; @@ -73,7 +78,6 @@ protected: F32 mBubbleOpacity; }; - LLPrefsChatImpl::LLPrefsChatImpl() : LLPanel(std::string("Chat Panel")) { @@ -128,6 +132,13 @@ LLPrefsChatImpl::LLPrefsChatImpl() mBubbleOpacity = gSavedSettings.getF32("ChatBubbleOpacity"); } +BOOL LLPrefsChatImpl::postBuild() +{ + childSetCommitCallback("toggle_channel_control",onCheckToggleChannel, this); + + return TRUE; +} + void LLPrefsChatImpl::cancel() { gSavedSettings.setS32("ChatFontSize", mChatSize); @@ -183,6 +194,16 @@ void LLPrefsChatImpl::apply() gSavedSettings.setF32("ChatBubbleOpacity", childGetValue("bubble_chat_opacity").asReal()); } +// static +void LLPrefsChatImpl::onCheckToggleChannel(LLUICtrl* ctrl, void* user_data) +{ + if (gChatBar) + { + gChatBar->toggleChannelControl(); + LLFloaterChat::toggleHistoryChannelControl(); + } +} + //--------------------------------------------------------------------------- LLPrefsChat::LLPrefsChat() -- cgit v1.1 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 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) (limited to 'linden/indra/newview/llprefschat.cpp') 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() -- cgit v1.1