diff options
author | angela <angela@lindenlab.com> | 2010-03-03 13:52:14 +0800 |
---|---|---|
committer | angela <angela@lindenlab.com> | 2010-03-03 13:52:14 +0800 |
commit | 5777dfaae6268dffee83d7a457c024b1a89f81ff (patch) | |
tree | 063583a1f9f7441356814be5891e6a7bcc61b9d4 /indra/newview/llimview.cpp | |
parent | 70cc2d6974d034055e177a16c9fccc3b7b5e7c63 (diff) | |
parent | 3c443a9287f5827316f96a14316f53e3919c57ac (diff) |
merge
Diffstat (limited to 'indra/newview/llimview.cpp')
-rw-r--r-- | indra/newview/llimview.cpp | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index e87399abab..1dc601e260 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -952,7 +952,42 @@ void LLIMModel::sendMessage(const std::string& utf8_text, } // Add the recipient to the recent people list. - LLRecentPeople::instance().add(other_participant_id); + bool is_not_group_id = LLGroupMgr::getInstance()->getGroupData(other_participant_id) == NULL; + + if (is_not_group_id) + { + +#if 0 + //use this code to add only online members + LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(im_session_id); + LLSpeakerMgr::speaker_list_t speaker_list; + speaker_mgr->getSpeakerList(&speaker_list, true); + for(LLSpeakerMgr::speaker_list_t::iterator it = speaker_list.begin(); it != speaker_list.end(); it++) + { + const LLPointer<LLSpeaker>& speakerp = *it; + + LLRecentPeople::instance().add(speakerp->mID); + } +#else + LLIMModel::LLIMSession* session = LLIMModel::getInstance()->findIMSession(im_session_id); + if( session == 0)//??? shouldn't really happen + { + LLRecentPeople::instance().add(other_participant_id); + } + else + { + for(std::vector<LLUUID>::iterator it = session->mInitialTargetIDs.begin(); + it!=session->mInitialTargetIDs.end();++it) + { + const LLUUID id = *it; + + LLRecentPeople::instance().add(id); + } + } +#endif + } + + } void session_starter_helper( |