summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llbottomtray.cpp4
-rw-r--r--indra/newview/llbottomtray.h2
-rw-r--r--indra/newview/llchiclet.cpp18
-rw-r--r--indra/newview/llchiclet.h2
4 files changed, 24 insertions, 2 deletions
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 8389895479..6f2e666cc7 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -215,6 +215,10 @@ void LLBottomTray::onNewIM(const LLSD& data)
}
}
+S32 LLBottomTray::getTotalUnreadIMCount()
+{
+ return getChicletPanel()->getTotalUnreadIMCount();
+}
// virtual
void LLBottomTray::onChange(EStatusType status, const std::string &channelURI, bool proximal)
diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h
index 209fa7cca1..5cd3f15746 100644
--- a/indra/newview/llbottomtray.h
+++ b/indra/newview/llbottomtray.h
@@ -77,6 +77,8 @@ public:
void onNewIM(const LLSD& data);
+ S32 getTotalUnreadIMCount();
+
virtual void reshape(S32 width, S32 height, BOOL called_from_parent);
virtual void onFocusLost();
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index c7f77810df..c6fe076911 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -250,8 +250,7 @@ LLIMWellChiclet::~LLIMWellChiclet()
void LLIMWellChiclet::messageCountChanged(const LLSD& session_data)
{
- S32 total_unread = LLIMMgr::instance().getNumberOfUnreadParticipantMessages();
- setCounter(total_unread);
+ setCounter(LLBottomTray::getInstance()->getTotalUnreadIMCount());
}
/************************************************************************/
@@ -1529,6 +1528,21 @@ bool LLChicletPanel::isAnyIMFloaterDoked()
return res;
}
+S32 LLChicletPanel::getTotalUnreadIMCount()
+{
+ S32 count = 0;
+ chiclet_list_t::const_iterator it = mChicletList.begin();
+ for( ; mChicletList.end() != it; ++it)
+ {
+ LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*it);
+ if(chiclet)
+ {
+ count += chiclet->getCounter();
+ }
+ }
+ return count;
+}
+
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
index 353fc01c34..b3341f78a8 100644
--- a/indra/newview/llchiclet.h
+++ b/indra/newview/llchiclet.h
@@ -963,6 +963,8 @@ public:
S32 getMinWidth() const { return mMinWidth; }
+ S32 getTotalUnreadIMCount();
+
protected:
LLChicletPanel(const Params&p);
friend class LLUICtrlFactory;