summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorWilliam Todd Stinson <stinson@lindenlab.com>2012-11-07 10:43:08 -0800
committerWilliam Todd Stinson <stinson@lindenlab.com>2012-11-07 10:43:08 -0800
commite73acc8dbdd3f86b217f744eb48a33dfa2c72f9e (patch)
tree48bccf868a1629099dc5001ea3b99a5afaa86737 /indra
parent18011db7f0b60e4ec499e3cbdda4e4f716f458a2 (diff)
parent8828eb21e2a8960bbcfd4edb2d113dbada7d4a5d (diff)
Pull and merge from ssh://stinson@hg.lindenlab.com/richard/viewer-chui/.
Diffstat (limited to 'indra')
-rwxr-xr-xindra/llui/llfolderviewitem.h2
-rwxr-xr-xindra/newview/llconversationview.cpp10
-rwxr-xr-xindra/newview/llconversationview.h2
-rw-r--r--indra/newview/llimfloatercontainer.cpp41
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_chat.xml449
5 files changed, 370 insertions, 134 deletions
diff --git a/indra/llui/llfolderviewitem.h b/indra/llui/llfolderviewitem.h
index 7cbe70fb8b..8bb73bcf5d 100755
--- a/indra/llui/llfolderviewitem.h
+++ b/indra/llui/llfolderviewitem.h
@@ -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,
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index de0c65e24f..2d3a008bf4 100755
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -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
//
diff --git a/indra/newview/llconversationview.h b/indra/newview/llconversationview.h
index 4d77a4ade0..aeca747260 100755
--- a/indra/newview/llconversationview.h
+++ b/indra/newview/llconversationview.h
@@ -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);
diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp
index 52deae445b..af43b1ac38 100644
--- a/indra/newview/llimfloatercontainer.cpp
+++ b/indra/newview/llimfloatercontainer.cpp
@@ -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)
- {
- LLConversationItem* participant_model = dynamic_cast<LLConversationItem*>(*current_participant_model);
- LLConversationViewParticipant* participant_view = createConversationViewParticipant(participant_model);
- participant_view->addToFolder(widget);
- current_participant_model++;
+ if (uuid.isNull() || im_sessionp && !im_sessionp->isP2PSessionType())
+ {
+ 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
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
index c76a3cfaaf..28434a670e 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
@@ -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>
- <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" />
- <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"
+ 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"
- 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"
+ height="12"
+ name="notifications"
+ left="0"
+ width="120">
+ Notifications:
+ </text>
+ <text
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" />
+ 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="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="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" />