diff options
Diffstat (limited to 'indra/newview/llgroupactions.cpp')
-rw-r--r-- | indra/newview/llgroupactions.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp index c42b397252..97fa551441 100644 --- a/indra/newview/llgroupactions.cpp +++ b/indra/newview/llgroupactions.cpp @@ -40,10 +40,12 @@ #include "llsidetray.h" #include "llstatusbar.h" // can_afford_transaction() #include "llimfloater.h" +#include "groupchatlistener.h" // // Globals // +static GroupChatListener sGroupChatListener; class LLGroupHandler : public LLCommandHandler { @@ -53,6 +55,12 @@ public: bool handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web) { + if (!LLUI::sSettingGroups["config"]->getBOOL("EnableGroupInfo")) + { + LLNotificationsUtil::add("NoGroupInfo", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit")); + return true; + } + if (tokens.size() < 1) { return false; @@ -235,7 +243,7 @@ static bool isGroupUIVisible() { static LLPanel* panel = 0; if(!panel) - panel = LLSideTray::getInstance()->findChild<LLPanel>("panel_group_info_sidetray"); + panel = LLSideTray::getInstance()->getPanel("panel_group_info_sidetray"); if(!panel) return false; return panel->isInVisibleChain(); @@ -314,10 +322,9 @@ void LLGroupActions::closeGroup(const LLUUID& group_id) // static -void LLGroupActions::startIM(const LLUUID& group_id) +LLUUID LLGroupActions::startIM(const LLUUID& group_id) { - if (group_id.isNull()) - return; + if (group_id.isNull()) return LLUUID::null; LLGroupData group_data; if (gAgent.getGroupData(group_id, group_data)) @@ -331,12 +338,14 @@ void LLGroupActions::startIM(const LLUUID& group_id) LLIMFloater::show(session_id); } make_ui_sound("UISndStartIM"); + return session_id; } else { // this should never happen, as starting a group IM session // relies on you belonging to the group and hence having the group data make_ui_sound("UISndInvalidOp"); + return LLUUID::null; } } |