Skip to content
Snippets Groups Projects
Commit d7898414 authored by Vadim Savchuk's avatar Vadim Savchuk
Browse files

merge

--HG--
branch : product-engine
parents 0756770e a94ec45c
No related branches found
No related tags found
No related merge requests found
......@@ -643,6 +643,7 @@ LLContextMenu* LLParticipantList::LLParticipantListMenu::createMenu()
registrar.add("ParticipantList.ModerateVoice", boost::bind(&LLParticipantList::LLParticipantListMenu::moderateVoice, this, _2));
enable_registrar.add("ParticipantList.EnableItem", boost::bind(&LLParticipantList::LLParticipantListMenu::enableContextMenuItem, this, _2));
enable_registrar.add("ParticipantList.EnableItem.Moderate", boost::bind(&LLParticipantList::LLParticipantListMenu::enableModerateContextMenuItem, this, _2));
enable_registrar.add("ParticipantList.CheckItem", boost::bind(&LLParticipantList::LLParticipantListMenu::checkContextMenuItem, this, _2));
// create the context menu from the XUI
......@@ -667,7 +668,7 @@ void LLParticipantList::LLParticipantListMenu::show(LLView* spawning_view, const
if (uuids.size() == 0) return;
const LLUUID speaker_id = mUUIDs.front();
const LLUUID& speaker_id = mUUIDs.front();
BOOL is_muted = isMuted(speaker_id);
if (is_muted)
......@@ -801,28 +802,18 @@ void LLParticipantList::LLParticipantListMenu::moderateVoiceOtherParticipants(co
bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD& userdata)
{
std::string item = userdata.asString();
const LLUUID& participant_id = mUUIDs.front();
// For now non of "can_view_profile" action and menu actions listed below except "can_block"
// can be performed for Avaline callers.
bool is_participant_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(participant_id);
if (!is_participant_avatar && "can_block" != item) return false;
if (item == "can_mute_text" || "can_block" == item || "can_share" == item || "can_im" == item
|| "can_pay" == item)
{
return mUUIDs.front() != gAgentID;
}
else if (item == "can_allow_text_chat")
{
return isGroupModerator();
}
else if ("can_moderate_voice" == item)
{
if (isGroupModerator())
{
LLPointer<LLSpeaker> speakerp = mParent.mSpeakerMgr->findSpeaker(mUUIDs.front());
if (speakerp.notNull())
{
// not in voice participants can not be moderated
return speakerp->isInVoiceChannel();
}
}
return false;
}
else if (item == std::string("can_add"))
{
// We can add friends if:
......@@ -855,6 +846,36 @@ bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD&
return true;
}
/*
Processed menu items with such parameters:
can_allow_text_chat
can_moderate_voice
*/
bool LLParticipantList::LLParticipantListMenu::enableModerateContextMenuItem(const LLSD& userdata)
{
// only group moderators can perform actions related to this "enable callback"
if (!isGroupModerator()) return false;
const LLUUID& participant_id = mUUIDs.front();
LLPointer<LLSpeaker> speakerp = mParent.mSpeakerMgr->findSpeaker(participant_id);
// not in voice participants can not be moderated
bool speaker_in_voice = speakerp.notNull() && speakerp->isInVoiceChannel();
const std::string& item = userdata.asString();
if ("can_moderate_voice" == item)
{
return speaker_in_voice;
}
// For now non of menu actions except "can_moderate_voice" can be performed for Avaline callers.
bool is_participant_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(participant_id);
if (!is_participant_avatar) return false;
return true;
}
bool LLParticipantList::LLParticipantListMenu::checkContextMenuItem(const LLSD& userdata)
{
std::string item = userdata.asString();
......
......@@ -158,6 +158,7 @@ class LLParticipantList
LLParticipantList& mParent;
private:
bool enableContextMenuItem(const LLSD& userdata);
bool enableModerateContextMenuItem(const LLSD& userdata);
bool checkContextMenuItem(const LLSD& userdata);
void sortParticipantList(const LLSD& userdata);
......
......@@ -30,6 +30,9 @@
name="View Profile">
<menu_item_call.on_click
function="Avatar.Profile" />
<menu_item_call.on_enable
function="ParticipantList.EnableItem"
parameter="can_view_profile" />
</menu_item_call>
<menu_item_call
label="Add Friend"
......@@ -153,7 +156,7 @@
function="ParticipantList.ModerateVoice"
parameter="selected" />
<on_enable
function="ParticipantList.EnableItem"
function="ParticipantList.EnableItem.Moderate"
parameter="can_moderate_voice" />
</menu_item_call>
<menu_item_call
......@@ -164,7 +167,7 @@
function="ParticipantList.ModerateVoice"
parameter="others" />
<on_enable
function="ParticipantList.EnableItem"
function="ParticipantList.EnableItem.Moderate"
parameter="can_moderate_voice" />
</menu_item_call>
<menu_item_call
......@@ -175,7 +178,7 @@
function="ParticipantList.ModerateVoice"
parameter="selected" />
<on_enable
function="ParticipantList.EnableItem"
function="ParticipantList.EnableItem.Moderate"
parameter="can_moderate_voice" />
</menu_item_call>
<menu_item_call
......@@ -186,7 +189,7 @@
function="ParticipantList.ModerateVoice"
parameter="others" />
<on_enable
function="ParticipantList.EnableItem"
function="ParticipantList.EnableItem.Moderate"
parameter="can_moderate_voice" />
</menu_item_call>
</context_menu>
......
......@@ -13,10 +13,10 @@
width="333">
<string
name="no_people"
value="No people" />
value="No recent people. Looking for people to hang out with? Try [secondlife:///app/search/people Search] or the [secondlife:///app/worldmap World Map]." />
<string
name="no_one_near"
value="No one near" />
value="No one nearby. Looking for people to hang out with? Try [secondlife:///app/search/people Search] or the [secondlife:///app/worldmap World Map]." />
<string
name="no_friends_online"
value="No friends online" />
......@@ -264,8 +264,8 @@
top="10"
width="293"
wrap="true">
To add friends try [secondlife:///app/search/people global search] or use right-click on a Resident to add them as a friend.
If you're looking for people to hang out with, [secondlife:///app/worldmap try the Map].
Find friends using [secondlife:///app/search/people Search] or right-click on a Resident to add them as a friend.
Looking for people to hang out with? Try the [secondlife:///app/worldmap World Map].
</text>
</panel>
<panel
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment