summaryrefslogtreecommitdiff
path: root/indra/newview/llavatariconctrl.cpp
diff options
context:
space:
mode:
authorGilbert Gonzales <gilbert@lindenlab.com>2012-11-06 17:56:47 -0800
committerGilbert Gonzales <gilbert@lindenlab.com>2012-11-06 17:56:47 -0800
commit8d9aec9278f2113e239a32e393aeca7eefd64fbf (patch)
treec50dfd9859aa0fad2f7aff6574c32587dcce3045 /indra/newview/llavatariconctrl.cpp
parent50615ba69c94441c99f21f861cf0290972162998 (diff)
parent0a21efc7abc62511d1ea789bdb47309a6ed1d72e (diff)
merging in latest changes
Diffstat (limited to 'indra/newview/llavatariconctrl.cpp')
-rwxr-xr-xindra/newview/llavatariconctrl.cpp29
1 files changed, 25 insertions, 4 deletions
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index 62c6c6763b..6355f0db56 100755
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -28,6 +28,8 @@
#include "llavatariconctrl.h"
+#include <boost/signals2.hpp>
+
// viewer includes
#include "llagent.h"
#include "llavatarconstants.h"
@@ -148,9 +150,13 @@ LLAvatarIconCtrl::Params::Params()
LLAvatarIconCtrl::LLAvatarIconCtrl(const LLAvatarIconCtrl::Params& p)
-: LLIconCtrl(p),
+ : LLIconCtrl(p),
+ LLAvatarPropertiesObserver(),
+ mAvatarId(),
+ mFullName(),
mDrawTooltip(p.draw_tooltip),
- mDefaultIconName(p.default_icon_name)
+ mDefaultIconName(p.default_icon_name),
+ mAvatarNameCacheConnection()
{
mPriority = LLViewerFetchedTexture::BOOST_ICON;
@@ -203,6 +209,11 @@ LLAvatarIconCtrl::~LLAvatarIconCtrl()
LLAvatarPropertiesProcessor::getInstance()->removeObserver(mAvatarId, this);
// Name callbacks will be automatically disconnected since LLUICtrl is trackable
}
+
+ if (mAvatarNameCacheConnection.connected())
+ {
+ mAvatarNameCacheConnection.disconnect();
+ }
}
//virtual
@@ -245,9 +256,19 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
LLIconCtrl::setValue(value);
}
- if (mAvatarId != LLUUID::null)
+ fetchAvatarName();
+}
+
+void LLAvatarIconCtrl::fetchAvatarName()
+{
+ if (mAvatarNameCacheConnection.connected())
+ {
+ mAvatarNameCacheConnection.disconnect();
+ }
+
+ if (mAvatarId.notNull())
{
- LLAvatarNameCache::get(mAvatarId, boost::bind(&LLAvatarIconCtrl::onAvatarNameCache, this, _1, _2));
+ mAvatarNameCacheConnection = LLAvatarNameCache::get(mAvatarId, boost::bind(&LLAvatarIconCtrl::onAvatarNameCache, this, _1, _2));
}
}