diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llavatarlist.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llavatarlist.h | 4 | ||||
| -rw-r--r-- | indra/newview/llavatarlistitem.cpp | 48 | ||||
| -rw-r--r-- | indra/newview/llavatarlistitem.h | 11 | ||||
| -rw-r--r-- | indra/newview/llpanelplaceinfo.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_group_control_panel.xml | 2 | 
7 files changed, 70 insertions, 15 deletions
| diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 65a2b8b5e6..7b2dc02864 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -79,6 +79,8 @@ static const LLFlatListView::ItemReverseComparator REVERSE_NAME_COMPARATOR(NAME_  LLAvatarList::Params::Params()  : ignore_online_status("ignore_online_status", false)  , show_last_interaction_time("show_last_interaction_time", false) +, show_info_btn("show_info_btn", true) +, show_profile_btn("show_profile_btn", true)  {  } @@ -89,6 +91,9 @@ LLAvatarList::LLAvatarList(const Params& p)  , mContextMenu(NULL)  , mDirty(true) // to force initial update  , mLITUpdateTimer(NULL) +, mShowIcons(true) +, mShowInfoBtn(p.show_info_btn) +, mShowProfileBtn(p.show_profile_btn)  {  	setCommitOnSelectionChange(true); @@ -253,6 +258,8 @@ void LLAvatarList::addNewItem(const LLUUID& id, const std::string& name, BOOL is  	item->childSetVisible("info_btn", false);  	item->setAvatarIconVisible(mShowIcons); +	item->setShowInfoBtn(mShowInfoBtn); +	item->setShowProfileBtn(mShowProfileBtn);  	addItem(item, id, pos);  } diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h index 8f2f0249a6..51d3760d39 100644 --- a/indra/newview/llavatarlist.h +++ b/indra/newview/llavatarlist.h @@ -59,6 +59,8 @@ public:  	{  		Optional<bool> ignore_online_status; // show all items as online  		Optional<bool> show_last_interaction_time; // show most recent interaction time. *HACK: move this to a derived class +		Optional<bool> show_info_btn; +		Optional<bool> show_profile_btn;  		Params();  	}; @@ -96,6 +98,8 @@ private:  	bool mShowLastInteractionTime;  	bool mDirty;  	bool mShowIcons; +	bool mShowInfoBtn; +	bool mShowProfileBtn;  	LLTimer*				mLITUpdateTimer; // last interaction time update timer  	std::string				mIconParamName; diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp index 8464430501..a7ac14c948 100644 --- a/indra/newview/llavatarlistitem.cpp +++ b/indra/newview/llavatarlistitem.cpp @@ -42,8 +42,6 @@  #include "llavatariconctrl.h"  #include "llbutton.h" -S32 LLAvatarListItem::sIconWidth = 0; -  LLAvatarListItem::LLAvatarListItem()  :	LLPanel(),  	mAvatarIcon(NULL), @@ -53,15 +51,17 @@ LLAvatarListItem::LLAvatarListItem()  	mInfoBtn(NULL),  	mProfileBtn(NULL),  	mContextMenu(NULL), -	mOnlineStatus(E_UNKNOWN) +	mOnlineStatus(E_UNKNOWN), +	mShowInfoBtn(true), +	mShowProfileBtn(true)  {  	LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar_list_item.xml");  	// Remember avatar icon width including its padding from the name text box,  	// so that we can hide and show the icon again later. -	if (!sIconWidth) -	{ -		sIconWidth = mAvatarName->getRect().mLeft - mAvatarIcon->getRect().mLeft; -	} + +	mIconWidth = mAvatarName->getRect().mLeft - mAvatarIcon->getRect().mLeft; +	mInfoBtnWidth = mInfoBtn->getRect().mRight - mSpeakingIndicator->getRect().mRight; +	mProfileBtnWidth = mProfileBtn->getRect().mRight - mInfoBtn->getRect().mRight;  }  LLAvatarListItem::~LLAvatarListItem() @@ -116,8 +116,8 @@ BOOL  LLAvatarListItem::postBuild()  void LLAvatarListItem::onMouseEnter(S32 x, S32 y, MASK mask)  {  	childSetVisible("hovered_icon", true); -	mInfoBtn->setVisible(true); -	mProfileBtn->setVisible(true); +	mInfoBtn->setVisible(mShowInfoBtn); +	mProfileBtn->setVisible(mShowProfileBtn);  	LLPanel::onMouseEnter(x, y, mask);  } @@ -202,6 +202,34 @@ void LLAvatarListItem::setLastInteractionTime(const std::string& val)  	mLastInteractionTime->setValue(val);  } +void LLAvatarListItem::setShowInfoBtn(bool show) +{ +	// Already done? Then do nothing. +	if(mShowInfoBtn == show) +		return; +	mShowInfoBtn = show; +	S32 width_delta = show ? - mInfoBtnWidth : mInfoBtnWidth; + +	//Translating speaking indicator +	mSpeakingIndicator->translate(width_delta, 0); +	//Reshaping avatar name +	mAvatarName->reshape(mAvatarName->getRect().getWidth() + width_delta, mAvatarName->getRect().getHeight()); +} + +void LLAvatarListItem::setShowProfileBtn(bool show) +{ +	// Already done? Then do nothing. +	if(mShowProfileBtn == show) +			return; +	mShowProfileBtn = show; +	S32 width_delta = show ? - mProfileBtnWidth : mProfileBtnWidth; + +	//Translating speaking indicator +	mSpeakingIndicator->translate(width_delta, 0); +	//Reshaping avatar name +	mAvatarName->reshape(mAvatarName->getRect().getWidth() + width_delta, mAvatarName->getRect().getHeight()); +} +  void LLAvatarListItem::setAvatarIconVisible(bool visible)  {  	// Already done? Then do nothing. @@ -213,7 +241,7 @@ void LLAvatarListItem::setAvatarIconVisible(bool visible)  	// Move the avatar name horizontally by icon size + its distance from the avatar name.  	LLRect name_rect = mAvatarName->getRect(); -	name_rect.mLeft += visible ? sIconWidth : -sIconWidth; +	name_rect.mLeft += visible ? mIconWidth : -mIconWidth;  	mAvatarName->setRect(name_rect);  } diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h index 10c0b17005..cd7a85c3dc 100644 --- a/indra/newview/llavatarlistitem.h +++ b/indra/newview/llavatarlistitem.h @@ -64,6 +64,9 @@ public:  	void setName(const std::string& name);  	void setAvatarId(const LLUUID& id, bool ignore_status_changes = false);  	void setLastInteractionTime(const std::string& val); +	//Show/hide profile/info btn, translating speaker indicator and avatar name coordinates accordingly +	void setShowProfileBtn(bool hide); +	void setShowInfoBtn(bool hide);  	void setAvatarIconVisible(bool visible);  	const LLUUID& getAvatarId() const; @@ -99,7 +102,13 @@ private:  	LLUUID mAvatarId;  	EOnlineStatus mOnlineStatus; -	static S32	sIconWidth; // icon width + padding +	//Flag indicating that info/profile button shouldn't be shown at all. +	//Speaker indicator and avatar name coords are translated accordingly +	bool mShowInfoBtn; +	bool mShowProfileBtn; +	S32	 mIconWidth; // icon width + padding +	S32  mInfoBtnWidth; //info btn width + padding +	S32  mProfileBtnWidth; //profile btn width + padding  };  #endif //LL_LLAVATARLISTITEM_H diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp index 5af27a5ec1..34644cfe42 100644 --- a/indra/newview/llpanelplaceinfo.cpp +++ b/indra/newview/llpanelplaceinfo.cpp @@ -54,6 +54,7 @@  #include "llaccordionctrltab.h"  #include "llagent.h"  #include "llagentui.h" +#include "llappviewer.h"  #include "llavatarpropertiesprocessor.h"  #include "llcallbacklist.h"  #include "llexpandabletextbox.h" @@ -1003,13 +1004,15 @@ void LLPanelPlaceInfo::updateYouAreHereBanner(void* userdata)  	LLPanelPlaceInfo* self  = static_cast<LLPanelPlaceInfo*>(userdata);  	if(!self->getVisible())  		return; +	if(!gDisconnected) +	{ +		static F32 radius  = gSavedSettings.getF32("YouAreHereDistance"); -	static F32 radius  = gSavedSettings.getF32("YouAreHereDistance"); - -	BOOL display_banner = self->mLastSelectedRegionID == gAgent.getRegion()->getRegionID() &&  +		BOOL display_banner = gAgent.getRegion()->getRegionID() == self->mLastSelectedRegionID &&   			LLAgentUI::checkAgentDistance(self->mPosRegion, radius); -	self->mYouAreHerePanel->setVisible(display_banner); +		self->mYouAreHerePanel->setVisible(display_banner); +	}  }  void LLPanelPlaceInfo::onForSaleBannerClick() diff --git a/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml index 8db745fab7..1003b4a3a8 100644 --- a/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml +++ b/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml @@ -13,6 +13,8 @@       left="3"       name="speakers_list"       opaque="false" +     show_info_btn="false" +     show_profile_btn="false"       top="10"       width="140" />      <button diff --git a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml index 15b6b2a00d..ce952628c6 100644 --- a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml +++ b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml @@ -13,6 +13,8 @@       left="3"       name="speakers_list"       opaque="false" +     show_info_btn="false" +     show_profile_btn="false"       top="10"       width="140" />      <button | 
