diff options
author | Paul ProductEngine <pguslisty@productengine.com> | 2012-08-31 19:22:41 +0300 |
---|---|---|
committer | Paul ProductEngine <pguslisty@productengine.com> | 2012-08-31 19:22:41 +0300 |
commit | 73769180f363556d5517e3070fc4a2ac61e713d6 (patch) | |
tree | f6f0649d8b2b8344af91ff3011911a722236ebf8 /indra/newview/llconversationloglist.cpp | |
parent | c2bb1a189c5f4c2367ee38e03371b28948e3ea81 (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.cpp | 22 |
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); |