summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelgroupgeneral.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanelgroupgeneral.cpp')
-rw-r--r--indra/newview/llpanelgroupgeneral.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index ca429ae2f8..0c331b4cec 100644
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -34,6 +34,7 @@
#include "llsdparam.h"
#include "lluictrlfactory.h"
#include "roles_constants.h"
+#include "llmutelist.h"
// UI elements
#include "llbutton.h"
@@ -76,6 +77,7 @@ LLPanelGroupGeneral::LLPanelGroupGeneral()
mCtrlEnrollmentFee(NULL),
mSpinEnrollmentFee(NULL),
mCtrlReceiveNotices(NULL),
+ mCtrlReceiveGroupChat(NULL), // <exodus/>
mCtrlListGroup(NULL),
mActiveTitleLabel(NULL),
mComboActiveTitle(NULL)
@@ -154,6 +156,18 @@ bool LLPanelGroupGeneral::postBuild()
mCtrlReceiveNotices->set(accept_notices);
mCtrlReceiveNotices->setEnabled(data.mID.notNull());
}
+ // <exodus>
+ mCtrlReceiveGroupChat = getChild<LLCheckBoxCtrl>("receive_chat", recurse);
+ if(mCtrlReceiveGroupChat)
+ {
+ mCtrlReceiveGroupChat->setCommitCallback(onCommitUserOnly, this);
+ mCtrlReceiveGroupChat->setEnabled(data.mID.notNull());
+ if(data.mID.notNull())
+ {
+ mCtrlReceiveGroupChat->set(!LLMuteList::getInstance()->isMuted(LLUUID::null, std::string{"Group:" + data.mID.asString()}));
+ }
+ }
+ // </exodus>
mCtrlListGroup = getChild<LLCheckBoxCtrl>("list_groups_in_profile", recurse);
if (mCtrlListGroup)
@@ -389,6 +403,19 @@ bool LLPanelGroupGeneral::apply(std::string& mesg)
list_in_profile = mCtrlListGroup->get();
gAgent.setUserGroupFlags(mGroupID, receive_notices, list_in_profile);
+ // <exodus>
+ if(mCtrlReceiveGroupChat)
+ {
+ if(mCtrlReceiveGroupChat->get())
+ {
+ LLMuteList::getInstance()->remove(LLMute(LLUUID::null, std::string{"Group:" + mGroupID.asString()}));
+ }
+ else
+ {
+ LLMuteList::getInstance()->add(LLMute(LLUUID::null, std::string{"Group:" + mGroupID.asString()}));
+ }
+ }
+ // </exodus>
resetDirty();
@@ -556,6 +583,16 @@ void LLPanelGroupGeneral::update(LLGroupChange gc)
}
}
+ // <exodus>
+ if (mCtrlReceiveGroupChat)
+ {
+ mCtrlReceiveGroupChat->setVisible(is_member);
+ if (is_member)
+ {
+ mCtrlReceiveGroupChat->setEnabled(mAllowEdit);
+ }
+ }
+ // </exodus>
if (mInsignia) mInsignia->setEnabled(mAllowEdit && can_change_ident);
if (mEditCharter) mEditCharter->setEnabled(mAllowEdit && can_change_ident);
@@ -598,6 +635,7 @@ void LLPanelGroupGeneral::updateChanged()
mCtrlEnrollmentFee,
mSpinEnrollmentFee,
mCtrlReceiveNotices,
+ mCtrlReceiveGroupChat, // <exodus/>
mCtrlListGroup,
mActiveTitleLabel,
mComboActiveTitle
@@ -653,6 +691,12 @@ void LLPanelGroupGeneral::reset()
mInsignia->setImageAssetName(mInsignia->getDefaultImageName());
+ // <exodus>
+ mCtrlReceiveGroupChat->set(false);
+ mCtrlReceiveGroupChat->setEnabled(false);
+ mCtrlReceiveGroupChat->setVisible(true);
+ // </exodus>
+
{
std::string empty_str = "";
mEditCharter->setText(empty_str);
@@ -684,6 +728,7 @@ void LLPanelGroupGeneral::resetDirty()
mCtrlEnrollmentFee,
mSpinEnrollmentFee,
mCtrlReceiveNotices,
+ mCtrlReceiveGroupChat, // <exodus/>
mCtrlListGroup,
mActiveTitleLabel,
mComboActiveTitle
@@ -730,6 +775,18 @@ void LLPanelGroupGeneral::setGroupID(const LLUUID& id)
mCtrlListGroup->setEnabled(data.mID.notNull());
}
+ // <exodus>
+ mCtrlReceiveGroupChat = getChild<LLCheckBoxCtrl>("receive_chat");
+ if (mCtrlReceiveGroupChat)
+ {
+ if(data.mID.notNull())
+ {
+ mCtrlReceiveGroupChat->set(!LLMuteList::getInstance()->isMuted(LLUUID::null, std::string{"Group:" + data.mID.asString()}));
+ }
+ mCtrlReceiveGroupChat->setEnabled(data.mID.notNull());
+ }
+ // </exodus>
+
mCtrlShowInGroupList->setEnabled(data.mID.notNull());
mActiveTitleLabel = getChild<LLTextBox>("active_title_label");