diff options
author | maxim@mnikolenko <maxim@mnikolenko> | 2014-06-18 13:00:18 +0300 |
---|---|---|
committer | maxim@mnikolenko <maxim@mnikolenko> | 2014-06-18 13:00:18 +0300 |
commit | f924175da0acbb8a8884fff0740d416da9c2489c (patch) | |
tree | ccbda05e653f7374bbe3b349fc3932c0c1303d08 /indra/newview | |
parent | ff325bd7ae90d3205b35c7a8e894714c0fad45ba (diff) |
MAINT-3186 FIXED Disable menu items if group or ad-hoc chat is in multiselection
Diffstat (limited to 'indra/newview')
-rwxr-xr-x | indra/newview/llfloaterimcontainer.cpp | 20 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/menu_conversation.xml | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index ebb44561da..a0df37b309 100755 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -1271,6 +1271,22 @@ bool LLFloaterIMContainer::enableContextMenuItem(const LLSD& userdata) uuid_vec_t uuids; getParticipantUUIDs(uuids); + + //If there is group or ad-hoc chat in multiselection, everything needs to be disabled + if(uuids.size() > 1) + { + const std::set<LLFolderViewItem*> selectedItems = mConversationsRoot->getSelectionList(); + LLConversationItem * conversationItem; + for(std::set<LLFolderViewItem*>::const_iterator it = selectedItems.begin(); it != selectedItems.end(); ++it) + { + conversationItem = static_cast<LLConversationItem *>((*it)->getViewModelItem()); + if((conversationItem->getType() == LLConversationItem::CONV_SESSION_GROUP) || (conversationItem->getType() == LLConversationItem::CONV_SESSION_AD_HOC)) + { + return false; + } + } + } + if ("conversation_log" == item) { return gSavedPerAccountSettings.getS32("KeepConversationLogTranscripts") > 0; @@ -1376,6 +1392,10 @@ bool LLFloaterIMContainer::enableContextMenuItem(const std::string& item, uuid_v { return LLAvatarActions::canCall(); } + else if ("can_open_voice_conversation" == item) + { + return is_single_select && LLAvatarActions::canCall(); + } else if ("can_zoom_in" == item) { return is_single_select && gObjectList.findObject(single_id); diff --git a/indra/newview/skins/default/xui/en/menu_conversation.xml b/indra/newview/skins/default/xui/en/menu_conversation.xml index 31b1d091ee..f5a493c064 100755 --- a/indra/newview/skins/default/xui/en/menu_conversation.xml +++ b/indra/newview/skins/default/xui/en/menu_conversation.xml @@ -17,6 +17,7 @@ layout="topleft" name="open_voice_conversation"> <on_click function="Avatar.DoToSelected" parameter="open_voice_conversation"/> + <on_enable function="Avatar.EnableItem" parameter="can_open_voice_conversation"/> </menu_item_call> <menu_item_call label="Disconnect from voice" |