SL-15312 Fixed group names not having padding

Plus some focus and interactibility fixes
master
Andrey Kleshchev 2022-06-06 21:27:13 +03:00
parent 0c6afa58de
commit 111d1d7c94
9 changed files with 84 additions and 37 deletions

View File

@ -35,6 +35,7 @@
#include "llui.h"
#include "lluictrlfactory.h"
#include "lluiimage.h"
#include "llwindow.h"
static LLDefaultChildRegistry::Register<LLIconCtrl> r("icon");
@ -42,6 +43,7 @@ LLIconCtrl::Params::Params()
: image("image_name"),
color("color"),
use_draw_context_alpha("use_draw_context_alpha", true),
interactable("interactable", false),
scale_image("scale_image"),
min_width("min_width", 0),
min_height("min_height", 0)
@ -52,6 +54,7 @@ LLIconCtrl::LLIconCtrl(const LLIconCtrl::Params& p)
mColor(p.color()),
mImagep(p.image),
mUseDrawContextAlpha(p.use_draw_context_alpha),
mInteractable(p.interactable),
mPriority(0),
mMinWidth(p.min_width),
mMinHeight(p.min_height),
@ -81,6 +84,16 @@ void LLIconCtrl::draw()
LLUICtrl::draw();
}
BOOL LLIconCtrl::handleHover(S32 x, S32 y, MASK mask)
{
if (mInteractable && getEnabled())
{
getWindow()->setCursor(UI_CURSOR_HAND);
return TRUE;
}
return LLUICtrl::handleHover(x, y, mask);
}
// virtual
// value might be a string or a UUID
void LLIconCtrl::setValue(const LLSD& value)

View File

@ -48,7 +48,8 @@ public:
{
Optional<LLUIImage*> image;
Optional<LLUIColor> color;
Optional<bool> use_draw_context_alpha;
Optional<bool> use_draw_context_alpha,
interactable;
Optional<S32> min_width,
min_height;
Ignored scale_image;
@ -67,6 +68,9 @@ public:
// llview overrides
virtual void draw();
// llview overrides
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
// lluictrl overrides
virtual void setValue(const LLSD& value );
@ -88,6 +92,7 @@ protected:
// If set to true (default), use the draw context transparency.
// If false, will use transparency returned by getCurrentTransparency(). See STORM-698.
bool mUseDrawContextAlpha;
bool mInteractable;
private:
LLUIColor mColor;

View File

@ -38,10 +38,6 @@
#include "llviewertexturelist.h"
const S32 CLIENT_RECT_VPAD = 4;
const F32 PREVIEW_TEXTURE_MAX_ASPECT = 20.f;
const F32 PREVIEW_TEXTURE_MIN_ASPECT = 0.5f;
LLFloaterProfileTexture::LLFloaterProfileTexture(LLView* owner)
: LLFloater(LLSD())
@ -67,9 +63,10 @@ LLFloaterProfileTexture::~LLFloaterProfileTexture()
// virtual
BOOL LLFloaterProfileTexture::postBuild()
{
pProfileIcon = getChild<LLIconCtrl>("profile_pic");
mProfileIcon = getChild<LLIconCtrl>("profile_pic");
getChild<LLButton>("close_btn")->setCommitCallback([this](LLUICtrl*, void*) { closeFloater(); }, nullptr);
mCloseButton = getChild<LLButton>("close_btn");
mCloseButton->setCommitCallback([this](LLUICtrl*, void*) { closeFloater(); }, nullptr);
return TRUE;
}
@ -114,7 +111,7 @@ void LLFloaterProfileTexture::updateDimensions()
mUpdateDimensions = FALSE;
LLRect old_floater_rect = getRect();
LLRect old_image_rect = pProfileIcon->getRect();
LLRect old_image_rect = mProfileIcon->getRect();
S32 width = old_floater_rect.getWidth() - old_image_rect.getWidth() + mLastWidth;
S32 height = old_floater_rect.getHeight() - old_image_rect.getHeight() + mLastHeight;
@ -135,9 +132,14 @@ void LLFloaterProfileTexture::draw()
LLFloater::draw();
}
void LLFloaterProfileTexture::onOpen(const LLSD& key)
{
mCloseButton->setFocus(true);
}
void LLFloaterProfileTexture::resetAsset()
{
pProfileIcon->setValue("Generic_Person_Large");
mProfileIcon->setValue("Generic_Person_Large");
mImageID = LLUUID::null;
if (mImage.notNull())
{
@ -160,7 +162,7 @@ void LLFloaterProfileTexture::loadAsset(const LLUUID &image_id)
return;
}
pProfileIcon->setValue(image_id);
mProfileIcon->setValue(image_id);
mImageID = image_id;
mImage = LLViewerTextureManager::getFetchedTexture(mImageID, FTT_DEFAULT, MIPMAP_TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
mImageOldBoostLevel = mImage->getBoostLevel();

View File

@ -30,6 +30,7 @@
#include "llfloater.h"
#include "llviewertexture.h"
class LLButton;
class LLImageRaw;
class LLIconCtrl;
@ -39,7 +40,8 @@ public:
LLFloaterProfileTexture(LLView* owner);
~LLFloaterProfileTexture();
virtual void draw();
void draw() override;
void onOpen(const LLSD& key) override;
void resetAsset();
void loadAsset(const LLUUID &image_id);
@ -54,12 +56,12 @@ public:
BOOL final,
void* userdata);
virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE) override;
protected:
/* virtual */ BOOL postBuild();
BOOL postBuild() override;
private:
void updateDimensions();
void updateDimensions();
LLUUID mImageID;
LLPointer<LLViewerFetchedTexture> mImage;
@ -71,7 +73,8 @@ private:
BOOL mUpdateDimensions;
LLHandle<LLView> mOwnerHandle;
LLIconCtrl* pProfileIcon;
LLIconCtrl* mProfileIcon;
LLButton* mCloseButton;
LLLoadedCallbackEntry::source_callback_list_t mCallbackTextureList;
};

