summaryrefslogtreecommitdiff
path: root/indra/newview/llconversationloglist.cpp
diff options
context:
space:
mode:
authorPaul ProductEngine <pguslisty@productengine.com>2012-08-31 19:22:41 +0300
committerPaul ProductEngine <pguslisty@productengine.com>2012-08-31 19:22:41 +0300
commit73769180f363556d5517e3070fc4a2ac61e713d6 (patch)
treef6f0649d8b2b8344af91ff3011911a722236ebf8 /indra/newview/llconversationloglist.cpp
parentc2bb1a189c5f4c2367ee38e03371b28948e3ea81 (diff)
CHUI-298 FIXED (Conversation started as an IM and then goes to voice call does not show as call in conversation log)
- Show voice icon when call is started - Added flag LLConversation::mIsConversationPast which means that this conversation is finished and any of its data can't be changed. I.e. it cannot be reused. - When session removed (i.e. finished) corresponding conversation is marked as Past conversation. I.e. mIsConversationPast is true. - Added changed(const LLUUID& session_id, U32 mask) method to LLConversationLog to notify particular conversation. This is used in LLConversationLogList to update its particular item and not to rebuild the whole list.
Diffstat (limited to 'indra/newview/llconversationloglist.cpp')
-rw-r--r--indra/newview/llconversationloglist.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/newview/llconversationloglist.cpp b/indra/newview/llconversationloglist.cpp
index 94be9055bd..d39e090c22 100644
--- a/indra/newview/llconversationloglist.cpp
+++ b/indra/newview/llconversationloglist.cpp
@@ -141,6 +141,28 @@ void LLConversationLogList::changed()
refresh();
}
+void LLConversationLogList::changed(const LLUUID& session_id, U32 mask)
+{
+ if (mask & LLConversationLogObserver::VOICE_STATE)
+ {
+ std::vector<LLPanel*> panels;
+ LLFlatListViewEx::getItems(panels);
+
+ std::vector<LLPanel*>::iterator iter = panels.begin();
+
+ for (; iter != panels.end(); ++iter)
+ {
+ LLConversationLogListItem* item = dynamic_cast<LLConversationLogListItem*>(*iter);
+
+ if (item && session_id == item->getConversation()->getSessionID() && !item->getConversation()->isConversationPast())
+ {
+ item->initIcons();
+ return;
+ }
+ }
+ }
+}
+
void LLConversationLogList::addNewItem(const LLConversation* conversation)
{
LLConversationLogListItem* item = new LLConversationLogListItem(&*conversation);