CHUI-448 FIXED p2p IM chat conversations show a participant list with a carat
parent
a337d7e597
commit
8828eb21e2
|
|
@ -260,7 +260,7 @@ public:
|
|||
|
||||
// virtual void handleDropped();
|
||||
virtual void draw();
|
||||
void drawOpenFolderArrow(const Params& default_params, const LLUIColor& fg_color);
|
||||
virtual void drawOpenFolderArrow(const Params& default_params, const LLUIColor& fg_color);
|
||||
void drawHighlight(const BOOL showContent, const BOOL hasKeyboardFocus, const LLUIColor &bgColor, const LLUIColor &outlineColor, const LLUIColor &mouseOverColor);
|
||||
void drawLabel(const LLFontGL * font, const F32 x, const F32 y, const LLColor4& color, F32 &right_x);
|
||||
virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
|
||||
|
|
|
|||
|
|
@ -344,6 +344,15 @@ void LLConversationViewSession::onCurrentVoiceSessionChanged(const LLUUID& sessi
|
|||
}
|
||||
}
|
||||
|
||||
void LLConversationViewSession::drawOpenFolderArrow(const LLFolderViewItem::Params& default_params, const LLUIColor& fg_color)
|
||||
{
|
||||
LLConversationItem * itemp = dynamic_cast<LLConversationItem*>(getViewModelItem());
|
||||
if (itemp && itemp->getType() != LLConversationItem::CONV_SESSION_1_ON_1)
|
||||
{
|
||||
LLFolderViewFolder::drawOpenFolderArrow(default_params, fg_color);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Implementation of conversations list participant (avatar) widgets
|
||||
//
|
||||
|
|
|
|||
|
|
@ -71,6 +71,8 @@ public:
|
|||
|
||||
/*virtual*/ bool isMinimized() { return mMinimizedMode; }
|
||||
|
||||
/*virtual*/ void drawOpenFolderArrow(const LLFolderViewItem::Params& default_params, const LLUIColor& fg_color);
|
||||
|
||||
void toggleMinimizedMode(bool is_minimized);
|
||||
|
||||
void setVisibleIfDetached(BOOL visible);
|
||||
|
|
|
|||
|
|
@ -424,15 +424,21 @@ bool LLIMFloaterContainer::onConversationModelEvent(const LLSD& event)
|
|||
LLConversationItemSession* session_model = dynamic_cast<LLConversationItemSession*>(mConversationsItems[session_id]);
|
||||
if (session_model)
|
||||
{
|
||||
LLConversationItemParticipant* participant_model = session_model->findParticipant(participant_id);
|
||||
if (participant_model)
|
||||
const LLUUID& uuid = session_model->getUUID();
|
||||
|
||||
LLIMModel::LLIMSession * im_sessionp = LLIMModel::getInstance()->findIMSession(uuid);
|
||||
|
||||
if (uuid.isNull() || im_sessionp && !im_sessionp->isP2PSessionType())
|
||||
{
|
||||
participant_view = createConversationViewParticipant(participant_model);
|
||||
participant_view->addToFolder(session_view);
|
||||
participant_view->setVisible(TRUE);
|
||||
LLConversationItemParticipant* participant_model = session_model->findParticipant(participant_id);
|
||||
if (participant_model)
|
||||
{
|
||||
participant_view = createConversationViewParticipant(participant_model);
|
||||
participant_view->addToFolder(session_view);
|
||||
participant_view->setVisible(TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if (type == "update_participant")
|
||||
|
|
@ -1175,17 +1181,22 @@ void LLIMFloaterContainer::addConversationListItem(const LLUUID& uuid, bool isWi
|
|||
// Add a new conversation widget to the root folder of the folder view
|
||||
widget->addToFolder(mConversationsRoot);
|
||||
widget->requestArrange();
|
||||
|
||||
|
||||
LLIMModel::LLIMSession * im_sessionp = LLIMModel::getInstance()->findIMSession(uuid);
|
||||
|
||||
// Create the participants widgets now
|
||||
// Note: usually, we do not get an updated avatar list at that point
|
||||
LLFolderViewModelItemCommon::child_list_t::const_iterator current_participant_model = item->getChildrenBegin();
|
||||
LLFolderViewModelItemCommon::child_list_t::const_iterator end_participant_model = item->getChildrenEnd();
|
||||
while (current_participant_model != end_participant_model)
|
||||
if (uuid.isNull() || im_sessionp && !im_sessionp->isP2PSessionType())
|
||||
{
|
||||
LLConversationItem* participant_model = dynamic_cast<LLConversationItem*>(*current_participant_model);
|
||||
LLConversationViewParticipant* participant_view = createConversationViewParticipant(participant_model);
|
||||
participant_view->addToFolder(widget);
|
||||
current_participant_model++;
|
||||
LLFolderViewModelItemCommon::child_list_t::const_iterator current_participant_model = item->getChildrenBegin();
|
||||
LLFolderViewModelItemCommon::child_list_t::const_iterator end_participant_model = item->getChildrenEnd();
|
||||
while (current_participant_model != end_participant_model)
|
||||
{
|
||||
LLConversationItem* participant_model = dynamic_cast<LLConversationItem*>(*current_participant_model);
|
||||
LLConversationViewParticipant* participant_view = createConversationViewParticipant(participant_model);
|
||||
participant_view->addToFolder(widget);
|
||||
current_participant_model++;
|
||||
}
|
||||
}
|
||||
|
||||
// set the widget to minimized mode if conversations pane is collapsed
|
||||
|
|
|
|||
Loading…
Reference in New Issue