View File

@ -45,7 +45,6 @@
#include "llvoiceclient.h"
static LLDefaultChildRegistry::Register<LLGroupList> r("group_list");
S32 LLGroupListItem::sIconWidth = 0;
class LLGroupComparator : public LLFlatListView::ItemComparator
{
@ -305,7 +304,10 @@ void LLGroupList::addNewItem(const LLUUID& id, const std::string& name, const LL
item->getChildView("info_btn")->setVisible( false);
item->getChildView("profile_btn")->setVisible( false);
item->setGroupIconVisible(mShowIcons);
item->setVisibleInProfile(visible_in_profile);
if (!mShowIcons)
{
item->setVisibleInProfile(visible_in_profile);
}
addItem(item, id, pos);
// setCommentVisible(false);
@ -414,13 +416,6 @@ mForAgent(for_agent)
{
buildFromFile( "panel_group_list_item_short.xml");
}
// Remember group icon width including its padding from the name text box,
// so that we can hide and show the icon again later.
if (!sIconWidth && mGroupNameBox)
{
sIconWidth = mGroupNameBox->getRect().mLeft - mGroupIcon->getRect().mLeft;
}
}
LLGroupListItem::~LLGroupListItem()
@ -451,6 +446,12 @@ BOOL LLGroupListItem::postBuild()
mVisibilityShowBtn->setClickedCallback([this](LLUICtrl *, const LLSD &) { onVisibilityBtnClick(true); });
}
// Remember group icon width including its padding from the name text box,
// so that we can hide and show the icon again later.
// Also note that panel_group_list_item and panel_group_list_item_short
// have icons of different sizes so we need to figure it per file.
mIconWidth = mGroupNameBox->getRect().mLeft - mGroupIcon->getRect().mLeft;
return TRUE;
}
@ -541,7 +542,7 @@ void LLGroupListItem::setGroupIconVisible(bool visible)
// Move the group name horizontally by icon size + its distance from the group name.
LLRect name_rect = mGroupNameBox->getRect();
name_rect.mLeft += visible ? sIconWidth : -sIconWidth;
name_rect.mLeft += visible ? mIconWidth : -mIconWidth;
mGroupNameBox->setRect(name_rect);
}

View File

@ -137,6 +137,6 @@ private:
bool mForAgent;
LLStyle::Params mGroupNameStyle;
static S32 sIconWidth; // icon width + padding
S32 mIconWidth;
};
#endif // LL_LLGROUPLIST_H

View File

