summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorMike Antipov <mantipov@productengine.com>2010-02-24 10:59:52 +0200
committerMike Antipov <mantipov@productengine.com>2010-02-24 10:59:52 +0200
commit022c433d53538350d840125de2733c639261cd4d (patch)
tree3b418e20dbf30f34451fcae3cd0e5a8cf637c467 /indra/newview
parent1f8fb3f3bae92b9e632b8793ce4d8f59f9dfc1aa (diff)
Work on major bug EXT-5562 (Misleading Active Voice Indicators in Group Chat Window, when Speakers are in Spatial Chat Only)
- implemented passing of target session UUID for which registered indicator should be shown only. --HG-- branch : product-engine
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llavatarlist.cpp2
-rw-r--r--indra/newview/llavatarlist.h3
-rw-r--r--indra/newview/llavatarlistitem.cpp4
-rw-r--r--indra/newview/llavatarlistitem.h2
-rw-r--r--indra/newview/lloutputmonitorctrl.cpp2
-rw-r--r--indra/newview/llparticipantlist.cpp2
6 files changed, 10 insertions, 5 deletions
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index 6784e6693b..50d8672083 100644
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -329,7 +329,7 @@ void LLAvatarList::addNewItem(const LLUUID& id, const std::string& name, BOOL is
{
LLAvatarListItem* item = new LLAvatarListItem();
item->setName(name);
- item->setAvatarId(id, mIgnoreOnlineStatus);
+ item->setAvatarId(id, mSessionID, mIgnoreOnlineStatus);
item->setOnline(mIgnoreOnlineStatus ? true : is_online);
item->showLastInteractionTime(mShowLastInteractionTime);
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index aeed4fee08..0e4215e91a 100644
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -78,6 +78,8 @@ public:
bool contains(const LLUUID& id);
void setContextMenu(LLAvatarListItem::ContextMenu* menu) { mContextMenu = menu; }
+ void setSessionID(const LLUUID& session_id) { mSessionID = session_id; }
+ const LLUUID& getSessionID() { return mSessionID; }
void toggleIcons();
void setSpeakingIndicatorsVisible(bool visible);
@@ -119,6 +121,7 @@ private:
std::string mIconParamName;
std::string mNameFilter;
uuid_vector_t mIDs;
+ LLUUID mSessionID;
LLAvatarListItem::ContextMenu* mContextMenu;
diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp
index 5011b191f4..9645e75e60 100644
--- a/indra/newview/llavatarlistitem.cpp
+++ b/indra/newview/llavatarlistitem.cpp
@@ -211,14 +211,14 @@ void LLAvatarListItem::setState(EItemState item_style)
mAvatarIcon->setColor(item_icon_color_map[item_style]);
}
-void LLAvatarListItem::setAvatarId(const LLUUID& id, bool ignore_status_changes)
+void LLAvatarListItem::setAvatarId(const LLUUID& id, const LLUUID& session_id, bool ignore_status_changes)
{
if (mAvatarId.notNull())
LLAvatarTracker::instance().removeParticularFriendObserver(mAvatarId, this);
mAvatarId = id;
mAvatarIcon->setValue(id);
- mSpeakingIndicator->setSpeakerId(id);
+ mSpeakingIndicator->setSpeakerId(id, session_id);
// We'll be notified on avatar online status changes
if (!ignore_status_changes && mAvatarId.notNull())
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
index 426d80e0a8..cecb64add7 100644
--- a/indra/newview/llavatarlistitem.h
+++ b/indra/newview/llavatarlistitem.h
@@ -100,7 +100,7 @@ public:
void setName(const std::string& name);
void setHighlight(const std::string& highlight);
void setState(EItemState item_style);
- void setAvatarId(const LLUUID& id, bool ignore_status_changes = false);
+ void setAvatarId(const LLUUID& id, const LLUUID& session_id, bool ignore_status_changes = false);
void setLastInteractionTime(U32 secs_since);
//Show/hide profile/info btn, translating speaker indicator and avatar name coordinates accordingly
void setShowProfileBtn(bool show);
diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp
index f2253f89aa..28d24f80fd 100644
--- a/indra/newview/lloutputmonitorctrl.cpp
+++ b/indra/newview/lloutputmonitorctrl.cpp
@@ -263,7 +263,7 @@ void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id, const LLUUID& s
}
mSpeakerId = speaker_id;
- LLSpeakingIndicatorManager::registerSpeakingIndicator(mSpeakerId, this);
+ LLSpeakingIndicatorManager::registerSpeakingIndicator(mSpeakerId, this, session_id);
//mute management
if (mAutoUpdate)
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index 1c4004c37a..2748daaffa 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -70,6 +70,8 @@ LLParticipantList::LLParticipantList(LLSpeakerMgr* data_source, LLAvatarList* av
mSpeakerMgr->addListener(mSpeakerModeratorListener, "update_moderator");
mAvatarList->setNoItemsCommentText(LLTrans::getString("LoadingData"));
+ LL_DEBUGS("SpeakingIndicator") << "Set session for speaking indicators: " << mSpeakerMgr->getSessionID() << LL_ENDL;
+ mAvatarList->setSessionID(mSpeakerMgr->getSessionID());
mAvatarListDoubleClickConnection = mAvatarList->setItemDoubleClickCallback(boost::bind(&LLParticipantList::onAvatarListDoubleClicked, this, _1));
mAvatarListRefreshConnection = mAvatarList->setRefreshCompleteCallback(boost::bind(&LLParticipantList::onAvatarListRefreshed, this, _1, _2));
// Set onAvatarListDoubleClicked as default on_return action.