summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/llconversationview.cpp86
-rwxr-xr-xindra/newview/llconversationview.h8
-rw-r--r--indra/newview/llimconversation.cpp24
-rw-r--r--indra/newview/llimconversation.h2
-rw-r--r--indra/newview/llimfloater.cpp13
-rw-r--r--indra/newview/llimfloater.h3
-rw-r--r--indra/newview/llimfloatercontainer.cpp83
-rw-r--r--indra/newview/llimfloatercontainer.h2
-rw-r--r--indra/newview/llimview.cpp9
-rw-r--r--indra/newview/llnearbychat.cpp18
-rw-r--r--indra/newview/llnearbychat.h1
-rw-r--r--indra/newview/llviewerfloaterreg.cpp1
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_add_person.pngbin322 -> 373 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_arrow_ne.pngbin301 -> 215 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_arrow_sw.pngbin293 -> 211 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_close.pngbin262 -> 275 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_collapse.pngbin663 -> 345 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_expand.pngbin662 -> 342 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_hang_up.pngbin460 -> 459 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_open_call.pngbin485 -> 366 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_plus.pngbin195 -> 144 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Conv_toolbar_sort.pngbin196 -> 230 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/nearby_chat_icon.pngbin553 -> 399 bytes
-rw-r--r--indra/newview/skins/default/xui/en/panel_conversation_list_item.xml6
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_chat.xml449
25 files changed, 488 insertions, 217 deletions
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index de0c65e24f..34b5976e3e 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:
{
@@ -202,6 +203,17 @@ void LLConversationViewSession::draw()
LLView::draw();
}
+BOOL LLConversationViewSession::handleMouseDown( S32 x, S32 y, MASK mask )
+{
+ LLConversationItem* item = dynamic_cast<LLConversationItem *>(getViewModelItem());
+ LLUUID session_id = item? item->getUUID() : LLUUID();
+
+ (LLFloaterReg::getTypedInstance<LLIMFloaterContainer>("im_container"))->
+ selectConversationPair(session_id, false);
+
+ return LLFolderViewFolder::handleMouseDown(x, y, mask);
+}
+
// virtual
S32 LLConversationViewSession::arrange(S32* width, S32* height)
{
@@ -232,29 +244,6 @@ void LLConversationViewSession::toggleOpen()
}
}
-void LLConversationViewSession::selectItem()
-{
-
- LLConversationItem* item = dynamic_cast<LLConversationItem*>(mViewModelItem);
- LLFloater* session_floater = LLIMConversation::getConversation(item->getUUID());
- LLMultiFloater* host_floater = session_floater->getHost();
-
- if (host_floater == mContainer)
- {
- // Always expand the message pane if the panel is hosted by the container
- mContainer->collapseMessagesPane(false);
- // Switch to the conversation floater that is being selected
- mContainer->selectFloater(session_floater);
- }
-
- // Set the focus on the selected floater
- session_floater->setFocus(TRUE);
- // Store the active session
- LLIMFloaterContainer::getInstance()->setSelectedSession(item->getUUID());
-
-
- LLFolderViewItem::selectItem();
-}
void LLConversationViewSession::toggleMinimizedMode(bool is_minimized)
{
@@ -343,6 +332,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
//
@@ -431,31 +429,6 @@ void LLConversationViewParticipant::draw()
LLView::draw();
}
-void LLConversationViewParticipant::selectItem()
-{
- LLConversationItem* vmi = this->getParentFolder() ? static_cast<LLConversationItem*>(this->getParentFolder()->getViewModelItem()) : NULL;
- LLIMFloaterContainer* container = LLIMFloaterContainer::getInstance();
- LLFloater* session_floater;
-
- if(vmi)
- {
- session_floater = LLIMConversation::getConversation(vmi->getUUID());
-
- //Only execute when switching floaters (conversations)
- if(vmi->getUUID() != container->getSelectedSession())
- {
- container->selectFloater(session_floater);
- // Store the active session
- container->setSelectedSession(vmi->getUUID());
- }
-
- //Redirect focus to the conversation floater
- session_floater->setFocus(TRUE);
- }
-
- LLFolderViewItem::selectItem();
-}
-
void LLConversationViewParticipant::refresh()
{
// Refresh the participant view from its model data
@@ -504,6 +477,23 @@ void LLConversationViewParticipant::onMouseLeave(S32 x, S32 y, MASK mask)
LLFolderViewItem::onMouseLeave(x, y, mask);
}
+BOOL LLConversationViewParticipant::handleMouseDown( S32 x, S32 y, MASK mask )
+{
+ LLConversationItem* item = NULL;
+ LLConversationViewSession* session_widget =
+ dynamic_cast<LLConversationViewSession *>(this->getParentFolder());
+ if (session_widget)
+ {
+ item = dynamic_cast<LLConversationItem*>(session_widget->getViewModelItem());
+ }
+ LLUUID session_id = item? item->getUUID() : LLUUID();
+
+ (LLFloaterReg::getTypedInstance<LLIMFloaterContainer>("im_container"))->
+ selectConversationPair(session_id, false);
+
+ return LLFolderViewItem::handleMouseDown(x, y, mask);
+}
+
S32 LLConversationViewParticipant::getLabelXPos()
{
return mAvatarIcon->getRect().mRight + mIconPad;
diff --git a/indra/newview/llconversationview.h b/indra/newview/llconversationview.h
index 4d77a4ade0..ac91d2d26f 100755
--- a/indra/newview/llconversationview.h
+++ b/indra/newview/llconversationview.h
@@ -60,10 +60,10 @@ protected:
public:
virtual ~LLConversationViewSession();
- virtual void selectItem();
/*virtual*/ BOOL postBuild();
/*virtual*/ void draw();
+ /*virtual*/ BOOL handleMouseDown( S32 x, S32 y, MASK mask );
/*virtual*/ S32 arrange(S32* width, S32* height);
@@ -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);
@@ -115,11 +117,13 @@ public:
};
virtual ~LLConversationViewParticipant( void ) { }
- void selectItem();
+
bool hasSameValue(const LLUUID& uuid) { return (uuid == mUUID); }
virtual void refresh();
void addToFolder(LLFolderViewFolder* folder);
+ /*virtual*/ BOOL handleMouseDown( S32 x, S32 y, MASK mask );
+
void onMouseEnter(S32 x, S32 y, MASK mask);
void onMouseLeave(S32 x, S32 y, MASK mask);
diff --git a/indra/newview/llimconversation.cpp b/indra/newview/llimconversation.cpp
index 44cf300930..51e4fbfe19 100644
--- a/indra/newview/llimconversation.cpp
+++ b/indra/newview/llimconversation.cpp
@@ -54,6 +54,7 @@ LLIMConversation::LLIMConversation(const LLSD& session_id)
, mInputEditor(NULL)
, mInputEditorTopPad(0)
, mRefreshTimer(new LLTimer())
+ , mIsHostAttached(false)
{
mSession = LLIMModel::getInstance()->findIMSession(mSessionID);
@@ -127,6 +128,22 @@ void LLIMConversation::setVisible(BOOL visible)
setFocus(visible);
}
+/*virtual*/
+void LLIMConversation::setFocus(BOOL focus)
+{
+ LLTransientDockableFloater::setFocus(focus);
+
+ //Redirect focus to input editor
+ if (focus)
+ {
+ updateMessages();
+
+ if (mInputEditor)
+ {
+ mInputEditor->setFocus(TRUE);
+ }
+ }
+}
void LLIMConversation::addToHost(const LLUUID& session_id)
@@ -242,7 +259,6 @@ void LLIMConversation::enableDisableCallBtn()
&& mSession->mCallBackEnabled);
}
-
void LLIMConversation::onFocusReceived()
{
setBackgroundOpaque(true);
@@ -253,6 +269,12 @@ void LLIMConversation::onFocusReceived()
}
LLTransientDockableFloater::onFocusReceived();
+
+ LLIMFloaterContainer* container = LLFloaterReg::getTypedInstance<LLIMFloaterContainer>("im_container");
+ if (container)
+ {
+ container->selectConversationPair(mSessionID, true);
+ }
}
void LLIMConversation::onFocusLost()
diff --git a/indra/newview/llimconversation.h b/indra/newview/llimconversation.h
index bff4cb4a31..d1e2bfff55 100644
--- a/indra/newview/llimconversation.h
+++ b/indra/newview/llimconversation.h
@@ -79,7 +79,9 @@ public:
/*virtual*/ BOOL postBuild();
/*virtual*/ void draw();
/*virtual*/ void setVisible(BOOL visible);
+ /*virtual*/ void setFocus(BOOL focus);
+ virtual void updateMessages() {}
protected:
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 3545b8ff18..2ff883da67 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -671,19 +671,6 @@ void LLIMFloater::setDocked(bool docked, bool pop_on_undock)
}
}
-void LLIMFloater::setFocus(BOOL focusFlag)
-{
- LLTransientDockableFloater::setFocus(focusFlag);
-
- //Redirect focus to input editor
- if (focusFlag)
- {
- updateMessages();
- mInputEditor->setFocus(TRUE);
- }
-
-}
-
void LLIMFloater::setVisible(BOOL visible)
{
LLNotificationsUI::LLScreenChannel* channel = static_cast<LLNotificationsUI::LLScreenChannel*>
diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h
index 6c69ed3462..1fae3cff50 100644
--- a/indra/newview/llimfloater.h
+++ b/indra/newview/llimfloater.h
@@ -65,7 +65,6 @@ public:
// LLView overrides
/*virtual*/ BOOL postBuild();
- /*virtual*/ void setFocus(BOOL focusFlag);
/*virtual*/ void setVisible(BOOL visible);
/*virtual*/ BOOL getVisible();
// Check typing timeout timer.
@@ -86,7 +85,7 @@ public:
void sessionInitReplyReceived(const LLUUID& im_session_id);
// get new messages from LLIMModel
- void updateMessages();
+ /*virtual*/ void updateMessages();
void reloadMessages();
static void onSendMsg(LLUICtrl*, void*);
void sendMsgFromInputEditor();
diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp
index c9cd013317..df2491acbd 100644
--- a/indra/newview/llimfloatercontainer.cpp
+++ b/indra/newview/llimfloatercontainer.cpp
@@ -331,6 +331,7 @@ void LLIMFloaterContainer::onExpandCollapseButtonClicked()
{
collapseConversationsPane(!mConversationsPane->isCollapsed());
}
+ selectConversation(mSelectedSession);
}
LLIMFloaterContainer* LLIMFloaterContainer::findInstance()
@@ -423,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")
@@ -1084,6 +1091,47 @@ void LLIMFloaterContainer::selectConversation(const LLUUID& session_id)
}
}
+// Synchronous select the conversation item and the conversation floater
+BOOL LLIMFloaterContainer::selectConversationPair(const LLUUID& session_id, bool select_widget)
+{
+ BOOL handled = TRUE;
+
+ /* widget processing */
+ if (select_widget)
+ {
+ LLFolderViewItem* widget = mConversationsWidgets[session_id];
+ if (widget && widget->getParentFolder())
+ {
+ widget->getParentFolder()->setSelection(widget, FALSE, FALSE);
+ }
+ }
+
+ /* floater processing */
+
+ if (session_id != getSelectedSession())
+ {
+ // Store the active session
+ setSelectedSession(session_id);
+
+ LLIMConversation* session_floater = LLIMConversation::getConversation(session_id);
+
+ if (session_floater->getHost())
+ {
+ // Always expand the message pane if the panel is hosted by the container
+ collapseMessagesPane(false);
+ // Switch to the conversation floater that is being selected
+ selectFloater(session_floater);
+ }
+
+ // Set the focus on the selected floater
+ if (!session_floater->hasFocus())
+ {
+ session_floater->setFocus(TRUE);
+ }
+ }
+
+ return handled;
+}
void LLIMFloaterContainer::setTimeNow(const LLUUID& session_id, const LLUUID& participant_id)
{
@@ -1174,17 +1222,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/llimfloatercontainer.h b/indra/newview/llimfloatercontainer.h
index 16218fc287..691bc39811 100644
--- a/indra/newview/llimfloatercontainer.h
+++ b/indra/newview/llimfloatercontainer.h
@@ -68,6 +68,8 @@ public:
void showConversation(const LLUUID& session_id);
void selectConversation(const LLUUID& session_id);
+ BOOL selectConversationPair(const LLUUID& session_id, bool select_widget);
+
/*virtual*/ void tabClose();
static LLFloater* getCurrentVoiceFloater();
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index d5f1e81933..11337c358f 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -121,7 +121,14 @@ void toast_callback(const LLSD& msg){
// Skip toasting if we have open window of IM with this session id
LLIMFloater* open_im_floater = LLIMFloater::findInstance(msg["session_id"]);
- if (open_im_floater && open_im_floater->isInVisibleChain() && open_im_floater->hasFocus())
+ if (
+ open_im_floater
+ && open_im_floater->isInVisibleChain()
+ && open_im_floater->hasFocus()
+ && !open_im_floater->isMinimized()
+ && !(open_im_floater->getHost()
+ && open_im_floater->getHost()->isMinimized())
+ )
{
return;
}
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index cf42fcb91a..dbdf460785 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -195,8 +195,13 @@ BOOL LLNearbyChat::handleMouseDown(S32 x, S32 y, MASK mask)
//background opaque. This all happenn since NearByChat is "chrome" and didn't process focus change.
if(mChatHistory)
+ {
mChatHistory->setFocus(TRUE);
- return LLPanel::handleMouseDown(x, y, mask);
+ }
+
+ BOOL handled = LLPanel::handleMouseDown(x, y, mask);
+ setFocus(handled);
+ return handled;
}
void LLNearbyChat::reloadMessages()
@@ -270,17 +275,6 @@ void LLNearbyChat::removeScreenChat()
}
}
-void LLNearbyChat::setFocus(BOOL focusFlag)
-{
- LLTransientDockableFloater::setFocus(focusFlag);
-
- //Redirect focus to input editor
- if (focusFlag)
- {
- mInputEditor->setFocus(TRUE);
- }
-
-}
void LLNearbyChat::setVisible(BOOL visible)
{
diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h
index a6c4439b1d..c6a2637e8f 100644
--- a/indra/newview/llnearbychat.h
+++ b/indra/newview/llnearbychat.h
@@ -53,7 +53,6 @@ public:
/*virtual*/ BOOL postBuild();
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void onClose(bool app_quitting);
- /*virtual*/ void setFocus(BOOL focusFlag);
/*virtual*/ void setVisible(BOOL visible);
void loadHistory();
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index c751550523..a4d45e1fb8 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -322,7 +322,6 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("upload_script", "floater_script_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterScriptPreview>, "upload");
LLFloaterReg::add("upload_sound", "floater_sound_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSoundPreview>, "upload");
- LLFloaterReg::add("voice_controls", "floater_voice_controls.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLCallFloater>);
LLFloaterReg::add("voice_effect", "floater_voice_effect.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterVoiceEffect>);
LLFloaterReg::add("web_content", "floater_web_content.xml", (LLFloaterBuildFunc)&LLFloaterWebContent::create);
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_add_person.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_add_person.png
index f024c733f3..0631f16f3b 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_add_person.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_add_person.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_arrow_ne.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_arrow_ne.png
index a19e720d42..578482f5ed 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_arrow_ne.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_arrow_ne.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_arrow_sw.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_arrow_sw.png
index 7f3f42639d..7676131790 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_arrow_sw.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_arrow_sw.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_close.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_close.png
index 25a939d7f5..d009c8f446 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_close.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_close.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_collapse.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_collapse.png
index 82baabde47..8d82960e28 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_collapse.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_collapse.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_expand.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_expand.png
index 7d64abb042..f718d3fc60 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_expand.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_expand.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_hang_up.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_hang_up.png
index f0da962c2d..315e2c581a 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_hang_up.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_hang_up.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_open_call.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_open_call.png
index 0db001dcdb..732ab02a20 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_open_call.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_open_call.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_plus.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_plus.png
index 0cf7edc2d4..25a32cb2ba 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_plus.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_plus.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_toolbar_sort.png b/indra/newview/skins/default/textures/icons/Conv_toolbar_sort.png
index a0c15a6d3e..08debeb91f 100755
--- a/indra/newview/skins/default/textures/icons/Conv_toolbar_sort.png
+++ b/indra/newview/skins/default/textures/icons/Conv_toolbar_sort.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/nearby_chat_icon.png b/indra/newview/skins/default/textures/icons/nearby_chat_icon.png
index 48c2379133..5ac4258b9d 100644
--- a/indra/newview/skins/default/textures/icons/nearby_chat_icon.png
+++ b/indra/newview/skins/default/textures/icons/nearby_chat_icon.png
Binary files differ
diff --git a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml
index 56056ed560..67feade9a3 100644
--- a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml
@@ -54,14 +54,14 @@
visible="false"
width="20">
<icon
- height="20"
+ height="18"
follows="top|right|left"
image_name="Conv_toolbar_open_call"
layout="topleft"
left="0"
name="selected_icon"
- top="2"
- width="20" />
+ top="3"
+ width="18" />
</layout_panel>
<layout_panel
auto_resize="true"
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" />