@ -669,6 +669,8 @@ void LLFloaterProfilePermissions::onOpen(const LLSD& key)
fillRightsData();
}
mCancelBtn->setFocus(true);
mAvatarNameCacheConnection = LLAvatarNameCache::get(mAvatarID, boost::bind(&LLFloaterProfilePermissions::onAvatarNameCache, this, _1, _2));
}
@ -986,6 +988,13 @@ void LLPanelProfileSecondLife::resetData()
mCanEditObjectsIcon->setVisible(false);
mCantEditObjectsIcon->setVisible(!own_profile);
mCanSeeOnlineIcon->setEnabled(false);
mCantSeeOnlineIcon->setEnabled(false);
mCanSeeOnMapIcon->setEnabled(false);
mCantSeeOnMapIcon->setEnabled(false);
mCanEditObjectsIcon->setEnabled(false);
mCantEditObjectsIcon->setEnabled(false);
childSetVisible("partner_layout", FALSE);
childSetVisible("partner_spacer_layout", TRUE);
}
@ -1222,15 +1231,22 @@ void LLPanelProfileSecondLife::fillRightsData()
mCantSeeOnMapIcon->setVisible(!can_see_on_map);
mCanEditObjectsIcon->setVisible(can_edit_objects);
mCantEditObjectsIcon->setVisible(!can_edit_objects);
mCanSeeOnlineIcon->setEnabled(true);
mCantSeeOnlineIcon->setEnabled(true);
mCanSeeOnMapIcon->setEnabled(true);
mCantSeeOnMapIcon->setEnabled(true);
mCanEditObjectsIcon->setEnabled(true);
mCantEditObjectsIcon->setEnabled(true);
}
else
{
mCanSeeOnlineIcon->setVisible(false);
mCantSeeOnlineIcon->setVisible(true);
mCantSeeOnlineIcon->setVisible(false);
mCanSeeOnMapIcon->setVisible(false);
mCantSeeOnMapIcon->setVisible(true);
mCantSeeOnMapIcon->setVisible(false);
mCanEditObjectsIcon->setVisible(false);
mCantEditObjectsIcon->setVisible(true);
mCantEditObjectsIcon->setVisible(false);
}
}

View File

@ -90,7 +90,7 @@ public:
BOOL postBuild() override;
void resetData();
void resetData() override;
/**
* Sends update data request to server.
@ -228,18 +228,18 @@ public:
LLPanelProfileWeb();
/*virtual*/ ~LLPanelProfileWeb();
/*virtual*/ void onOpen(const LLSD& key);
void onOpen(const LLSD& key) override;
/*virtual*/ BOOL postBuild();
BOOL postBuild() override;
void resetData();
void resetData() override;
/**
* Loads web profile.
*/
/*virtual*/ void updateData();
void updateData() override;
/*virtual*/ void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event);
void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event) override;
void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);
@ -275,7 +275,7 @@ public:
void processProperties(const LLAvatarData* avatar_data);
void resetData();
void resetData() override;
void setProfileImageUploading(bool loading);
void setProfileImageUploaded(const LLUUID &image_asset_id);
@ -324,7 +324,7 @@ public:
void processProperties(LLAvatarNotes* avatar_notes);
void resetData();
void resetData() override;
void updateData() override;

View File

@ -49,6 +49,7 @@ Account: [ACCTTYPE]
image_name="Generic_Person_Large"
layout="topleft"
follows="all"
interactable="true"
top="0"
left="2"
bottom="-1"
@ -350,6 +351,7 @@ Account: [ACCTTYPE]
image_name="Profile_Perm_Online_Enabled"
layout="topleft"
follows="right|top"
interactable="true"
top="0"
right="-61"
height="24"
@ -363,6 +365,7 @@ Account: [ACCTTYPE]
image_name="Profile_Perm_Online_Disabled"
layout="topleft"
follows="right|top"
interactable="true"
top="0"
right="-61"
height="24"
@ -376,6 +379,7 @@ Account: [ACCTTYPE]
image_name="Profile_Perm_Find_Enabled"
layout="topleft"
follows="right|top"
interactable="true"
top="0"
right="-30"
height="24"
@ -389,6 +393,7 @@ Account: [ACCTTYPE]
image_name="Profile_Perm_Find_Disabled"
layout="topleft"
follows="right|top"
interactable="true"
top="0"
right="-30"
height="24"
@ -402,6 +407,7 @@ Account: [ACCTTYPE]
image_name="Profile_Perm_Objects_Enabled"
layout="topleft"
follows="right|top"
interactable="true"
top="0"
right="-1"
height="24"
@ -415,6 +421,7 @@ Account: [ACCTTYPE]
image_name="Profile_Perm_Objects_Disabled"
layout="topleft"
follows="right|top"
interactable="true"
top="0"
right="-1"
height="24"