diff options
| author | James Cook <james@lindenlab.com> | 2010-05-24 16:59:05 -0700 | 
|---|---|---|
| committer | James Cook <james@lindenlab.com> | 2010-05-24 16:59:05 -0700 | 
| commit | 934dc6e2d0fabb935c75bb611ceb543426e485eb (patch) | |
| tree | aff236bd4ae3b29a4ef0cb42c957c1f7c4da53d6 | |
| parent | 3b0bb8159605685befd79784ddcf6feadee36b67 (diff) | |
DEV-50013 Inventory offer notifications use new name system
Reviewed with Richard
| -rw-r--r-- | indra/llui/llnotifications.cpp | 42 | ||||
| -rw-r--r-- | indra/llui/llnotifications.h | 16 | 
2 files changed, 47 insertions, 11 deletions
| diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index 23f79aad36..4a776f577f 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -34,6 +34,8 @@  #include "llnotifications.h" +#include "llavatarnamecache.h" +#include "llcachename.h"  #include "llxmlnode.h"  #include "lluictrl.h"  #include "lluictrlfactory.h" @@ -1488,12 +1490,42 @@ std::ostream& operator<<(std::ostream& s, const LLNotification& notification)  	return s;  } -void LLPostponedNotification::onCachedNameReceived(const LLUUID& id, -												   const std::string& full_name, -												   bool is_group) +//static +void LLPostponedNotification::lookupName(LLPostponedNotification* thiz, +										 const LLUUID& id, +										 bool is_group) +{ +	if (is_group) +	{ +		gCacheName->get(id, is_group, +			boost::bind(&LLPostponedNotification::onGroupNameCache, +				thiz, _1, _2, _3)); +	} +	else +	{ +		LLAvatarNameCache::get(id, +			boost::bind(&LLPostponedNotification::onAvatarNameCache, +				thiz, _1, _2)); +	} +} + +void LLPostponedNotification::onGroupNameCache(const LLUUID& id, +											   const std::string& full_name, +											   bool is_group) +{ +	finalizeName(full_name); +} + +void LLPostponedNotification::onAvatarNameCache(const LLUUID& agent_id, +												const LLAvatarName& av_name) +{ +	std::string name = av_name.getCompleteName(); +	finalizeName(name); +} + +void LLPostponedNotification::finalizeName(const std::string& name)  { -	// *TODO: This is dumb, just use full_name as given -	gCacheName->getFullName(id, mName); +	mName = name;  	modifyNotificationParams();  	LLNotifications::instance().add(mParams);  	cleanup(); diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h index f818b386b5..73357daaef 100644 --- a/indra/llui/llnotifications.h +++ b/indra/llui/llnotifications.h @@ -104,8 +104,8 @@  #include "llinitparam.h"  #include "llnotificationslistener.h"  #include "llnotificationptr.h" -#include "llcachename.h" +class LLAvatarName;  typedef enum e_notification_priority  { @@ -1000,16 +1000,20 @@ public:  	{  		// upcast T to the base type to restrict T derivation from LLPostponedNotification  		LLPostponedNotification* thiz = new T(); -  		thiz->mParams = params; -		gCacheName->get(id, is_group, boost::bind( -				&LLPostponedNotification::onCachedNameReceived, thiz, _1, _2, -				_3)); +		// Avoid header file dependency on llcachename.h +		lookupName(thiz, id, is_group);  	}  private: -	void onCachedNameReceived(const LLUUID& id, const std::string& full_name, bool is_group); +	static void lookupName(LLPostponedNotification* thiz, const LLUUID& id, bool is_group); +	// only used for groups +	void onGroupNameCache(const LLUUID& id, const std::string& full_name, bool is_group); +	// only used for avatars +	void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name); +	// used for both group and avatar names +	void finalizeName(const std::string& name);  	void cleanup()  	{ | 
