From 0be99ec115a8bd3f55c39725201106d044474109 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Sat, 25 Sep 2010 10:00:25 +0100 Subject: Backed out changeset 8ab901af1241 Was causing LEAP-2 (forensics by Boroondas) --- indra/newview/llimview.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'indra/newview/llimview.cpp') diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 7a81efeed7..493398c68a 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -622,10 +622,7 @@ bool LLIMModel::newSession(const LLUUID& session_id, const std::string& name, co LLIMSession* session = new LLIMSession(session_id, name, type, other_participant_id, ids, voice); mId2SessionMap[session_id] = session; - // When notifying observer, name of session is used instead of "name", because they may not be the - // same if it is an adhoc session (in this case name is localized in LLIMSession constructor). - std::string session_name = LLIMModel::getInstance()->getName(session_id); - LLIMMgr::getInstance()->notifyObserverSessionAdded(session_id, session_name, other_participant_id); + LLIMMgr::getInstance()->notifyObserverSessionAdded(session_id, name, other_participant_id); return true; @@ -2280,9 +2277,6 @@ void LLIMMgr::addMessage( if (new_session) { LLIMModel::getInstance()->newSession(new_session_id, fixed_session_name, dialog, other_participant_id); - // When addidng messages further here, name of session is used instead of "name", because they may not be the - // same if it is an adhoc session (in this case name is localized in LLIMSession constructor). - fixed_session_name = LLIMModel::getInstance()->getName(new_session_id); // When we get a new IM, and if you are a god, display a bit // of information about the source. This is to help liaisons @@ -2302,13 +2296,13 @@ void LLIMMgr::addMessage( //<< "*** region_id: " << region_id << std::endl //<< "*** position: " << position << std::endl; - LLIMModel::instance().addMessage(new_session_id, fixed_session_name, other_participant_id, bonus_info.str()); + LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, bonus_info.str()); } make_ui_sound("UISndNewIncomingIMSession"); } - LLIMModel::instance().addMessage(new_session_id, fixed_session_name, other_participant_id, msg); + LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, msg); } void LLIMMgr::addSystemMessage(const LLUUID& session_id, const std::string& message_name, const LLSD& args) -- cgit v1.2.3 From 09ef4a2417f8400b03185adec859edd76e59823a Mon Sep 17 00:00:00 2001 From: Andrew Productengine Date: Mon, 27 Sep 2010 18:18:03 +0300 Subject: STORM-153 ADDITIONAL FIX Properly fixed unlocalized chiclet tooltip and syswell session names for adhoc. Bug was caused by using unlocalized name of session as argument in LLIMModel::newSession() after the session name was localized in constructor. - Used correct session name in LLIMModel::newSession(). Adding similar logic to addMessage() turned out to be unnecessary and also caused regression (VWR-23180), so previous fix of the same bug(8ab901af1241) was backed out in 28ed1b4cf4cd. Erroneous part was excluded from this fix. --- indra/newview/llimview.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'indra/newview/llimview.cpp') diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 493398c68a..494b5d1e56 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -622,7 +622,10 @@ bool LLIMModel::newSession(const LLUUID& session_id, const std::string& name, co LLIMSession* session = new LLIMSession(session_id, name, type, other_participant_id, ids, voice); mId2SessionMap[session_id] = session; - LLIMMgr::getInstance()->notifyObserverSessionAdded(session_id, name, other_participant_id); + // When notifying observer, name of session is used instead of "name", because they may not be the + // same if it is an adhoc session (in this case name is localized in LLIMSession constructor). + std::string session_name = LLIMModel::getInstance()->getName(session_id); + LLIMMgr::getInstance()->notifyObserverSessionAdded(session_id, session_name, other_participant_id); return true; -- cgit v1.2.3 From 2d6db708f41681268235e3c616414d9d1391a25b Mon Sep 17 00:00:00 2001 From: Andrew Productengine Date: Mon, 27 Sep 2010 22:30:50 +0300 Subject: STORM-210 FIXED Implemented adding of ad-hoc call participans in Recent. Both offline and online users are added. It is done in LLVoiceChannelGroup::activate(), where TODO for it was placed earlier. To avoid code duplication when adding users from speakers list to Recent, a new method was added to LLIMModel. --- indra/newview/llimview.cpp | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) (limited to 'indra/newview/llimview.cpp') diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 494b5d1e56..01e1c3caa0 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -495,6 +495,11 @@ LLIMModel::LLIMSession* LLIMModel::findAdHocIMSession(const uuid_vec_t& ids) return NULL; } +bool LLIMModel::LLIMSession::isOutgoingAdHoc() +{ + return IM_SESSION_CONFERENCE_START == mType; +} + bool LLIMModel::LLIMSession::isAdHoc() { return IM_SESSION_CONFERENCE_START == mType || (IM_SESSION_INVITE == mType && !gAgent.isInGroup(mSessionID)); @@ -1032,24 +1037,25 @@ void LLIMModel::sendMessage(const std::string& utf8_text, // to Recent People to prevent showing of an item with (???)(???). See EXT-8246. // Concrete participants will be added into this list once they sent message in chat. if (IM_SESSION_INVITE == dialog) return; - // Add only online members to recent (EXT-8658) - LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(im_session_id); - LLSpeakerMgr::speaker_list_t speaker_list; - if(speaker_mgr != NULL) - { - speaker_mgr->getSpeakerList(&speaker_list, true); - } - for(LLSpeakerMgr::speaker_list_t::iterator it = speaker_list.begin(); it != speaker_list.end(); it++) - { - const LLPointer& speakerp = *it; - - LLRecentPeople::instance().add(speakerp->mID); - } + addSpeakersToRecent(im_session_id); } } +} - +void LLIMModel::addSpeakersToRecent(const LLUUID& im_session_id) +{ + LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(im_session_id); + LLSpeakerMgr::speaker_list_t speaker_list; + if(speaker_mgr != NULL) + { + speaker_mgr->getSpeakerList(&speaker_list, true); + } + for(LLSpeakerMgr::speaker_list_t::iterator it = speaker_list.begin(); it != speaker_list.end(); it++) + { + const LLPointer& speakerp = *it; + LLRecentPeople::instance().add(speakerp->mID); + } } void session_starter_helper( -- cgit v1.2.3