summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llconversationmodel.cpp33
-rw-r--r--indra/newview/llconversationmodel.h16
-rw-r--r--indra/newview/llconversationview.cpp13
-rw-r--r--indra/newview/llconversationview.h14
-rw-r--r--indra/newview/llimfloatercontainer.cpp18
5 files changed, 83 insertions, 11 deletions
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index 832dc3c3e4..f54e6d2d48 100644
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
@@ -29,7 +29,10 @@
#include "llconversationmodel.h"
-// Conversation items
+//
+// Conversation items : common behaviors
+//
+
LLConversationItem::LLConversationItem(std::string display_name, const LLUUID& uuid, LLFolderViewModelInterface& root_view_model) :
LLFolderViewModelItemCommon(root_view_model),
mName(display_name),
@@ -73,4 +76,32 @@ bool LLConversationSort::operator()(const LLConversationItem* const& a, const LL
return (compare < 0);
}
+//
+// LLConversationItemSession
+//
+
+LLConversationItemSession::LLConversationItemSession(std::string display_name, const LLUUID& uuid, LLFolderViewModelInterface& root_view_model) :
+ LLConversationItem(display_name,uuid,root_view_model)
+{
+}
+
+LLConversationItemSession::LLConversationItemSession(LLFolderViewModelInterface& root_view_model) :
+ LLConversationItem(root_view_model)
+{
+}
+
+//
+// LLConversationItemParticipant
+//
+
+LLConversationItemParticipant::LLConversationItemParticipant(std::string display_name, const LLUUID& uuid, LLFolderViewModelInterface& root_view_model) :
+ LLConversationItem(display_name,uuid,root_view_model)
+{
+}
+
+LLConversationItemParticipant::LLConversationItemParticipant(LLFolderViewModelInterface& root_view_model) :
+ LLConversationItem(root_view_model)
+{
+}
+
// EOF
diff --git a/indra/newview/llconversationmodel.h b/indra/newview/llconversationmodel.h
index cb03128cac..fc2c600364 100644
--- a/indra/newview/llconversationmodel.h
+++ b/indra/newview/llconversationmodel.h
@@ -104,6 +104,22 @@ private:
const LLUUID mUUID;
};
+class LLConversationItemSession : public LLConversationItem
+{
+public:
+ LLConversationItemSession(std::string display_name, const LLUUID& uuid, LLFolderViewModelInterface& root_view_model);
+ LLConversationItemSession(LLFolderViewModelInterface& root_view_model);
+ virtual ~LLConversationItemSession() {}
+};
+
+class LLConversationItemParticipant : public LLConversationItem
+{
+public:
+ LLConversationItemParticipant(std::string display_name, const LLUUID& uuid, LLFolderViewModelInterface& root_view_model);
+ LLConversationItemParticipant(LLFolderViewModelInterface& root_view_model);
+ virtual ~LLConversationItemParticipant() {}
+};
+
// We don't want to ever filter conversations but we need to declare that class to create a conversation view model.
// We just stubb everything for the moment.
class LLConversationFilter : public LLFolderViewFilter
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 6cc911ecef..fefb7e9cac 100644
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -32,6 +32,10 @@
#include "llimconversation.h"
#include "llimfloatercontainer.h"
+//
+// Implementation of conversations list session widgets
+//
+
LLConversationViewSession::Params::Params() :
container()
{}
@@ -75,4 +79,13 @@ void LLConversationViewSession::setVisibleIfDetached(BOOL visible)
}
}
+//
+// Implementation of conversations list participant (avatar) widgets
+//
+
+LLConversationViewParticipant::LLConversationViewParticipant( const LLFolderViewItem::Params& p ):
+ LLFolderViewItem(p)
+{
+}
+
// EOF
diff --git a/indra/newview/llconversationview.h b/indra/newview/llconversationview.h
index 6a51e719c8..5695925f43 100644
--- a/indra/newview/llconversationview.h
+++ b/indra/newview/llconversationview.h
@@ -31,7 +31,7 @@
class LLIMFloaterContainer;
-// Implementation of conversations list widgets
+// Implementation of conversations list session widgets
class LLConversationViewSession : public LLFolderViewFolder
{
@@ -55,4 +55,16 @@ public:
void setVisibleIfDetached(BOOL visible);
};
+// Implementation of conversations list participant (avatar) widgets
+
+class LLConversationViewParticipant : public LLFolderViewItem
+{
+protected:
+ friend class LLUICtrlFactory;
+ LLConversationViewParticipant( const LLFolderViewItem::Params& p );
+
+public:
+ virtual ~LLConversationViewParticipant( void ) { }
+};
+
#endif // LL_LLCONVERSATIONVIEW_H
diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp
index 35b9f404c3..4d0bd623f8 100644
--- a/indra/newview/llimfloatercontainer.cpp
+++ b/indra/newview/llimfloatercontainer.cpp
@@ -328,11 +328,11 @@ void LLIMFloaterContainer::setVisible(BOOL visible)
// We need to show/hide all the associated conversations that have been torn off
// (and therefore, are not longer managed by the multifloater),
// so that they show/hide with the conversations manager.
- conversations_widgets_map::iterator item_it = mConversationsWidgets.begin();
- for (;item_it != mConversationsWidgets.end(); ++item_it)
+ conversations_widgets_map::iterator widget_it = mConversationsWidgets.begin();
+ for (;widget_it != mConversationsWidgets.end(); ++widget_it)
{
- LLConversationViewSession* item = dynamic_cast<LLConversationViewSession*>(item_it->second);
- item->setVisibleIfDetached(visible);
+ LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(widget_it->second);
+ widget->setVisibleIfDetached(visible);
}
// Now, do the normal multifloater show/hide
@@ -471,7 +471,7 @@ void LLIMFloaterContainer::addConversationListItem(const LLUUID& uuid)
removeConversationListItem(uuid,false);
// Create a conversation item
- LLConversationItem* item = new LLConversationItem(display_name, uuid, getRootViewModel());
+ LLConversationItem* item = new LLConversationItemSession(display_name, uuid, getRootViewModel());
mConversationsItems[uuid] = item;
// Create a widget from it
@@ -513,11 +513,11 @@ void LLIMFloaterContainer::removeConversationListItem(const LLUUID& uuid, bool c
if (change_focus)
{
setFocus(TRUE);
- conversations_items_map::iterator item_it = mConversationsItems.begin();
- if (item_it != mConversationsItems.end())
+ conversations_widgets_map::iterator widget_it = mConversationsWidgets.begin();
+ if (widget_it != mConversationsWidgets.end())
{
- LLConversationItem* item = item_it->second;
- item->selectItem();
+ LLFolderViewItem* widget = widget_it->second;
+ widget->selectItem();
}
}
}