From 615b9f34fb21b40cb3ba9489c00ba8f5338e3a7d Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Sun, 22 Aug 2010 19:38:52 -0700 Subject: Wip - mute group chat --- linden/indra/newview/llpanelgroupgeneral.cpp | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'linden/indra/newview/llpanelgroupgeneral.cpp') diff --git a/linden/indra/newview/llpanelgroupgeneral.cpp b/linden/indra/newview/llpanelgroupgeneral.cpp index 8006981..402929e 100644 --- a/linden/indra/newview/llpanelgroupgeneral.cpp +++ b/linden/indra/newview/llpanelgroupgeneral.cpp @@ -47,6 +47,7 @@ #include "llcheckboxctrl.h" #include "llcombobox.h" #include "lldbstrings.h" +#include "llimview.h" #include "lllineeditor.h" #include "llnamebox.h" #include "llnamelistctrl.h" @@ -89,6 +90,7 @@ LLPanelGroupGeneral::LLPanelGroupGeneral(const std::string& name, mCtrlEnrollmentFee(NULL), mSpinEnrollmentFee(NULL), mCtrlReceiveNotices(NULL), + mCtrlReceiveChat(NULL), mCtrlListGroup(NULL), mActiveTitleLabel(NULL), mComboActiveTitle(NULL) @@ -217,6 +219,15 @@ BOOL LLPanelGroupGeneral::postBuild() mCtrlReceiveNotices->set(accept_notices); mCtrlReceiveNotices->setEnabled(data.mID.notNull()); } + + mCtrlReceiveChat = getChild("receive_chat", recurse); + if (mCtrlReceiveChat) + { + mCtrlReceiveChat->setCommitCallback(onCommitUserOnly); + mCtrlReceiveChat->setCallbackUserData(this); + mCtrlReceiveChat->set(!gIMMgr->getIgnoreGroup(mGroupID)); + mCtrlReceiveChat->setEnabled(mGroupID.notNull()); + } mCtrlListGroup = getChild("list_groups_in_profile", recurse); if (mCtrlListGroup) @@ -534,6 +545,7 @@ bool LLPanelGroupGeneral::apply(std::string& mesg) } BOOL receive_notices = false; + BOOL receive_chat = false; BOOL list_in_profile = false; if (mCtrlReceiveNotices) receive_notices = mCtrlReceiveNotices->get(); @@ -542,6 +554,15 @@ bool LLPanelGroupGeneral::apply(std::string& mesg) gAgent.setUserGroupFlags(mGroupID, receive_notices, list_in_profile); + if (mCtrlReceiveChat) + { + receive_chat = mCtrlReceiveChat->get(); + } + + gIMMgr->updateIgnoreGroup(mGroupID, receive_chat); + // Save here too in case we crash somewhere down the road -- MC + gIMMgr->saveIgnoreGroup(); + mChanged = FALSE; return true; @@ -758,6 +779,13 @@ void LLPanelGroupGeneral::update(LLGroupChange gc) mCtrlReceiveNotices->resetDirty(); } + if (mCtrlReceiveChat) + { + mCtrlReceiveChat->setVisible(is_member); + mCtrlReceiveChat->setEnabled(TRUE); + mCtrlReceiveChat->resetDirty(); + } + if (mInsignia) mInsignia->setEnabled(mAllowEdit && can_change_ident); if (mEditCharter) mEditCharter->setEnabled(mAllowEdit && can_change_ident); @@ -902,6 +930,7 @@ void LLPanelGroupGeneral::updateChanged() mCtrlEnrollmentFee, mSpinEnrollmentFee, mCtrlReceiveNotices, + mCtrlReceiveChat, mCtrlListGroup, mActiveTitleLabel, mComboActiveTitle -- cgit v1.1