summaryrefslogtreecommitdiff
path: root/indra/newview/llconversationmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llconversationmodel.cpp')
-rw-r--r--indra/newview/llconversationmodel.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index 9fa8758d11..1057dbaf31 100644
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
@@ -27,6 +27,7 @@
#include "llviewerprecompiledheaders.h"
+#include "llevents.h"
#include "llconversationmodel.h"
//
@@ -63,6 +64,18 @@ LLConversationItem::LLConversationItem(LLFolderViewModelInterface& root_view_mod
{
}
+void LLConversationItem::postEvent(const std::string& event_type)
+{
+ LLSD event;
+ event["pump"] = "ConversationModelEvent";
+ LLSD payload;
+ payload["type"] = event_type;
+ payload["name"] = getName();
+ payload["uuid"] = getUUID();
+ event["payload"] = payload;
+ LLEventPumps::instance().obtain("ConversationsEvents").post(event);
+}
+
// Virtual action callbacks
void LLConversationItem::performAction(LLInventoryModel* model, std::string action)
{
@@ -111,12 +124,14 @@ void LLConversationItemSession::addParticipant(LLConversationItemParticipant* pa
addChild(participant);
mIsLoaded = true;
mNeedsRefresh = true;
+ postEvent("add_participant");
}
void LLConversationItemSession::removeParticipant(LLConversationItemParticipant* participant)
{
removeChild(participant);
mNeedsRefresh = true;
+ postEvent("remove_participant");
}
void LLConversationItemSession::removeParticipant(const LLUUID& participant_id)
@@ -254,6 +269,7 @@ void LLConversationItemParticipant::onAvatarNameCache(const LLAvatarName& av_nam
mName = (av_name.mUsername.empty() ? av_name.mDisplayName : av_name.mUsername);
mDisplayName = (av_name.mDisplayName.empty() ? av_name.mUsername : av_name.mDisplayName);
mNeedsRefresh = true;
+ postEvent("update_participant");
if (mParent)
{
mParent->requestSort();