MAINT-1239 Fixed There is no icon of owner and creator in build dialog

meow-7.2.2
andreykproductengine 2017-04-18 21:46:06 +03:00
parent 8efeeba29e
commit b6136b0bc3
2 changed files with 103 additions and 20 deletions

View File

@ -56,15 +56,20 @@
#include "llfloatergroups.h"
#include "llfloaterreg.h"
#include "llavataractions.h"
#include "llavatariconctrl.h"
#include "llnamebox.h"
#include "llviewercontrol.h"
#include "lluictrlfactory.h"
#include "llspinctrl.h"
#include "roles_constants.h"
#include "llgroupactions.h"
#include "llgroupiconctrl.h"
#include "lltrans.h"
#include "llinventorymodel.h"
#include "llavatarnamecache.h"
#include "llcachename.h"
U8 string_value_to_click_action(std::string p_value);
std::string click_action_to_string_value( U8 action);
@ -186,10 +191,13 @@ void LLPanelPermissions::disableAll()
getChild<LLUICtrl>("pathfinding_attributes_value")->setValue(LLStringUtil::null);
getChildView("Creator:")->setEnabled(FALSE);
getChild<LLUICtrl>("Creator Icon")->setVisible(FALSE);
getChild<LLUICtrl>("Creator Name")->setValue(LLStringUtil::null);
getChildView("Creator Name")->setEnabled(FALSE);
getChildView("Owner:")->setEnabled(FALSE);
getChild<LLUICtrl>("Owner Icon")->setVisible(FALSE);
getChild<LLUICtrl>("Owner Group Icon")->setVisible(FALSE);
getChild<LLUICtrl>("Owner Name")->setValue(LLStringUtil::null);
getChildView("Owner Name")->setEnabled(FALSE);
@ -366,39 +374,84 @@ void LLPanelPermissions::refresh()
// Update creator text field
getChildView("Creator:")->setEnabled(TRUE);
std::string creator_name;
LLSelectMgr::getInstance()->selectGetCreator(mCreatorID, creator_name);
std::string creator_app_link;
LLSelectMgr::getInstance()->selectGetCreator(mCreatorID, creator_app_link);
getChild<LLUICtrl>("Creator Name")->setValue(creator_name);
// Style for creator and owner links (both group and agent)
LLStyle::Params style_params;
LLColor4 link_color = LLUIColorTable::instance().getColor("HTMLLinkColor");
style_params.color = link_color;
style_params.readonly_color = link_color;
style_params.is_link = true; // link will be added later
style_params.font.style = "UNDERLINE";
LLAvatarName av_name;
if (LLAvatarNameCache::get(mCreatorID, &av_name))
{
// If name isn't present, this will 'request' it and trigger refresh() again
LLTextBox* text_box = getChild<LLTextBox>("Creator Name");
style_params.link_href = creator_app_link;
text_box->setText(av_name.getCompleteName(), style_params);
}
getChild<LLAvatarIconCtrl>("Creator Icon")->setValue(mCreatorID);
getChild<LLAvatarIconCtrl>("Creator Icon")->setVisible(TRUE);
getChildView("Creator Name")->setEnabled(TRUE);
// Update owner text field
getChildView("Owner:")->setEnabled(TRUE);
std::string owner_name;
const BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_name);
if (mOwnerID.isNull())
std::string owner_app_link;
const BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_app_link);
if (LLSelectMgr::getInstance()->selectIsGroupOwned())
{
if (LLSelectMgr::getInstance()->selectIsGroupOwned())
// Group owned already displayed by selectGetOwner
LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(mOwnerID);
if (group_data && group_data->isGroupPropertiesDataComplete())
{
// Group owned already displayed by selectGetOwner
LLTextBox* text_box = getChild<LLTextBox>("Owner Name");
style_params.link_href = owner_app_link;
text_box->setText(group_data->mName, style_params);
getChild<LLGroupIconCtrl>("Owner Group Icon")->setIconId(group_data->mInsigniaID);
getChild<LLGroupIconCtrl>("Owner Group Icon")->setVisible(TRUE);
getChild<LLUICtrl>("Owner Icon")->setVisible(FALSE);
}
else
{
// Triggers refresh
LLGroupMgr::getInstance()->sendGroupPropertiesRequest(mOwnerID);
}
}
else
{
LLUUID owner_id = mOwnerID;
if (owner_id.isNull())
{
// Display last owner if public
std::string last_owner_name;
LLSelectMgr::getInstance()->selectGetLastOwner(mLastOwnerID, last_owner_name);
std::string last_owner_app_link;
LLSelectMgr::getInstance()->selectGetLastOwner(mLastOwnerID, last_owner_app_link);
// It should never happen that the last owner is null and the owner
// is null, but it seems to be a bug in the simulator right now. JC
if (!mLastOwnerID.isNull() && !last_owner_name.empty())
if (!mLastOwnerID.isNull() && !last_owner_app_link.empty())
{
owner_name.append(", last ");
owner_name.append(last_owner_name);
owner_app_link.append(", last ");
owner_app_link.append(last_owner_app_link);
}
owner_id = mLastOwnerID;
}
if (LLAvatarNameCache::get(owner_id, &av_name))
{
// If name isn't present, this will 'request' it and trigger refresh() again
LLTextBox* text_box = getChild<LLTextBox>("Owner Name");
style_params.link_href = owner_app_link;
text_box->setText(av_name.getCompleteName(), style_params);
}
getChild<LLAvatarIconCtrl>("Owner Icon")->setValue(owner_id);
getChild<LLAvatarIconCtrl>("Owner Icon")->setVisible(TRUE);
getChild<LLUICtrl>("Owner Group Icon")->setVisible(FALSE);
}
getChild<LLUICtrl>("Owner Name")->setValue(owner_name);
getChildView("Owner Name")->setEnabled(TRUE);
// update group text field

View File

@ -946,18 +946,28 @@
width="90">
Creator:
</text>
<avatar_icon
default_icon_name="Generic_Person"
height="18"
follows="left|top"
layout="topleft"
left_pad="1"
name="Creator Icon"
visible="false"
top_delta="0"
width="18" />
<!-- *NOTE: Intentionally wide for long names -->
<text
type="string"
length="1"
follows="left|top"
left_pad="0"
left_pad="1"
height="29"
layout="topleft"
name="Creator Name"
top_delta="0"
top_delta="-1"
translate="false"
width="190"
width="170"
word_wrap="true"
use_ellipses="true">
TestString PleaseIgnore (please.ignore)
@ -974,6 +984,26 @@
width="90">
Owner:
</text>
<avatar_icon
default_icon_name="Generic_Person"
height="18"
follows="left|top"
layout="topleft"
left_pad="1"
name="Owner Icon"
visible="false"
top_delta="0"
width="18" />
<group_icon
default_icon_name="Generic_Group"
height="18"
follows="left|top"
layout="topleft"
left_pad="-18"
name="Owner Group Icon"
visible="false"
top_delta="0"
width="18" />
<!-- *NOTE: Intentionally wide for long names -->
<text
type="string"
@ -982,10 +1012,10 @@
height="29"
layout="topleft"
name="Owner Name"
left_pad="0"
top_delta="0"
left_pad="1"
top_delta="-1"
translate="false"
width="190"
width="170"
word_wrap="true"
use_ellipses="true">
TestString PleaseIgnore (please.ignore)