summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelpeople.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanelpeople.cpp')
-rw-r--r--[-rwxr-xr-x]indra/newview/llpanelpeople.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index 58765d0ad8..43fbc3b568 100755..100644
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -528,8 +528,10 @@ BOOL LLPanelPeople::postBuild()
mAllFriendList = friends_tab->getChild<LLAvatarList>("avatars_all");
mOnlineFriendList->setNoItemsCommentText(getString("no_friends_online"));
mOnlineFriendList->setShowIcons("FriendsListShowIcons");
+ mOnlineFriendList->showPermissions("FriendsListShowPermissions");
mAllFriendList->setNoItemsCommentText(getString("no_friends"));
mAllFriendList->setShowIcons("FriendsListShowIcons");
+ mAllFriendList->showPermissions("FriendsListShowPermissions");
LLPanel* nearby_tab = getChild<LLPanel>(NEARBY_TAB_NAME);
nearby_tab->setVisibleCallback(boost::bind(&Updater::setActive, mNearbyListUpdater, _2));
@@ -782,12 +784,6 @@ void LLPanelPeople::buttonSetAction(const std::string& btn_name, const commit_si
button->setClickedCallback(cb);
}
-bool LLPanelPeople::isFriendOnline(const LLUUID& id)
-{
- uuid_vec_t ids = mOnlineFriendList->getIDs();
- return std::find(ids.begin(), ids.end(), id) != ids.end();
-}
-
void LLPanelPeople::updateButtons()
{
std::string cur_tab = getActiveTabName();
@@ -849,11 +845,11 @@ void LLPanelPeople::updateButtons()
bool enable_calls = LLVoiceClient::getInstance()->isVoiceWorking() && LLVoiceClient::getInstance()->voiceEnabled();
- buttonSetEnabled("teleport_btn", friends_tab_active && item_selected && isFriendOnline(selected_uuids.front()));
- buttonSetEnabled("view_profile_btn", item_selected);
- buttonSetEnabled("im_btn", multiple_selected); // allow starting the friends conference for multiple selection
- buttonSetEnabled("call_btn", multiple_selected && enable_calls);
- buttonSetEnabled("share_btn", item_selected); // not implemented yet
+ buttonSetEnabled("view_profile_btn",item_selected);
+ buttonSetEnabled("share_btn", item_selected);
+ buttonSetEnabled("im_btn", multiple_selected); // allow starting the friends conference for multiple selection
+ buttonSetEnabled("call_btn", multiple_selected && enable_calls);
+ buttonSetEnabled("teleport_btn", multiple_selected && LLAvatarActions::canOfferTeleport(selected_uuids));
bool none_group_selected = item_selected && selected_id.isNull();
buttonSetEnabled("group_info_btn", !none_group_selected);
@@ -1217,6 +1213,14 @@ void LLPanelPeople::onFriendsViewSortMenuItemClicked(const LLSD& userdata)
mAllFriendList->toggleIcons();
mOnlineFriendList->toggleIcons();
}
+ else if (chosen_item == "view_permissions")
+ {
+ bool show_permissions = !gSavedSettings.getBOOL("FriendsListShowPermissions");
+ gSavedSettings.setBOOL("FriendsListShowPermissions", show_permissions);
+
+ mAllFriendList->showPermissions(show_permissions);
+ mOnlineFriendList->showPermissions(show_permissions);
+ }
}
void LLPanelPeople::onGroupsViewSortMenuItemClicked(const LLSD& userdata)
@@ -1334,7 +1338,9 @@ void LLPanelPeople::onGroupCallButtonClicked()
void LLPanelPeople::onTeleportButtonClicked()
{
- LLAvatarActions::offerTeleport(getCurrentItemID());
+ uuid_vec_t selected_uuids;
+ getCurrentItemIDs(selected_uuids);
+ LLAvatarActions::offerTeleport(selected_uuids);
}
void LLPanelPeople::onShareButtonClicked()