From eb880b2a559fe1103bef47fa3f6c7611a6c3cfbb Mon Sep 17 00:00:00 2001 From: Yuri Chebotarev Date: Tue, 5 Jan 2010 14:30:16 +0200 Subject: fix for low EXT-1649 Groups you chatted in recently show up in the Recent People tab --HG-- branch : product-engine --- indra/newview/llspeakers.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'indra/newview/llspeakers.cpp') diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index 010dfd1b33..cb04dca18d 100644 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -43,6 +43,7 @@ #include "llviewerobjectlist.h" #include "llvoavatar.h" #include "llworld.h" +#include "llrecentpeople.h" const F32 SPEAKER_TIMEOUT = 10.f; // seconds of not being on voice channel before removed from list of active speakers const LLColor4 INACTIVE_COLOR(0.3f, 0.3f, 0.3f, 0.5f); @@ -408,6 +409,8 @@ void LLSpeakerMgr::speakerChatted(const LLUUID& speaker_id) { speakerp->mLastSpokeTime = mSpeechTimer.getElapsedTimeF32(); speakerp->mHasSpoken = TRUE; + + LLRecentPeople::instance().add(speaker_id); } } -- cgit v1.3 From 71c0973a1eec0a58fcb143b268ac1069d16a4adb Mon Sep 17 00:00:00 2001 From: Yuri Chebotarev Date: Tue, 5 Jan 2010 17:56:13 +0200 Subject: more work on EXT-1649 Groups you chatted in recently show up in the Recent People tab previous place for adding recent people was wrong...move this to LLIMSession. --HG-- branch : product-engine --- indra/newview/llimview.cpp | 4 ++++ indra/newview/llspeakers.cpp | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'indra/newview/llspeakers.cpp') diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 8664f4ab4a..daabf1f717 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -382,6 +382,10 @@ void LLIMModel::LLIMSession::addMessage(const std::string& from, const LLUUID& f mSpeakers->speakerChatted(from_id); mSpeakers->setSpeakerTyping(from_id, FALSE); } + + if( mSessionType == P2P_SESSION || + mSessionType == ADHOC_SESSION) + LLRecentPeople::instance().add(from_id); } void LLIMModel::LLIMSession::addMessagesFromHistory(const std::list& history) diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index cb04dca18d..010dfd1b33 100644 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -43,7 +43,6 @@ #include "llviewerobjectlist.h" #include "llvoavatar.h" #include "llworld.h" -#include "llrecentpeople.h" const F32 SPEAKER_TIMEOUT = 10.f; // seconds of not being on voice channel before removed from list of active speakers const LLColor4 INACTIVE_COLOR(0.3f, 0.3f, 0.3f, 0.5f); @@ -409,8 +408,6 @@ void LLSpeakerMgr::speakerChatted(const LLUUID& speaker_id) { speakerp->mLastSpokeTime = mSpeechTimer.getElapsedTimeF32(); speakerp->mHasSpoken = TRUE; - - LLRecentPeople::instance().add(speaker_id); } } -- cgit v1.3 From fc785febb332442533c20b638132b8ab378732a9 Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Wed, 6 Jan 2010 17:13:12 +0200 Subject: Fixed normal bug EXT-3944 ('Error while moderating' dialog after disabling voice for non-connected participant avatar from miniinspector) - improved condition to check if avatar can be moderated. - if not moderation panel (with "Disable Voice" button) is not shown at all. --HG-- branch : product-engine --- indra/newview/llinspectavatar.cpp | 1 + indra/newview/llparticipantlist.cpp | 3 +-- indra/newview/llspeakers.cpp | 5 +++++ indra/newview/llspeakers.h | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) (limited to 'indra/newview/llspeakers.cpp') diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index 7f206cb873..72b36374dd 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -402,6 +402,7 @@ void LLInspectAvatar::updateModeratorPanel() LLPointer selected_speakerp = speaker_mgr->findSpeaker(mAvatarID); if(speaker_mgr->isVoiceActive() && selected_speakerp && + selected_speakerp->isInVoiceChannel() && ((self_speakerp && self_speakerp->mIsModerator) || gAgent.isGodlike())) { getChild("enable_voice")->setVisible(selected_speakerp->mModeratorMutedVoice); diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp index e2da4c4475..362454ee3c 100644 --- a/indra/newview/llparticipantlist.cpp +++ b/indra/newview/llparticipantlist.cpp @@ -592,8 +592,7 @@ bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD& if (speakerp.notNull()) { // not in voice participants can not be moderated - return speakerp->mStatus == LLSpeaker::STATUS_VOICE_ACTIVE - || speakerp->mStatus == LLSpeaker::STATUS_MUTED; + return speakerp->isInVoiceChannel(); } } return false; diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index 010dfd1b33..0dd9203c6d 100644 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -88,6 +88,11 @@ void LLSpeaker::onAvatarNameLookup(const LLUUID& id, const std::string& first, c mDisplayName = first + " " + last; } +bool LLSpeaker::isInVoiceChannel() +{ + return mStatus == LLSpeaker::STATUS_VOICE_ACTIVE || mStatus == LLSpeaker::STATUS_MUTED; +} + LLSpeakerUpdateModeratorEvent::LLSpeakerUpdateModeratorEvent(LLSpeaker* source) : LLEvent(source, "Speaker add moderator event"), mSpeakerID (source->mID), diff --git a/indra/newview/llspeakers.h b/indra/newview/llspeakers.h index 1a8c23f56a..da8dfdf548 100644 --- a/indra/newview/llspeakers.h +++ b/indra/newview/llspeakers.h @@ -67,6 +67,8 @@ public: void onAvatarNameLookup(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group); + bool isInVoiceChannel(); + ESpeakerStatus mStatus; // current activity status in speech group F32 mLastSpokeTime; // timestamp when this speaker last spoke F32 mSpeechVolume; // current speech amplitude (timea average rms amplitude?) -- cgit v1.3