From 361a2277733a0afaf61f6c6150f1933d2e5aceb7 Mon Sep 17 00:00:00 2001
From: Xiaohong Bao <bao@lindenlab.com>
Date: Thu, 29 Oct 2009 16:12:12 -0600
Subject: fix EXT-1661: Avatars' icons should be cached only once per 24 hours,
 but not every time the viewer is restarted. to be reviewed by steve.

---
 indra/llui/lliconctrl.cpp | 17 ++++++++++++++++-
 indra/llui/lliconctrl.h   |  8 ++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

(limited to 'indra/llui')

diff --git a/indra/llui/lliconctrl.cpp b/indra/llui/lliconctrl.cpp
index 66c2ba682f..82ffac9580 100644
--- a/indra/llui/lliconctrl.cpp
+++ b/indra/llui/lliconctrl.cpp
@@ -57,7 +57,9 @@ LLIconCtrl::LLIconCtrl(const LLIconCtrl::Params& p)
 :	LLUICtrl(p),
 	mColor(p.color()),
 	mImagep(p.image),
-	mPriority(0)
+	mPriority(0),
+	mDrawWidth(0),
+	mDrawHeight(0)
 {
 	if (mImagep.notNull())
 	{
@@ -100,6 +102,8 @@ void LLIconCtrl::setValue(const LLSD& value )
 	{
 		mImagep = LLUI::getUIImage(tvalue.asString(), mPriority);
 	}
+
+	setIconImageDrawSize();
 }
 
 std::string LLIconCtrl::getImageName() const
@@ -109,3 +113,14 @@ std::string LLIconCtrl::getImageName() const
 	else
 		return std::string();
 }
+
+void LLIconCtrl::setIconImageDrawSize()
+{
+	if(mImagep.notNull() && mDrawWidth && mDrawHeight)
+	{
+		if(mImagep->getImage().notNull())
+		{
+			mImagep->getImage()->setKnownDrawSize(mDrawWidth, mDrawHeight) ;
+		}
+	}
+}
\ No newline at end of file
diff --git a/indra/llui/lliconctrl.h b/indra/llui/lliconctrl.h
index 90f1693060..66368f979b 100644
--- a/indra/llui/lliconctrl.h
+++ b/indra/llui/lliconctrl.h
@@ -60,6 +60,7 @@ public:
 protected:
 	LLIconCtrl(const Params&);
 	friend class LLUICtrlFactory;
+
 public:
 	virtual ~LLIconCtrl();
 
@@ -73,9 +74,16 @@ public:
 
 	void			setColor(const LLColor4& color) { mColor = color; }
 	
+private:
+	void setIconImageDrawSize() ;
+
 protected:
 	S32 mPriority;
 
+	//the output size of the icon image if set.
+	S32 mDrawWidth ;
+	S32 mDrawHeight ;
+
 private:
 	LLUIColor mColor;
 	LLPointer<LLUIImage> mImagep;
-- 
cgit v1.2.3