FIRE-1134 / FIRE-17195: Add missing friend permissions to contact list / friend list because it's in Alchemy and Singularity as well

master
Ansariel 2015-10-31 19:50:30 +01:00
parent 921e2c692f
commit 7387996a32
13 changed files with 121 additions and 3 deletions

View File

@ -698,6 +698,12 @@ void FSFloaterContacts::addFriend(const LLUUID& agent_id)
edit_my_object_column["type"] = "checkbox";
edit_my_object_column["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS);
LLSD& online_their_column = element["columns"][LIST_ONLINE_THEIRS];
online_their_column["column"] = "icon_visible_online_theirs";
online_their_column["type"] = "checkbox";
online_their_column["enabled"] = "";
online_their_column["value"] = relationInfo->isRightGrantedFrom(LLRelationship::GRANT_ONLINE_STATUS);
LLSD& visible_their_map_column = element["columns"][LIST_VISIBLE_MAP_THEIRS];
visible_their_map_column["column"] = "icon_visible_map_theirs";
visible_their_map_column["type"] = "checkbox";
@ -778,6 +784,7 @@ void FSFloaterContacts::updateFriendItem(const LLUUID& agent_id, const LLRelatio
itemp->getColumn(LIST_VISIBLE_ONLINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS));
itemp->getColumn(LIST_VISIBLE_MAP)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION));
itemp->getColumn(LIST_EDIT_MINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS));
itemp->getColumn(LIST_ONLINE_THEIRS)->setValue(info->isRightGrantedFrom(LLRelationship::GRANT_ONLINE_STATUS));
itemp->getColumn(LIST_VISIBLE_MAP_THEIRS)->setValue(info->isRightGrantedFrom(LLRelationship::GRANT_MAP_LOCATION));
itemp->getColumn(LIST_EDIT_THEIRS)->setValue(info->isRightGrantedFrom(LLRelationship::GRANT_MODIFY_OBJECTS));
S32 change_generation = info->getChangeSerialNum();
@ -1201,6 +1208,7 @@ void FSFloaterContacts::onColumnDisplayModeChanged(const std::string& settings_n
else if (p.name.getValue() == "icon_visible_online" ||
p.name.getValue() == "icon_visible_map" ||
p.name.getValue() == "icon_edit_mine" ||
p.name.getValue() == "icon_visible_online_theirs" ||
p.name.getValue() == "icon_visible_map_theirs" ||
p.name.getValue() == "icon_edit_theirs")
{

View File

@ -92,6 +92,7 @@ private:
LIST_VISIBLE_ONLINE,
LIST_VISIBLE_MAP,
LIST_EDIT_MINE,
LIST_ONLINE_THEIRS,
LIST_VISIBLE_MAP_THEIRS,
LIST_EDIT_THEIRS,
LIST_FRIEND_UPDATE_GEN

View File

@ -84,6 +84,10 @@ LLAvatarListItem::LLAvatarListItem(bool not_from_ui_factory/* = true*/)
mBtnPermissionMap(NULL),
mBtnPermissionEditMine(NULL),
mIconPermissionEditTheirs(NULL),
// <FS:Ansariel> Extended Friend Permissions
mIconPermissionMapTheirs(NULL),
mIconPermissionOnlineTheirs(NULL),
// </FS:Ansariel>
mSpeakingIndicator(NULL),
mInfoBtn(NULL),
mProfileBtn(NULL),
@ -165,6 +169,10 @@ BOOL LLAvatarListItem::postBuild()
mBtnPermissionMap = getChild<LLButton>("permission_map_btn");
mBtnPermissionEditMine = getChild<LLButton>("permission_edit_mine_btn");
mIconPermissionEditTheirs = getChild<LLIconCtrl>("permission_edit_theirs_icon");
// <FS:Ansariel> Extended Friend Permissions
mIconPermissionMapTheirs = getChild<LLIconCtrl>("permission_map_theirs_icon");
mIconPermissionOnlineTheirs = getChild<LLIconCtrl>("permission_online_theirs_icon");
// </FS:Ansariel>
mBtnPermissionOnline->setClickedCallback(boost::bind(&LLAvatarListItem::onPermissionOnlineClick, this));
mBtnPermissionMap->setClickedCallback(boost::bind(&LLAvatarListItem::onPermissionMapClick, this));
@ -177,6 +185,10 @@ BOOL LLAvatarListItem::postBuild()
mBtnPermissionEditMine->setVisible(false);
mBtnPermissionEditMine->setIsChrome(TRUE);
mIconPermissionEditTheirs->setVisible(false);
// <FS:Ansariel> Extended Friend Permissions
mIconPermissionMapTheirs->setVisible(false);
mIconPermissionOnlineTheirs->setVisible(false);
// </FS:Ansariel>
// radar
@ -946,6 +958,11 @@ void LLAvatarListItem::initChildrenWidths(LLAvatarListItem* avatar_item)
//S32 permission_edit_theirs_width = avatar_item->mIconPermissionEditMine->getRect().mLeft - avatar_item->mIconPermissionEditTheirs->getRect().mLeft;
S32 permission_edit_theirs_width = 18;
// <FS:Ansariel> Extended Friend Permissions
S32 permission_online_theirs_width = 18;
S32 permission_map_theirs_width = 18;
// </FS:Ansariel>
// last interaction time textbox width + padding
//S32 last_interaction_time_width = avatar_item->mIconPermissionEditTheirs->getRect().mLeft - avatar_item->mLastInteractionTime->getRect().mLeft;
S32 last_interaction_time_width = 37;
@ -961,6 +978,10 @@ void LLAvatarListItem::initChildrenWidths(LLAvatarListItem* avatar_item)
sChildrenWidths[--index] = icon_width;
sChildrenWidths[--index] = 0; // for avatar name we don't need its width, it will be calculated as "left available space"
sChildrenWidths[--index] = last_interaction_time_width;
// <FS:Ansariel> Extended Friend Permissions
sChildrenWidths[--index] = permission_online_theirs_width;
sChildrenWidths[--index] = permission_map_theirs_width;
// </FS:Ansariel>
sChildrenWidths[--index] = permission_edit_theirs_width;
sChildrenWidths[--index] = permission_edit_mine_width;
sChildrenWidths[--index] = permission_map_width;
@ -1094,11 +1115,25 @@ bool LLAvatarListItem::showPermissions(bool visible)
mIconPermissionEditTheirs->setColor(LLUIColorTable::instance().getColor("White_10"));
else
mIconPermissionEditTheirs->setColor(LLUIColorTable::instance().getColor("White"));
// <FS:Ansariel> Extended Friend Permissions
if (!relation->isRightGrantedFrom(LLRelationship::GRANT_MAP_LOCATION))
mIconPermissionMapTheirs->setColor(LLUIColorTable::instance().getColor("White_10"));
else
mIconPermissionMapTheirs->setColor(LLUIColorTable::instance().getColor("White"));
if (!relation->isRightGrantedFrom(LLRelationship::GRANT_ONLINE_STATUS))
mIconPermissionOnlineTheirs->setColor(LLUIColorTable::instance().getColor("White_10"));
else
mIconPermissionOnlineTheirs->setColor(LLUIColorTable::instance().getColor("White"));
// </FS:Ansariel>
mBtnPermissionOnline->setVisible(true);
mBtnPermissionMap->setVisible(true);
mBtnPermissionEditMine->setVisible(true);
mIconPermissionEditTheirs->setVisible(true);
// <FS:Ansariel> Extended Friend Permissions
mIconPermissionMapTheirs->setVisible(true);
mIconPermissionOnlineTheirs->setVisible(true);
// </FS:Ansariel>
}
else
@ -1107,6 +1142,10 @@ bool LLAvatarListItem::showPermissions(bool visible)
mBtnPermissionMap->setVisible(false);
mBtnPermissionEditMine->setVisible(false);
mIconPermissionEditTheirs->setVisible(false);
// <FS:Ansariel> Extended Friend Permissions
mIconPermissionMapTheirs->setVisible(false);
mIconPermissionOnlineTheirs->setVisible(false);
// </FS:Ansariel>
}
updateChildren();
@ -1243,6 +1282,14 @@ LLView* LLAvatarListItem::getItemChildView(EAvatarListItemChildIndex child_view_
case ALIC_PERMISSION_EDIT_THEIRS:
child_view = mIconPermissionEditTheirs;
break;
// <FS:Ansariel> Extended Friend Permissions
case ALIC_PERMISSION_MAP_THEIRS:
child_view = mIconPermissionMapTheirs;
break;
case ALIC_PERMISSION_ONLINE_THEIRS:
child_view = mIconPermissionOnlineTheirs;
break;
// </FS:Ansariel>
case ALIC_INFO_BUTTON:
child_view = mInfoBtn;
break;

View File

@ -185,6 +185,12 @@ protected:
LLButton* mBtnPermissionEditMine;
/// Indicator for permission to edit their objects.
LLIconCtrl* mIconPermissionEditTheirs;
// <FS:Ansariel> Extended Friend Permissions
/// Indicator for permission to show their position on the map.
LLIconCtrl* mIconPermissionMapTheirs;
/// Indicator for permission to see their online status.
LLIconCtrl* mIconPermissionOnlineTheirs;
// </FS:Ansariel>
void confirmModifyRights(bool grant, S32 rights);
void rightsConfirmationCallback(const LLSD& notification,
const LLSD& response, S32 rights);
@ -231,6 +237,10 @@ private:
ALIC_PERMISSION_MAP,
ALIC_PERMISSION_EDIT_MINE,
ALIC_PERMISSION_EDIT_THEIRS,
// <FS:Ansariel> Extended Friend Permissions
ALIC_PERMISSION_MAP_THEIRS,
ALIC_PERMISSION_ONLINE_THEIRS,
// </FS:Ansariel>
ALIC_INTERACTION_TIME,
ALIC_NAME,
ALIC_ICON,

View File

@ -74,6 +74,11 @@
name="icon_edit_mine"
tool_tip="Friend can edit, delete or take objects"
width="16" />
<fs_scroll_list.column
image="Permission_Visible_Online_h"
name="icon_visible_online_theirs"
tool_tip="You can see this friend&apos;s online status"
width="16" />
<fs_scroll_list.column
image="Permission_Visible_Map_h"
name="icon_visible_map_theirs"

View File

@ -990,6 +990,8 @@ with the same filename but different name
<texture name="ff_edit_theirs_button" file_name="legacy/ff_edit_theirs_button.tga" preload="false" />
<texture name="icon_avatar_online" file_name="legacy/icon_avatar_online.tga" preload="false" />
<texture name="slim_icon_16_viewer" file_name="slim_icon_16_viewer.tga" preload="false" />
<texture name="ff_visible_online_button_theirs" file_name="legacy/ff_visible_online_button_theirs.tga" preload="false" />
<texture name="ff_visible_online_theirs" file_name="legacy/ff_visible_online_theirs.tga" preload="false" />
<texture name="Console_Background" file_name="Console_Background.png"/>
<texture name="Muted_Chat" file_name="icons/Muted_Chat.png" preload="false" />

View File

@ -23,7 +23,9 @@
</string>
<text name="avatar_name" value="(laden)"/>
<icon name="payment_info" tool_tip="Zahlungsinfo vorhanden"/>
<icon name="permission_edit_theirs_icon" tool_tip="Sie können die Objekte dieses Freunds bearbeiten"/>
<icon name="permission_online_theirs_icon" tool_tip="Sie können sehen, wenn dieser Freund online ist"/>
<icon name="permission_map_theirs_icon" tool_tip="Sie können die Position dieses Freundes auf der Karte sehen"/>
<icon name="permission_edit_theirs_icon" tool_tip="Sie können die Objekte dieses Freundes bearbeiten"/>
<icon name="permission_edit_mine_btn" tool_tip="Dieser Freund kann Ihre Objekte bearbeiten, löschen und an sich nehmen"/>
<icon name="permission_map_btn" tool_tip="Dieser Freund kann Sie auf der Karte finden"/>
<icon name="permission_online_btn" tool_tip="Dieser Freund kann sehen, wenn Sie online sind"/>

View File

@ -8,8 +8,9 @@
<fs_scroll_list.column name="icon_visible_online" tool_tip="Dieser Freund kann sehen ob sie online sind."/>
<fs_scroll_list.column name="icon_visible_map" tool_tip="Dieser Freund kann ihre Position auf der Karte sehen."/>
<fs_scroll_list.column name="icon_edit_mine" tool_tip="Dieser Freund kann deine Objekte editieren, löschen oder nehmen."/>
<fs_scroll_list.column name="icon_visible_map_theirs" tool_tip="Du kannst die Position dieses Freundes auf der Karte sehen."/>
<fs_scroll_list.column name="icon_edit_theirs" tool_tip="Du kannst Objekte von diesem Freund editieren."/>
<fs_scroll_list.column name="icon_visible_online_theirs" tool_tip="Sie können sehen, wenn dieser Freund online ist."/>
<fs_scroll_list.column name="icon_visible_map_theirs" tool_tip="Sie können die Position dieses Freundes auf der Karte sehen."/>
<fs_scroll_list.column name="icon_edit_theirs" tool_tip="Sie können Objekte dieses Freundes editieren."/>
</fs_scroll_list>
<button
label="IM/Anruf"

View File

@ -123,6 +123,28 @@
text_color="LtGray_50"
value="0s"
width="35" />
<icon
height="16"
follows="right"
image_name="Permission_Visible_Online"
layout="topleft"
left_pad="3"
right="-167"
name="permission_online_theirs_icon"
tool_tip="You can see this friend&apos;s online status"
top="4"
width="16" />
<icon
height="16"
follows="right"
image_name="Permission_Visible_Map"
layout="topleft"
left_pad="3"
right="-148"
name="permission_map_theirs_icon"
tool_tip="You can locate this friend on the map"
top="4"
width="16" />
<icon
height="16"
follows="right"

View File

@ -74,6 +74,11 @@
image="Permission_Edit_Objects_Mine_h"
tool_tip="Friend can edit, delete or take objects"
width="16" />
<fs_scroll_list.column
name="icon_visible_online_theirs"
image="Permission_Visible_Online_h"
tool_tip="You can see this friend&apos;s online status"
width="16" />
<fs_scroll_list.column
name="icon_visible_map_theirs"
image="Permission_Visible_Map_h"

View File

@ -74,6 +74,11 @@
name="icon_edit_mine"
tool_tip="Friend can edit, delete or take objects"
width="20" />
<fs_scroll_list.column
image="legacy/ff_visible_online_button_theirs.tga"
name="icon_visible_online_theirs"
tool_tip="You can see this friend&apos;s online status"
width="20" />
<fs_scroll_list.column
image="legacy/ff_visible_map_button_theirs.tga"
name="icon_visible_map_theirs"

View File

@ -74,6 +74,11 @@
name="icon_edit_mine"
tool_tip="Friend can edit, delete or take objects"
width="20" />
<fs_scroll_list.column
image="legacy/ff_visible_online_button_theirs.tga"
name="icon_visible_online_theirs"
tool_tip="You can see this friend&apos;s online status"
width="20" />
<fs_scroll_list.column
image="legacy/ff_visible_map_button_theirs.tga"
name="icon_visible_map_theirs"

View File

@ -64,6 +64,11 @@
name="icon_edit_mine"
tool_tip="Friend can edit, delete or take objects"
width="20" />
<fs_scroll_list.column
image="legacy/ff_visible_online_button_theirs.tga"
name="icon_visible_online_theirs"
tool_tip="You can see this friend&apos;s online status"
width="20" />
<fs_scroll_list.column
image="legacy/ff_visible_map_button_theirs.tga"
name="icon_visible_map_theirs"