Pull and merge from ssh://stinson@hg.lindenlab.com/richard/viewer-chui/.

master
William Todd Stinson 2012-11-07 10:43:08 -08:00
commit e73acc8dbd
5 changed files with 371 additions and 135 deletions

View File

@ -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,

View File

@ -133,6 +133,7 @@ BOOL LLConversationViewSession::postBuild()
LLGroupIconCtrl* icon = mItemPanel->getChild<LLGroupIconCtrl>("group_icon");
icon->setVisible(true);
mSpeakingIndicator->setSpeakerId(gAgentID, vmi->getUUID(), true);
break;
}
case LLConversationItem::CONV_SESSION_GROUP:
{
@ -343,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
//

View File

@ -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);

View File

@ -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

View File

@ -9,151 +9,364 @@
name="chat"
top="1"
width="517">
<text
follows="left|top"
layout="topleft"
left="30"
height="12"
name="font_size"
width="120"
top="10">
Font size:
</text>
<radio_group
height="30"
layout="topleft"
left="40"
control_name="ChatFontSize"
name="chat_font_size"
top_pad="0"
width="440">
<radio_item
height="16"
label="Small"
layout="topleft"
left="0"
name="radio"
value="0"
top="10"
width="125" />
<radio_item
height="16"
label="Medium"
layout="topleft"
left_delta="145"
name="radio2"
value="1"
top_delta="0"
width="125" />
<radio_item
height="16"
label="Large"
layout="topleft"
left_delta="170"
name="radio3"
value="2"
top_delta="0"
width="125" />
</radio_group>
<panel
border="false"
follows="left|top"
height="90"
layout="topleft"
top="10"
left="13"
width="517">
<check_box
control_name="PlayTypingAnim"
height="16"
initial_value="true"
label="Play typing animation when chatting"
layout="topleft"
left="30"
name="play_typing_animation"
top_pad="10"
width="400" />
control_name="PlayTypingAnim"
height="16"
initial_value="true"
label="Play typing animation when chatting"
layout="topleft"
top="0"
name="play_typing_animation"
width="330" />
<check_box
enabled="false"
height="16"
label="Email me IMs when I'm offline"
layout="topleft"
left_delta="0"
name="send_im_to_email"
top_pad="5"
width="400" />
top_pad="6"
width="330" />
<check_box
height="16"
label="Keep a conversation log and transcripts"
layout="topleft"
name="keep_convo_log_and_transcripts"
top_pad="6"
width="330" />
<check_box
control_name="UseChatBubbles"
follows="left|top"
height="16"
label="Bubble Chat"
layout="topleft"
left_delta="0"
top_pad="5"
top_pad="6"
name="bubble_text_chat"
width="150" />
width="330" />
<text
name="disable_toast_label"
follows="left|top"
layout="topleft"
top_pad="20"
left="30"
height="10"
width="400">
Enable incoming chat popups:
</text>
left="345"
height="12"
name="font_size"
width="120"
top="0">
Font size:
</text>
<radio_group
height="90"
layout="topleft"
left="352"
control_name="ChatFontSize"
name="chat_font_size"
top_pad="0"
width="50">
<radio_item
height="16"
label="Small"
layout="topleft"
name="radio"
value="0"
top="10"
width="125" />
<radio_item
height="16"
label="Medium"
layout="topleft"
name="radio2"
value="1"
top_pad="6"
width="125" />
<radio_item
height="16"
label="Large"
layout="topleft"
name="radio3"
value="2"
top_pad="6"
width="125" />
</radio_group>
</panel>
<panel
border="false"
follows="left|top"
height="193"
layout="topleft"
left="13"
width="517">
<text
follows="left|top"
layout="topleft"
height="12"
name="notifications"
left="0"
width="120">
Notifications:
</text>
<text
follows="left|top"
layout="topleft"
height="12"
name="friend_ims"
width="145"
left="0"
top_pad="15"
>
Friend IMs:
</text>
<combo_box
control_name="NotificationFriendIMOptions"
height="23"
layout="topleft"
left_pad="5"
top_delta="-6"
name="FriendIMOptions"
width="223">
<combo_box.item
label="Pop up the message"
name="0"
value="0"/>
<combo_box.item
label="Flash toolbar button"
name="1"
value="1"/>
<combo_box.item
label="None"
name="2"
value="2"/>
</combo_box>
<text
follows="left|top"
layout="topleft"
height="12"
name="non_friend_ims"
width="145"
left="0"
top_pad="15"
>
Non-friend IMs:
</text>
<combo_box
control_name="NotificationNonFriendIMOptions"
height="23"
layout="topleft"
left_pad="5"
top_delta="-6"
name="NonFriendIMOptions"
width="223">
<combo_box.item
label="Pop up the message"
name="0"
value="0"/>
<combo_box.item
label="Flash toolbar button"
name="1"
value="1"/>
<combo_box.item
label="None"
name="2"
value="2"/>
</combo_box>
<text
follows="left|top"
layout="topleft"
left="0"
height="13"
name="conference_ims"
width="145"
top_pad="14"
>
Conference IMs:
</text>
<combo_box
control_name="NotificationConferenceIMOptions"
height="23"
layout="topleft"
left_pad="5"
top_delta="-6"
name="ConferenceIMOptions"
width="223">
<combo_box.item
label="Pop up the message"
name="0"
value="0"/>
<combo_box.item
label="Flash toolbar button"
name="1"
value="1"/>
<combo_box.item
label="None"
name="2"
value="2"/>
</combo_box>
<text
follows="left|top"
layout="topleft"
left="0"
height="13"
name="group_chat"
width="145"
top_pad="14"
>
Group chat:
</text>
<combo_box
control_name="NotificationGroupChatOptions"
height="23"
layout="topleft"
left_pad="5"
top_delta="-6"
name="GroupChatOptions"
width="223">
<combo_box.item
label="Pop up the message"
name="0"
value="0"/>
<combo_box.item
label="Flash toolbar button"
name="1"
value="1"/>
<combo_box.item
label="None"
name="2"
value="2"/>
</combo_box>
<text
follows="left|top"
layout="topleft"
left="0"
height="12"
name="nearby_chat"
width="145"
top_pad="14"
>
Nearby chat:
</text>
<combo_box
control_name="NotificationNearbyChatOptions"
height="23"
layout="topleft"
left_pad="5"
top_delta="-6"
name="NearbyChatOptions"
width="223">
<combo_box.item
label="Pop up the message"
name="0"
value="0"/>
<combo_box.item
label="Flash toolbar button"
name="1"
value="1"/>
<combo_box.item
label="None"
name="2"
value="2"/>
</combo_box>
<text
follows="left|top"
layout="topleft"
left="0"
height="12"
name="notifications_alert"
width="350"
top_pad="11"
visible="true"
text_color="DrYellow"
>
To temporarily stop all notifications, use Me > Status > Busy.
</text>
</panel>
<panel
border="false"
follows="left|top"
height="1"
layout="topleft"
left="13"
width="517">
<text
follows="left|top"
layout="topleft"
left="0"
name="play_sound"
width="100"
top_pad="13"
visible="true">
Play sound:
</text>
<check_box
control_name="EnableGroupChatPopups"
name="EnableGroupChatPopups"
label="Group Chats"
layout="topleft"
top_pad="5"
left_delta="10"
height="20"
tool_tip="Check to see popups when a Group Chat message arrives"
width="400" />
control_name="NewConversation"
height="16"
initial_value="true"
label="New conversation"
layout="topleft"
left_pad="15"
top_pad="-10"
name="new_conversation"
width="150" />
<check_box
control_name="EnableIMChatPopups"
name="EnableIMChatPopups"
label="IM Chats"
layout="topleft"
top_pad="5"
height="16"
tool_tip="Check to see popups when an instant message arrives"
width="400" />
<spinner
control_name="NearbyToastLifeTime"
decimal_digits="0"
follows="left|top"
height="23"
increment="1"
initial_value="23"
label="Nearby chat toasts life time:"
label_width="285"
layout="topleft"
left="45"
max_val="60"
min_val="1"
name="nearby_toasts_lifetime"
top_pad="10"
width="325" />
<spinner
control_name="NearbyToastFadingTime"
decimal_digits="0"
follows="left|top"
height="23"
increment="1"
initial_value="3"
label="Nearby chat toasts fading time:"
label_width="285"
layout="topleft"
left_delta="0"
max_val="60"
min_val="0"
name="nearby_toasts_fadingtime"
top_pad="3"
width="325" />
control_name="IncomingVoiceCall"
height="16"
initial_value="true"
label="Incoming voice call"
layout="topleft"
top_pad="6"
name="incoming_voice_call"
width="150" />
<check_box
control_name="GroupChatMessages"
height="16"
initial_value="false"
label="Group chat messages"
layout="topleft"
top_pad="6"
name="group_chat_messages"
width="150" />
<check_box
control_name="TeleportOffer"
height="16"
initial_value="true"
label="Teleport offer"
layout="topleft"
left_pad="35"
top_pad="-59"
name="teleport_offer"
width="150" />
<check_box
control_name="InventoryOffer"
height="16"
initial_value="false"
label="Inventory offer"
layout="topleft"
top_pad="6"
name="inventory_offer"
width="150" />
</panel>
<button
follows="left|top"
height="23"
label="Translation..."
layout="topleft"
left="30"
left="9"
name="ok_btn"
top="-50"
top="-29"
width="170">
<button.commit_callback
function="Pref.TranslationSettings" />