summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2022-06-06 21:27:13 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2022-06-07 02:18:22 +0300
commit111d1d7c94887cb91bcb82ec6c86aaed133d8043 (patch)
tree58a8e319f0fcbc8d338eb54322a136b5b201530e /indra
parent0c6afa58de6b57ad41d31a3dddaac9ef30321960 (diff)
SL-15312 Fixed group names not having padding
Plus some focus and interactibility fixes
Diffstat (limited to 'indra')
-rw-r--r--indra/llui/lliconctrl.cpp13
-rw-r--r--indra/llui/lliconctrl.h7
-rw-r--r--indra/newview/llfloaterprofiletexture.cpp20
-rw-r--r--indra/newview/llfloaterprofiletexture.h13
-rw-r--r--indra/newview/llgrouplist.cpp21
-rw-r--r--indra/newview/llgrouplist.h2
-rw-r--r--indra/newview/llpanelprofile.cpp22
-rw-r--r--indra/newview/llpanelprofile.h16
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile_secondlife.xml7
9 files changed, 84 insertions, 37 deletions
diff --git a/indra/llui/lliconctrl.cpp b/indra/llui/lliconctrl.cpp
index 82b01e705d..e01aba402e 100644
--- a/indra/llui/lliconctrl.cpp
+++ b/indra/llui/lliconctrl.cpp
@@ -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)
diff --git a/indra/llui/lliconctrl.h b/indra/llui/lliconctrl.h
index dd83e78fd3..9c3b517bca 100644
--- a/indra/llui/lliconctrl.h
+++ b/indra/llui/lliconctrl.h
@@ -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;
diff --git a/indra/newview/llfloaterprofiletexture.cpp b/indra/newview/llfloaterprofiletexture.cpp
index 4ddd7dfc6b..743685e7d1 100644
--- a/indra/newview/llfloaterprofiletexture.cpp
+++ b/indra/newview/llfloaterprofiletexture.cpp
@@ -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();
diff --git a/indra/newview/llfloaterprofiletexture.h b/indra/newview/llfloaterprofiletexture.h
index 84ff4ecb16..66a61213dd 100644
--- a/indra/newview/llfloaterprofiletexture.h
+++ b/indra/newview/llfloaterprofiletexture.h
@@ -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;
};
diff --git a/indra/newview/llgrouplist.cpp b/indra/newview/llgrouplist.cpp
index 38c0b64e0a..32af2592d3 100644
--- a/indra/newview/llgrouplist.cpp
+++ b/indra/newview/llgrouplist.cpp
@@ -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);
}
diff --git a/indra/newview/llgrouplist.h b/indra/newview/llgrouplist.h
index bab9127e10..5cbabb712f 100644
--- a/indra/newview/llgrouplist.h
+++ b/indra/newview/llgrouplist.h
@@ -137,6 +137,6 @@ private:
bool mForAgent;
LLStyle::Params mGroupNameStyle;
- static S32 sIconWidth; // icon width + padding
+ S32 mIconWidth;
};
#endif // LL_LLGROUPLIST_H
diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp
index 441a69bc5d..69e36a2df7 100644
--- a/indra/newview/llpanelprofile.cpp
+++ b/indra/newview/llpanelprofile.cpp
@@ -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);
}
}
diff --git a/indra/newview/llpanelprofile.h b/indra/newview/llpanelprofile.h
index 4de5f274d8..943048843f 100644
--- a/indra/newview/llpanelprofile.h
+++ b/indra/newview/llpanelprofile.h
@@ -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;
diff --git a/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml b/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml
index 0a74d934ac..53bd9666c1 100644
--- a/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml
@@ -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"