MAINT-3186 FIXED Disable menu items if group or ad-hoc chat is in multiselection

meow-7.2.2
maxim@mnikolenko 2014-06-18 13:00:18 +03:00
parent ff325bd7ae
commit f924175da0
2 changed files with 21 additions and 0 deletions

View File

@ -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;
@ -1375,6 +1391,10 @@ bool LLFloaterIMContainer::enableContextMenuItem(const std::string& item, uuid_v
else if ("can_call" == item)
{
return LLAvatarActions::canCall();
}
else if ("can_open_voice_conversation" == item)
{
return is_single_select && LLAvatarActions::canCall();
}
else if ("can_zoom_in" == item)
{

View File

@ -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"