diff options
| -rw-r--r-- | indra/newview/llavatariconctrl.cpp | 27 | ||||
| -rw-r--r-- | indra/newview/llavatariconctrl.h | 7 | 
2 files changed, 19 insertions, 15 deletions
| diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp index 11cc456695..f4d5d45726 100644 --- a/indra/newview/llavatariconctrl.cpp +++ b/indra/newview/llavatariconctrl.cpp @@ -34,17 +34,19 @@  #include "llavatariconctrl.h" +// viewer includes  #include "llagent.h"  #include "llavatarconstants.h"  #include "llcallingcard.h" // for LLAvatarTracker  #include "llavataractions.h"  #include "llmenugl.h"  #include "lluictrlfactory.h" - -#include "llcachename.h"  #include "llagentdata.h"  #include "llimfloater.h" +// library includes +#include "llavatarnamecache.h" +  #define MENU_ITEM_VIEW_PROFILE 0  #define MENU_ITEM_SEND_IM 1 @@ -233,6 +235,9 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)  			// Check if cache already contains image_id for that avatar  			if (!updateFromCache())  			{ +				// *TODO: Consider getting avatar icon/badge directly from  +				// People API, rather than sending AvatarPropertyRequest +				// messages.  People API already hits the user table.  				LLIconCtrl::setValue(mDefaultIconName);  				app->addObserver(mAvatarId, this);  				app->sendAvatarPropertiesRequest(mAvatarId); @@ -244,8 +249,9 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)  		LLIconCtrl::setValue(value);  	} -	gCacheName->get(mAvatarId, false, -		boost::bind(&LLAvatarIconCtrl::nameUpdatedCallback, this, _1, _2, _3)); +	LLAvatarNameCache::get(mAvatarId, +		boost::bind(&LLAvatarIconCtrl::onAvatarNameCache,  +			this, _1, _2));  }  bool LLAvatarIconCtrl::updateFromCache() @@ -288,18 +294,17 @@ void LLAvatarIconCtrl::processProperties(void* data, EAvatarProcessorType type)  	}  } -void LLAvatarIconCtrl::nameUpdatedCallback( -	const LLUUID& id, -	const std::string& name, -	bool is_group) +void LLAvatarIconCtrl::onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name)  { -	if (id == mAvatarId) +	if (agent_id == mAvatarId)  	{ -		mFullName = name; +		// Most avatar icon controls are next to a UI element that shows +		// a display name, so only show username. +		mFullName = av_name.mUsername;  		if (mDrawTooltip)  		{ -			setToolTip(name); +			setToolTip(mFullName);  		}  		else  		{ diff --git a/indra/newview/llavatariconctrl.h b/indra/newview/llavatariconctrl.h index a5452ee1d3..5befc73d92 100644 --- a/indra/newview/llavatariconctrl.h +++ b/indra/newview/llavatariconctrl.h @@ -37,6 +37,8 @@  #include "llavatarpropertiesprocessor.h"  #include "llviewermenu.h" +class LLAvatarName; +  class LLAvatarIconIDCache: public LLSingleton<LLAvatarIconIDCache>  {  public: @@ -90,10 +92,7 @@ public:  	// LLAvatarPropertiesProcessor observer trigger  	virtual void processProperties(void* data, EAvatarProcessorType type); -	void nameUpdatedCallback( -		const LLUUID& id, -		const std::string& name, -		bool is_group); +	void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);  	const LLUUID&		getAvatarId() const	{ return mAvatarId; }  	const std::string&	getFullName() const { return mFullName; } | 
