summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/CMakeLists.txt3
-rw-r--r--indra/newview/llavataractions.cpp4
-rw-r--r--indra/newview/llchathistory.cpp29
-rw-r--r--indra/newview/llchathistory.h21
-rw-r--r--indra/newview/llchiclet.cpp4
-rw-r--r--indra/newview/llimview.cpp1
-rw-r--r--indra/newview/lljoystickbutton.cpp29
-rw-r--r--indra/newview/lljoystickbutton.h2
-rw-r--r--indra/newview/llnearbychat.cpp10
-rw-r--r--indra/newview/llnotificationhandler.h24
-rw-r--r--indra/newview/llnotificationmanager.cpp3
-rw-r--r--indra/newview/llnotificationofferhandler.cpp153
-rw-r--r--indra/newview/llnotificationscripthandler.cpp5
-rw-r--r--indra/newview/llpanelgroup.cpp4
-rw-r--r--indra/newview/llpanellandmarks.cpp20
-rw-r--r--indra/newview/llpanelpeople.cpp2
-rw-r--r--indra/newview/llpanelpick.cpp2
-rw-r--r--indra/newview/llpanelplaceprofile.cpp69
-rw-r--r--indra/newview/llpanelteleporthistory.cpp16
-rw-r--r--indra/newview/llscreenchannel.h3
-rw-r--r--indra/newview/llsyswellwindow.cpp1
-rw-r--r--indra/newview/llviewermenu.cpp22
-rw-r--r--indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml7
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml32
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml8
-rw-r--r--indra/newview/skins/default/xui/en/panel_chat_header.xml85
-rw-r--r--indra/newview/skins/default/xui/en/panel_chat_separator.xml16
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_pick.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_profile.xml8
-rw-r--r--indra/newview/skins/default/xui/en/panel_landmark_info.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_navigation_bar.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_place_profile.xml56
-rw-r--r--indra/newview/skins/default/xui/en/panel_teleport_history_item.xml11
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chat_history.xml4
34 files changed, 457 insertions, 204 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 2978ef210f..cba9b09dc0 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -238,7 +238,6 @@ set(viewer_SOURCE_FILES
llhudrender.cpp
llhudtext.cpp
llhudview.cpp
- llimcontrolpanel.cpp
llimfloater.cpp
llimhandler.cpp
llimpanel.cpp
@@ -291,6 +290,7 @@ set(viewer_SOURCE_FILES
llnotificationalerthandler.cpp
llnotificationgrouphandler.cpp
llnotificationmanager.cpp
+ llnotificationofferhandler.cpp
llnotificationscripthandler.cpp
llnotificationtiphandler.cpp
llnotify.cpp
@@ -727,7 +727,6 @@ set(viewer_HEADER_FILES
llhudrender.h
llhudtext.h
llhudview.h
- llimcontrolpanel.h
llimfloater.h
llimpanel.h
llimview.h
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index 97e0aa5f46..67ffe54b7e 100644
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -57,6 +57,7 @@
#include "llviewerobjectlist.h"
#include "llviewermessage.h" // for handle_lure
#include "llviewerregion.h"
+#include "llimfloater.h"
// static
@@ -176,7 +177,8 @@ void LLAvatarActions::startIM(const LLUUID& id)
std::string name;
gCacheName->getFullName(id, name);
- gIMMgr->addSession(name, IM_NOTHING_SPECIAL, id);
+ LLUUID session_id = gIMMgr->addSession(name, IM_NOTHING_SPECIAL, id);
+ LLIMFloater::show(session_id);
make_ui_sound("UISndStartIM");
}
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index e561507e69..2ccd6b7d35 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -132,8 +132,7 @@ public:
menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_object_icon.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
mPopupMenuHandleObject = menu->getHandle();
- LLPanel* visible_panel = getChild<LLPanel>("im_header");
- visible_panel->setMouseDownCallback(boost::bind(&LLChatHistoryHeader::onHeaderPanelClick, this, _2, _3, _4));
+ setMouseDownCallback(boost::bind(&LLChatHistoryHeader::onHeaderPanelClick, this, _2, _3, _4));
return LLPanel::postBuild();
}
@@ -290,7 +289,11 @@ mMessageSeparatorFilename(p.message_separator),
mLeftTextPad(p.left_text_pad),
mRightTextPad(p.right_text_pad),
mLeftWidgetPad(p.left_widget_pad),
-mRightWidgetPad(p.right_widget_pad)
+mRightWidgetPad(p.right_widget_pad),
+mTopSeparatorPad(p.top_separator_pad),
+mBottomSeparatorPad(p.bottom_separator_pad),
+mTopHeaderPad(p.top_header_pad),
+mBottomHeaderPad(p.bottom_header_pad)
{
}
@@ -332,16 +335,30 @@ void LLChatHistory::appendWidgetMessage(const LLChat& chat, LLStyle::Params& sty
LLView* view = NULL;
std::string view_text;
+ LLInlineViewSegment::Params p;
+ p.force_newline = true;
+ p.left_pad = mLeftWidgetPad;
+ p.right_pad = mRightWidgetPad;
+
if (mLastFromName == chat.mFromName)
{
view = getSeparator();
view_text = "\n";
+ p.top_pad = mTopSeparatorPad;
+ p.bottom_pad = mBottomSeparatorPad;
}
else
{
view = getHeader(chat);
view_text = chat.mFromName + MESSAGE_USERNAME_DATE_SEPARATOR + formatCurrentTime() + '\n';
+ if (getText().size() == 0)
+ p.top_pad = 0;
+ else
+ p.top_pad = mTopHeaderPad;
+ p.bottom_pad = mBottomHeaderPad;
}
+ p.view = view;
+
//Prepare the rect for the view
LLRect target_rect = getDocumentView()->getRect();
// squeeze down the widget by subtracting padding off left and right
@@ -350,12 +367,6 @@ void LLChatHistory::appendWidgetMessage(const LLChat& chat, LLStyle::Params& sty
view->reshape(target_rect.getWidth(), view->getRect().getHeight());
view->setOrigin(target_rect.mLeft, view->getRect().mBottom);
- LLInlineViewSegment::Params p;
- p.view = view;
- p.force_newline = true;
- p.left_pad = mLeftWidgetPad;
- p.right_pad = mRightWidgetPad;
-
appendWidget(p, view_text, false);
//Append the text message
diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h
index 92dcfdd958..3789ebff4e 100644
--- a/indra/newview/llchathistory.h
+++ b/indra/newview/llchathistory.h
@@ -54,6 +54,14 @@ class LLChatHistory : public LLTextEditor
Optional<S32> left_widget_pad;
//Widget right padding from the scroll rect
Optional<S32> right_widget_pad;
+ //Separator top padding
+ Optional<S32> top_separator_pad;
+ //Separator bottom padding
+ Optional<S32> bottom_separator_pad;
+ //Header top padding
+ Optional<S32> top_header_pad;
+ //Header bottom padding
+ Optional<S32> bottom_header_pad;
Params()
: message_header("message_header"),
@@ -61,7 +69,11 @@ class LLChatHistory : public LLTextEditor
left_text_pad("left_text_pad"),
right_text_pad("right_text_pad"),
left_widget_pad("left_widget_pad"),
- right_widget_pad("right_widget_pad")
+ right_widget_pad("right_widget_pad"),
+ top_separator_pad("top_separator_pad"),
+ bottom_separator_pad("bottom_separator_pad"),
+ top_header_pad("top_header_pad"),
+ bottom_header_pad("bottom_header_pad")
{
}
@@ -105,9 +117,16 @@ class LLChatHistory : public LLTextEditor
std::string mLastFromName;
std::string mMessageHeaderFilename;
std::string mMessageSeparatorFilename;
+
S32 mLeftTextPad;
S32 mRightTextPad;
+
S32 mLeftWidgetPad;
S32 mRightWidgetPad;
+
+ S32 mTopSeparatorPad;
+ S32 mBottomSeparatorPad;
+ S32 mTopHeaderPad;
+ S32 mBottomHeaderPad;
};
#endif /* LLCHATHISTORY_H_ */
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 0f259b885c..53c4bb32ca 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -211,7 +211,7 @@ LLIMChiclet::LLIMChiclet(const LLIMChiclet::Params& p)
LLRect chiclet_rect = p.rect;
LLRect overlay_icon_rect = LLRect(chiclet_rect.getWidth()/2, chiclet_rect.mTop, chiclet_rect.mRight, chiclet_rect.getHeight()/2);
// shift an icon a little bit to the right and up corner of a chiclet
- overlay_icon_rect.translate(overlay_icon_rect.getWidth()/4, overlay_icon_rect.getHeight()/4);
+ overlay_icon_rect.translate(overlay_icon_rect.getWidth()/5, overlay_icon_rect.getHeight()/5);
mNewMessagesIcon->setRect(overlay_icon_rect);
addChild(mNewMessagesIcon);
@@ -246,8 +246,6 @@ BOOL LLIMChiclet::handleMouseDown(S32 x, S32 y, MASK mask)
void LLIMChiclet::draw()
{
LLUICtrl::draw();
-
- gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.0f,0.0f,0.0f,1.f), FALSE);
}
// static
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 66a3e3e85c..7e8701bf21 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -1604,7 +1604,6 @@ LLUUID LLIMMgr::addSession(
LLIMModel::getInstance()->newSession(session_id, name, dialog, other_participant_id, ids);
}
- LLIMFloater::show(session_id);
//*TODO remove this "floater" thing when Communicate Floater's gone
LLFloaterIMPanel* floater = findFloaterBySession(session_id);
diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp
index 4fd3b7bddc..bd6702a0b2 100644
--- a/indra/newview/lljoystickbutton.cpp
+++ b/indra/newview/lljoystickbutton.cpp
@@ -517,43 +517,52 @@ void LLJoystickCameraRotate::draw()
LLGLSUIDefault gls_ui;
getImageUnselected()->draw( 0, 0 );
+ LLPointer<LLUIImage> image = getImageSelected();
if( mInTop )
{
- drawRotatedImage( getImageSelected()->getImage(), 0 );
+ drawRotatedImage( getImageSelected(), 0 );
}
if( mInRight )
{
- drawRotatedImage( getImageSelected()->getImage(), 1 );
+ drawRotatedImage( getImageSelected(), 1 );
}
if( mInBottom )
{
- drawRotatedImage( getImageSelected()->getImage(), 2 );
+ drawRotatedImage( getImageSelected(), 2 );
}
if( mInLeft )
{
- drawRotatedImage( getImageSelected()->getImage(), 3 );
+ drawRotatedImage( getImageSelected(), 3 );
}
}
// Draws image rotated by multiples of 90 degrees
-void LLJoystickCameraRotate::drawRotatedImage( LLTexture* image, S32 rotations )
+void LLJoystickCameraRotate::drawRotatedImage( LLPointer<LLUIImage> image, S32 rotations )
{
S32 width = image->getWidth();
S32 height = image->getHeight();
-
+ LLTexture* texture = image->getImage();
+
+ /*
+ * Scale texture coordinate system
+ * to handle the different between image size and size of texture.
+ * If we will use default matrix,
+ * it may break texture mapping after rotation.
+ * see EXT-2023 Camera floater: arrows became shifted when pressed.
+ */
F32 uv[][2] =
{
- { 1.f, 1.f },
- { 0.f, 1.f },
+ { (F32)width/texture->getWidth(), (F32)height/texture->getHeight() },
+ { 0.f, (F32)height/texture->getHeight() },
{ 0.f, 0.f },
- { 1.f, 0.f }
+ { (F32)width/texture->getWidth(), 0.f }
};
- gGL.getTexUnit(0)->bind(image);
+ gGL.getTexUnit(0)->bind(texture);
gGL.color4fv(UI_VERTEX_COLOR.mV);
diff --git a/indra/newview/lljoystickbutton.h b/indra/newview/lljoystickbutton.h
index 8caef30fa4..4c657913b8 100644
--- a/indra/newview/lljoystickbutton.h
+++ b/indra/newview/lljoystickbutton.h
@@ -150,7 +150,7 @@ public:
protected:
F32 getOrbitRate();
virtual void updateSlop();
- void drawRotatedImage( LLTexture* image, S32 rotations );
+ void drawRotatedImage( LLPointer<LLUIImage> image, S32 rotations );
protected:
BOOL mInLeft;
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 81d033d7f9..974291a54e 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -61,7 +61,7 @@
static const S32 RESIZE_BAR_THICKNESS = 3;
LLNearbyChat::LLNearbyChat(const LLSD& key)
- : LLDockableFloater(NULL, key)
+ : LLDockableFloater(NULL, false, key)
,mChatHistory(NULL)
{
@@ -107,12 +107,14 @@ BOOL LLNearbyChat::postBuild()
void LLNearbyChat::applySavedVariables()
{
-
if (mRectControl.size() > 1)
{
const LLRect& rect = LLUI::sSettingGroups["floater"]->getRect(mRectControl);
- reshape(rect.getWidth(), rect.getHeight());
- setRect(rect);
+ if(!rect.isEmpty() && rect.isValid())
+ {
+ reshape(rect.getWidth(), rect.getHeight());
+ setRect(rect);
+ }
}
diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h
index cd4e640ec4..23998a0e5d 100644
--- a/indra/newview/llnotificationhandler.h
+++ b/indra/newview/llnotificationhandler.h
@@ -53,7 +53,8 @@ typedef enum e_notification_type
NT_GROUPCHAT,
NT_NEARBYCHAT,
NT_ALERT,
- NT_ALERTMODAL
+ NT_ALERTMODAL,
+ NT_OFFER
} ENotificationType;
/**
@@ -231,6 +232,27 @@ protected:
bool mIsModal;
};
+/**
+ * Handler for offers notices.
+ * It manages life time of offer notices.
+ */
+class LLOfferHandler : public LLSysHandler
+{
+public:
+ LLOfferHandler(e_notification_type type, const LLSD& id);
+ virtual ~LLOfferHandler();
+
+ // base interface functions
+ virtual bool processNotification(const LLSD& notify);
+
+protected:
+ virtual void onDeleteToast(LLToast* toast);
+ virtual void initChannel();
+
+ // own handlers
+ void onRejectToast(LLUUID& id);
+};
+
}
#endif
diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp
index 81a6b32917..1083cf3634 100644
--- a/indra/newview/llnotificationmanager.cpp
+++ b/indra/newview/llnotificationmanager.cpp
@@ -63,6 +63,7 @@ void LLNotificationManager::init()
LLNotificationChannel::buildChannel("Alerts", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alert"));
LLNotificationChannel::buildChannel("AlertModal", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alertmodal"));
LLNotificationChannel::buildChannel("IM Notifications", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "notifytoast"));
+ LLNotificationChannel::buildChannel("Offer", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "offer"));
LLNotifications::instance().getChannel("Notifications")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
LLNotifications::instance().getChannel("NotificationTips")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
@@ -70,6 +71,7 @@ void LLNotificationManager::init()
LLNotifications::instance().getChannel("Alerts")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
LLNotifications::instance().getChannel("AlertModal")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
LLNotifications::instance().getChannel("IM Notifications")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
+ LLNotifications::instance().getChannel("Offer")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
mNotifyHandlers["notify"] = boost::shared_ptr<LLEventHandler>(new LLScriptHandler(NT_NOTIFY, LLSD()));
mNotifyHandlers["notifytip"] = boost::shared_ptr<LLEventHandler>(new LLTipHandler(NT_NOTIFY, LLSD()));
@@ -80,6 +82,7 @@ void LLNotificationManager::init()
mNotifyHandlers["notifytoast"] = boost::shared_ptr<LLEventHandler>(new LLIMHandler(NT_IMCHAT, LLSD()));
mNotifyHandlers["nearbychat"] = boost::shared_ptr<LLEventHandler>(new LLNearbyChatHandler(NT_NEARBYCHAT, LLSD()));
+ mNotifyHandlers["offer"] = boost::shared_ptr<LLEventHandler>(new LLOfferHandler(NT_OFFER, LLSD()));
}
//--------------------------------------------------------------------------
diff --git a/indra/newview/llnotificationofferhandler.cpp b/indra/newview/llnotificationofferhandler.cpp
new file mode 100644
index 0000000000..8e3a44682c
--- /dev/null
+++ b/indra/newview/llnotificationofferhandler.cpp
@@ -0,0 +1,153 @@
+/**
+ * @file llnotificationofferhandler.cpp
+ * @brief Notification Handler Class for Simple Notifications and Notification Tips
+ *
+ * $LicenseInfo:firstyear=2000&license=viewergpl$
+ *
+ * Copyright (c) 2000-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+
+#include "llviewerprecompiledheaders.h" // must be first include
+
+#include "llnotificationhandler.h"
+#include "lltoastnotifypanel.h"
+#include "llviewercontrol.h"
+#include "llviewerwindow.h"
+#include "llimview.h"
+#include "llimfloater.h"
+#include "llnotificationmanager.h"
+
+using namespace LLNotificationsUI;
+
+//--------------------------------------------------------------------------
+LLOfferHandler::LLOfferHandler(e_notification_type type, const LLSD& id)
+{
+ mType = type;
+
+ // Getting a Channel for our notifications
+ mChannel = LLChannelManager::getInstance()->createNotificationChannel();
+ mChannel->setControlHovering(true);
+
+ LLScreenChannel* channel = dynamic_cast<LLScreenChannel*>(mChannel);
+ if(channel)
+ channel->setOnRejectToastCallback(boost::bind(&LLOfferHandler::onRejectToast, this, _1));
+}
+
+//--------------------------------------------------------------------------
+LLOfferHandler::~LLOfferHandler()
+{
+}
+
+//--------------------------------------------------------------------------
+void LLOfferHandler::initChannel()
+{
+ S32 channel_right_bound = gViewerWindow->getWorldViewRect().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
+ S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
+ mChannel->init(channel_right_bound - channel_width, channel_right_bound);
+}
+
+//--------------------------------------------------------------------------
+bool LLOfferHandler::processNotification(const LLSD& notify)
+{
+ if(!mChannel)
+ {
+ return false;
+ }
+
+ LLNotificationPtr notification = LLNotifications::instance().find(notify["id"].asUUID());
+
+ if(!notification)
+ return false;
+
+ // arrange a channel on a screen
+ if(!mChannel->getVisible())
+ {
+ initChannel();
+ }
+
+ if(notify["sigtype"].asString() == "add" || notify["sigtype"].asString() == "change")
+ {
+ // add message to IM
+ LLUUID session_id = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, notification->getPayload()["from_id"]);
+ if (!LLIMMgr::instance().hasSession(session_id))
+ {
+ // create session with faked type to avoid creating chicklets
+ session_id = LLIMMgr::instance().addSession(
+ notification->getSubstitutions()["NAME"], IM_NOTHING_SPECIAL,
+ notification->getPayload()["from_id"]);
+ }
+ LLIMMgr::instance().addMessage(session_id, LLUUID(),
+ notification->getSubstitutions()["NAME"],
+ notification->getMessage());
+
+ LLToastNotifyPanel* notify_box = new LLToastNotifyPanel(notification);
+
+ LLToast::Params p;
+ p.notif_id = notification->getID();
+ p.notification = notification;
+ p.panel = notify_box;
+ p.on_delete_toast = boost::bind(&LLOfferHandler::onDeleteToast, this, _1);
+
+ LLScreenChannel* channel = dynamic_cast<LLScreenChannel*>(mChannel);
+ if(channel)
+ channel->addToast(p);
+
+ // send a signal to the counter manager
+ mNewNotificationSignal();
+ }
+ else if (notify["sigtype"].asString() == "delete")
+ {
+ mChannel->killToastByNotificationID(notification->getID());
+ }
+
+ return true;
+}
+
+//--------------------------------------------------------------------------
+
+void LLOfferHandler::onDeleteToast(LLToast* toast)
+{
+ // send a signal to the counter manager
+ mDelNotificationSignal();
+
+ // send a signal to a listener to let him perform some action
+ // in this case listener is a SysWellWindow and it will remove a corresponding item from its list
+ mNotificationIDSignal(toast->getNotificationID());
+}
+
+//--------------------------------------------------------------------------
+void LLOfferHandler::onRejectToast(LLUUID& id)
+{
+ LLNotificationPtr notification = LLNotifications::instance().find(id);
+
+ if (notification
+ && LLNotificationManager::getInstance()->getHandlerForNotification(
+ notification->getType()) == this)
+ {
+ LLNotifications::instance().cancel(notification);
+ }
+}
diff --git a/indra/newview/llnotificationscripthandler.cpp b/indra/newview/llnotificationscripthandler.cpp
index 070af432d6..dac7a4ca3a 100644
--- a/indra/newview/llnotificationscripthandler.cpp
+++ b/indra/newview/llnotificationscripthandler.cpp
@@ -37,6 +37,7 @@
#include "lltoastnotifypanel.h"
#include "llviewercontrol.h"
#include "llviewerwindow.h"
+#include "llnotificationmanager.h"
using namespace LLNotificationsUI;
@@ -129,7 +130,9 @@ void LLScriptHandler::onRejectToast(LLUUID& id)
{
LLNotificationPtr notification = LLNotifications::instance().find(id);
- if(notification)
+ if (notification
+ && LLNotificationManager::getInstance()->getHandlerForNotification(
+ notification->getType()) == this)
{
LLNotifications::instance().cancel(notification);
}
diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index 10f015774a..61f2396168 100644
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
@@ -291,6 +291,7 @@ void LLPanelGroup::update(LLGroupChange gc)
if(gdatap)
{
childSetValue("group_name", gdatap->mName);
+ childSetToolTip("group_name",gdatap->mName);
LLButton* btn_join = getChild<LLButton>("btn_join");
LLUICtrl* join_text = getChild<LLUICtrl>("join_cost_text");
@@ -337,7 +338,10 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mID);
if(gdatap)
+ {
childSetValue("group_name", gdatap->mName);
+ childSetToolTip("group_name",gdatap->mName);
+ }
LLButton* button_apply = findChild<LLButton>("btn_apply");
LLButton* button_refresh = findChild<LLButton>("btn_refresh");
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
index 1ad4327b76..c516546282 100644
--- a/indra/newview/llpanellandmarks.cpp
+++ b/indra/newview/llpanellandmarks.cpp
@@ -101,6 +101,8 @@ BOOL LLLandmarksPanel::postBuild()
initLandmarksInventroyPanel();
initMyInventroyPanel();
initLibraryInventroyPanel();
+ getChild<LLAccordionCtrlTab>("tab_favorites")->setDisplayChildren(true);
+ getChild<LLAccordionCtrlTab>("tab_landmarks")->setDisplayChildren(true);
gIdleCallbacks.addFunction(LLLandmarksPanel::doIdle, this);
return TRUE;
@@ -422,6 +424,7 @@ void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLIn
mAccordionTabs.push_back(accordion_tab);
accordion_tab->setDropDownStateChangedCallback(
boost::bind(&LLLandmarksPanel::onAccordionExpandedCollapsed, this, _2, inventory_list));
+ accordion_tab->setDisplayChildren(false);
}
void LLLandmarksPanel::onAccordionExpandedCollapsed(const LLSD& param, LLInventorySubTreePanel* inventory_list)
@@ -618,21 +621,19 @@ void LLLandmarksPanel::onClipboardAction(const LLSD& userdata) const
void LLLandmarksPanel::onFoldingAction(const LLSD& userdata)
{
- LLFolderView* landmarks_folder = mLandmarksInventoryPanel->getRootFolder();
- LLFolderView* fav_folder = mFavoritesInventoryPanel->getRootFolder();
+ if(!mCurrentSelectedList) return;
+
+ LLFolderView* root_folder = mCurrentSelectedList->getRootFolder();
std::string command_name = userdata.asString();
if ("expand_all" == command_name)
{
- landmarks_folder->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_DOWN);
- fav_folder->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_DOWN);
- landmarks_folder->arrangeAll();
- fav_folder->arrangeAll();
+ root_folder->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_DOWN);
+ root_folder->arrangeAll();
}
else if ("collapse_all" == command_name)
{
- landmarks_folder->closeAllFolders();
- fav_folder->closeAllFolders();
+ root_folder->closeAllFolders();
}
else if ( "sort_by_date" == command_name)
{
@@ -643,9 +644,6 @@ void LLLandmarksPanel::onFoldingAction(const LLSD& userdata)
}
else
{
- if(!mCurrentSelectedList) return;
-
- LLFolderView* root_folder = mCurrentSelectedList->getRootFolder();
root_folder->doToSelected(&gInventory, userdata);
}
}
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index 2f8fae0f5d..c8bb3d5353 100644
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -454,7 +454,7 @@ BOOL LLPanelPeople::postBuild()
mNearbyList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mNearbyList));
mRecentList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mRecentList));
- mGroupList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onGroupInfoButtonClicked, this));
+ mGroupList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onChatButtonClicked, this));
mGroupList->setCommitCallback(boost::bind(&LLPanelPeople::updateButtons, this));
LLAccordionCtrlTab* accordion_tab = getChild<LLAccordionCtrlTab>("tab_all");
diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp
index 103f041686..f5c4f89702 100644
--- a/indra/newview/llpanelpick.cpp
+++ b/indra/newview/llpanelpick.cpp
@@ -413,6 +413,8 @@ BOOL LLPanelPickEdit::postBuild()
childSetAction(XML_BTN_SAVE, boost::bind(&LLPanelPickEdit::onClickSave, this));
childSetAction("set_to_curr_location_btn", boost::bind(&LLPanelPickEdit::onClickSetLocation, this));
+ initTexturePickerMouseEvents();
+
return TRUE;
}
diff --git a/indra/newview/llpanelplaceprofile.cpp b/indra/newview/llpanelplaceprofile.cpp
index b2a9f6f251..81f4f1f569 100644
--- a/indra/newview/llpanelplaceprofile.cpp
+++ b/indra/newview/llpanelplaceprofile.cpp
@@ -55,6 +55,23 @@
static LLRegisterPanelClassWrapper<LLPanelPlaceProfile> t_place_profile("panel_place_profile");
+// Statics for textures filenames
+static std::string icon_pg;
+static std::string icon_m;
+static std::string icon_r;
+static std::string icon_voice;
+static std::string icon_voice_no;
+static std::string icon_fly;
+static std::string icon_fly_no;
+static std::string icon_push;
+static std::string icon_push_no;
+static std::string icon_build;
+static std::string icon_build_no;
+static std::string icon_scripts;
+static std::string icon_scripts_no;
+static std::string icon_damage;
+static std::string icon_damage_no;
+
LLPanelPlaceProfile::LLPanelPlaceProfile()
: LLPanelPlaceInfo(),
mForSalePanel(NULL),
@@ -119,6 +136,22 @@ BOOL LLPanelPlaceProfile::postBuild()
mResaleText = getChild<LLTextEditor>("resale");
mSaleToText = getChild<LLTextBox>("sale_to");
+ icon_pg = getString("icon_PG");
+ icon_m = getString("icon_M");
+ icon_r = getString("icon_R");
+ icon_voice = getString("icon_Voice");
+ icon_voice_no = getString("icon_VoiceNo");
+ icon_fly = getString("icon_Fly");
+ icon_fly_no = getString("icon_FlyNo");
+ icon_push = getString("icon_Push");
+ icon_push_no = getString("icon_PushNo");
+ icon_build = getString("icon_Build");
+ icon_build_no = getString("icon_BuildNo");
+ icon_scripts = getString("icon_Scripts");
+ icon_scripts_no = getString("icon_ScriptsNo");
+ icon_damage = getString("icon_Damage");
+ icon_damage_no = getString("icon_DamageNo");
+
return TRUE;
}
@@ -231,22 +264,22 @@ void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,
case SIM_ACCESS_MATURE:
parcel_data.flags = 0x1;
- mParcelRatingIcon->setValue("parcel_drk_M");
- mRegionRatingIcon->setValue("parcel_drk_M");
+ mParcelRatingIcon->setValue(icon_m);
+ mRegionRatingIcon->setValue(icon_m);
break;
case SIM_ACCESS_ADULT:
parcel_data.flags = 0x2;
- mParcelRatingIcon->setValue("parcel_drk_R");
- mRegionRatingIcon->setValue("parcel_drk_R");
+ mParcelRatingIcon->setValue(icon_r);
+ mRegionRatingIcon->setValue(icon_r);
break;
default:
parcel_data.flags = 0;
- mParcelRatingIcon->setValue("parcel_drk_PG");
- mRegionRatingIcon->setValue("parcel_drk_PG");
+ mParcelRatingIcon->setValue(icon_pg);
+ mRegionRatingIcon->setValue(icon_pg);
}
std::string rating = LLViewerRegion::accessToString(sim_access);
@@ -270,45 +303,45 @@ void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,
// Processing parcel characteristics
if (parcel->getParcelFlagAllowVoice())
{
- mVoiceIcon->setValue("parcel_drk_Voice");
+ mVoiceIcon->setValue(icon_voice);
mVoiceText->setText(on);
}
else
{
- mVoiceIcon->setValue("parcel_drk_VoiceNo");
+ mVoiceIcon->setValue(icon_voice_no);
mVoiceText->setText(off);
}
if (!region->getBlockFly() && parcel->getAllowFly())
{
- mFlyIcon->setValue("parcel_drk_Fly");
+ mFlyIcon->setValue(icon_fly);
mFlyText->setText(on);
}
else
{
- mFlyIcon->setValue("parcel_drk_FlyNo");
+ mFlyIcon->setValue(icon_fly_no);
mFlyText->setText(off);
}
if (region->getRestrictPushObject() || parcel->getRestrictPushObject())
{
- mPushIcon->setValue("parcel_drk_PushNo");
+ mPushIcon->setValue(icon_push_no);
mPushText->setText(off);
}
else
{
- mPushIcon->setValue("parcel_drk_Push");
+ mPushIcon->setValue(icon_push);
mPushText->setText(on);
}
if (parcel->getAllowModify())
{
- mBuildIcon->setValue("parcel_drk_Build");
+ mBuildIcon->setValue(icon_build);
mBuildText->setText(on);
}
else
{
- mBuildIcon->setValue("parcel_drk_BuildNo");
+ mBuildIcon->setValue(icon_build_no);
mBuildText->setText(off);
}
@@ -316,23 +349,23 @@ void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,
(region->getRegionFlags() & REGION_FLAGS_ESTATE_SKIP_SCRIPTS) ||
!parcel->getAllowOtherScripts())
{
- mScriptsIcon->setValue("parcel_drk_ScriptsNo");
+ mScriptsIcon->setValue(icon_scripts_no);
mScriptsText->setText(off);
}
else
{
- mScriptsIcon->setValue("parcel_drk_Scripts");
+ mScriptsIcon->setValue(icon_scripts);
mScriptsText->setText(on);
}
if (region->getAllowDamage() || parcel->getAllowDamage())
{
- mDamageIcon->setValue("parcel_drk_Damage");
+ mDamageIcon->setValue(icon_damage);
mDamageText->setText(on);
}
else
{
- mDamageIcon->setValue("parcel_drk_DamageNo");
+ mDamageIcon->setValue(icon_damage_no);
mDamageText->setText(off);
}
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 437af1c4e7..a34f029095 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -71,9 +71,10 @@ public:
static void showPlaceInfoPanel(S32 index);
private:
- void onInfoBtnClick();
+ void onProfileBtnClick();
- LLButton* mInfoBtn;
+ LLButton* mProfileBtn;
+
LLTeleportHistoryPanel::ContextMenu *mContextMenu;
S32 mIndex;
@@ -95,8 +96,9 @@ BOOL LLTeleportHistoryFlatItem::postBuild()
LLTextBox *region = getChild<LLTextBox>("region");
region->setValue(mRegionName);
- mInfoBtn = getChild<LLButton>("info_btn");
- mInfoBtn->setClickedCallback(boost::bind(&LLTeleportHistoryFlatItem::onInfoBtnClick, this));
+ mProfileBtn = getChild<LLButton>("profile_btn");
+
+ mProfileBtn->setClickedCallback(boost::bind(&LLTeleportHistoryFlatItem::onProfileBtnClick, this));
return true;
}
@@ -111,7 +113,7 @@ void LLTeleportHistoryFlatItem::setValue(const LLSD& value)
void LLTeleportHistoryFlatItem::onMouseEnter(S32 x, S32 y, MASK mask)
{
childSetVisible("hovered_icon", true);
- mInfoBtn->setVisible(true);
+ mProfileBtn->setVisible(true);
LLPanel::onMouseEnter(x, y, mask);
}
@@ -119,7 +121,7 @@ void LLTeleportHistoryFlatItem::onMouseEnter(S32 x, S32 y, MASK mask)
void LLTeleportHistoryFlatItem::onMouseLeave(S32 x, S32 y, MASK mask)
{
childSetVisible("hovered_icon", false);
- mInfoBtn->setVisible(false);
+ mProfileBtn->setVisible(false);
LLPanel::onMouseLeave(x, y, mask);
}
@@ -142,7 +144,7 @@ void LLTeleportHistoryFlatItem::showPlaceInfoPanel(S32 index)
LLSideTray::getInstance()->showPanel("panel_places", params);
}
-void LLTeleportHistoryFlatItem::onInfoBtnClick()
+void LLTeleportHistoryFlatItem::onProfileBtnClick()
{
LLTeleportHistoryFlatItem::showPlaceInfoPanel(mIndex);
}
diff --git a/indra/newview/llscreenchannel.h b/indra/newview/llscreenchannel.h
index 987bc4b596..fd31690622 100644
--- a/indra/newview/llscreenchannel.h
+++ b/indra/newview/llscreenchannel.h
@@ -204,8 +204,7 @@ public:
// signal on rejecting of a toast event
typedef boost::function<void (LLUUID id)> reject_tost_callback_t;
typedef boost::signals2::signal<void (LLUUID id)> reject_tost_signal_t;
- reject_tost_signal_t mRejectToastSignal;
- boost::signals2::connection setOnRejectToastCallback(reject_tost_callback_t cb) { return mRejectToastSignal.connect(cb); }
+ reject_tost_signal_t mRejectToastSignal; boost::signals2::connection setOnRejectToastCallback(reject_tost_callback_t cb) { return mRejectToastSignal.connect(cb); }
private:
struct ToastElem
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index c255418429..723ac0fc33 100644
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -66,6 +66,7 @@ BOOL LLSysWellWindow::postBuild()
// init connections to the list's update events
connectListUpdaterToSignal("notify");
connectListUpdaterToSignal("groupnotify");
+ connectListUpdaterToSignal("offer");
// get a corresponding channel
initChannel();
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index d42c4372dc..b30acd47f1 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -3442,26 +3442,13 @@ void handle_show_side_tray()
root->addChild(side_tray);
}
-class LLSelfFriends : public view_listener_t
+class LLShowPanelPeopleTab : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- // Open "Friends" tab of the "People" panel in side tray.
+ // Open tab of the "People" panel in side tray.
LLSD param;
- param["people_panel_tab_name"] = "friends_panel";
-
- LLSideTray::getInstance()->showPanel("panel_people", param);
- return true;
- }
-};
-
-class LLSelfGroups : public view_listener_t
-{
- bool handleEvent(const LLSD& userdata)
- {
- // Open "Groups" tab of the "People" panel in side tray.
- LLSD param;
- param["people_panel_tab_name"] = "groups_panel";
+ param["people_panel_tab_name"] = userdata.asString();
LLSideTray::getInstance()->showPanel("panel_people", param);
return true;
}
@@ -7940,8 +7927,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments");
// we don't use boost::bind directly to delay side tray construction
- view_listener_t::addMenu(new LLSelfFriends(), "Self.Friends");
- view_listener_t::addMenu(new LLSelfGroups(), "Self.Groups");
+ view_listener_t::addMenu( new LLShowPanelPeopleTab(), "SideTray.PanelPeopleTab");
// Avatar pie menu
view_listener_t::addMenu(new LLObjectMute(), "Avatar.Mute");
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
index ce5ee83f55..3d65878cf8 100644
--- a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
@@ -36,13 +36,14 @@
label="My Friends"
name="my_friends">
<menu_item_call.on_click
- function="Self.Friends"
- parameter="" />
+ function="SideTray.PanelPeopleTab"
+ parameter="friends_panel" />
</menu_item_call>
<menu_item_call
label="My Groups"
name="my_groups">
<menu_item_call.on_click
- function="Self.Groups" />
+ function="SideTray.PanelPeopleTab"
+ parameter="groups_panel" />
</menu_item_call>
</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 3f63f493b1..ebdfb01787 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -114,25 +114,22 @@
layout="topleft"
name="Communicate"
tear_off="true">
- <menu_item_check
+ <menu_item_call
label="My Friends"
layout="topleft"
name="My Friends"
shortcut="control|shift|F">
- <menu_item_check.on_check
- function="Floater.Visible"
- parameter="contacts.friends" />
- <menu_item_check.on_click
- function="Floater.Toggle"
- parameter="contacts.friends" />
- </menu_item_check>
+ <menu_item_call.on_click
+ function="SideTray.PanelPeopleTab"
+ parameter="friends_panel" />
+ </menu_item_call>
<menu_item_call
label="My Groups"
layout="topleft"
name="My Groups">
<menu_item_call.on_click
- function="Floater.Show"
- parameter="contacts.groups" />
+ function="SideTray.PanelPeopleTab"
+ parameter="groups_panel" />
</menu_item_call>
<menu_item_separator
layout="topleft" />
@@ -155,18 +152,15 @@
function="Floater.Toggle"
parameter="nearby_chat" />
</menu_item_check>
- <menu_item_check
- label="Nearby Speakers"
+ <menu_item_call
+ label="Nearby People"
layout="topleft"
name="Active Speakers"
shortcut="control|shift|A">
- <menu_item_check.on_check
- function="Floater.Visible"
- parameter="active_speakers" />
- <menu_item_check.on_click
- function="Floater.Toggle"
- parameter="active_speakers" />
- </menu_item_check>
+ <menu_item_call.on_click
+ function="SideTray.PanelPeopleTab"
+ parameter="nearby_panel" />
+ </menu_item_call>
<menu_item_check
label="Nearby Media"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index babed28f10..f26a4d09d4 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -4982,7 +4982,7 @@ An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a
<notification
icon="notify.tga"
name="UserGiveItem"
- type="notify">
+ type="offer">
[NAME] has given you a [OBJECTTYPE] named &apos;[OBJECTNAME]&apos;.
<form name="form">
<button
@@ -5028,7 +5028,7 @@ An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a
<notification
icon="notify.tga"
name="TeleportOffered"
- type="notify">
+ type="offer">
[NAME] has offered to teleport you to their location:
[MESSAGE]
@@ -5065,7 +5065,7 @@ An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a
<notification
icon="notify.tga"
name="OfferFriendship"
- type="notify">
+ type="offer">
[NAME] is offering friendship.
[MESSAGE]
@@ -5105,7 +5105,7 @@ An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a
<notification
icon="notify.tga"
name="FriendshipAccepted"
- type="notify">
+ type="offer">
[NAME] accepted your friendship offer.
</notification>
diff --git a/indra/newview/skins/default/xui/en/panel_chat_header.xml b/indra/newview/skins/default/xui/en/panel_chat_header.xml
index a9f622e018..64519b2571 100644
--- a/indra/newview/skins/default/xui/en/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_header.xml
@@ -1,53 +1,44 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="black"
follows="left|top|right"
- height="57"
- label="im_header_container"
+ height="20"
+ label="im_header"
layout="topleft"
- left="8"
- name="im_header_container">
- <panel
- background_visible="true"
- bevel_style="in"
- bg_alpha_color="black"
- follows="left|top|right"
- height="30"
- label="im_header"
+ name="im_header" >
+ <avatar_icon
+ follows="left"
+ height="16"
+ image_name="icon_avatar_online.tga"
layout="topleft"
- name="im_header"
- top_pad="17">
- <avatar_icon
- follows="left"
- height="20"
- image_name="icon_avatar_online.tga"
- layout="topleft"
- left="5"
- mouse_opaque="true"
- name="avatar_icon"
- top="5"
- width="20" />
- <text
- follows="left|right"
- font="SansSerifBigBold"
- height="20"
- layout="topleft"
- left_pad="10"
- right="-50"
- name="user_name"
- text_color="white"
- top="5"
- value="Darth Vader"
- use_ellipses="true" />
- <text
- follows="right"
- font="SansSerifBig"
- height="20"
- layout="topleft"
- name="time_box"
- right="0"
- text_color="white"
- top="5"
- value="23:30"
- width="50" />
- </panel>
+ left="2"
+ mouse_opaque="true"
+ name="avatar_icon"
+ top="2"
+ width="16" />
+ <text
+ follows="left|right"
+ font="SansSerifBigBold"
+ height="20"
+ layout="topleft"
+ left_pad="6"
+ right="-50"
+ name="user_name"
+ text_color="white"
+ top="3"
+ value="Darth Vader"
+ use_ellipses="true" />
+ <text
+ follows="right"
+ font="SansSerifBig"
+ height="20"
+ layout="topleft"
+ name="time_box"
+ right="0"
+ text_color="white"
+ top="3"
+ value="23:30"
+ width="50" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_chat_separator.xml b/indra/newview/skins/default/xui/en/panel_chat_separator.xml
index bacc750e86..d0a2ddb289 100644
--- a/indra/newview/skins/default/xui/en/panel_chat_separator.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_separator.xml
@@ -1,16 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
+ background_visible="true"
+ bg_alpha_color="black"
follows="left|right|top"
- height="9"
+ height="1"
layout="topleft"
- left="8"
- name="chat_separator_container">
- <panel
- background_visible="true"
- bg_alpha_color="black"
- follows="left|right|top"
- height="1"
- layout="topleft"
- name="chat_separator_panel"
- top_pad="3" />
-</panel>
+ name="chat_separator_panel" />
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
index 282b3f3e55..f4a212ba0a 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
@@ -64,9 +64,9 @@
top="20"
left="10"
name="pick_snapshot" />
- <button
+ <icon
height="18"
- image_overlay="AddItem_Off"
+ image_name="AddItem_Off"
layout="topleft"
right="-5"
name="edit_icon"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
index fedc49ae87..2378ae518b 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
@@ -116,9 +116,9 @@
top_pad="0"
width="102" />
</panel>
- <button
+ <icon
height="18"
- image_overlay="AddItem_Off"
+ image_name="AddItem_Off"
layout="topleft"
name="2nd_life_edit_icon"
label=""
@@ -171,9 +171,9 @@
top_pad="0"
width="102" />
</panel>
- <button
+ <icon
height="18"
- image_overlay="AddItem_Off"
+ image_name="AddItem_Off"
layout="topleft"
name="real_world_edit_icon"
label=""
diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
index 03ba7f7c81..0c24adfad5 100644
--- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
@@ -50,7 +50,6 @@
layout="topleft"
left="10"
name="back_btn"
- picture_style="true"
tab_stop="false"
top="0"
width="23" />
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index ae11f028ca..34f9e1daf5 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -22,7 +22,7 @@
<icon
follows="all"
image_name="NavBar_BG_NoFav"
- mouse_opaque="true"
+ mouse_opaque="false"
name="bg_icon_no_fav"
scale_image="true"
visible="false"
diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml
index 4dc65fa736..65f150b33c 100644
--- a/indra/newview/skins/default/xui/en/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml
@@ -92,6 +92,52 @@
name="acquired_date">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</string>
+ <!-- Texture names for parcel permissions icons -->
+ <string
+ name="icon_PG"
+ value="parcel_drk_PG" />
+ <string
+ name="icon_M"
+ value="parcel_drk_M" />
+ <string
+ name="icon_R"
+ value="parcel_drk_R" />
+ <string
+ name="icon_Voice"
+ value="parcel_drk_Voice" />
+ <string
+ name="icon_VoiceNo"
+ value="parcel_drk_VoiceNo" />
+ <string
+ name="icon_Fly"
+ value="parcel_drk_Fly" />
+ <string
+ name="icon_FlyNo"
+ value="parcel_drk_FlyNo" />
+ <string
+ name="icon_Push"
+ value="parcel_drk_Push" />
+ <string
+ name="icon_PushNo"
+ value="parcel_drk_PushNo" />
+ <string
+ name="icon_Build"
+ value="parcel_drk_Build" />
+ <string
+ name="icon_BuildNo"
+ value="parcel_drk_BuildNo" />
+ <string
+ name="icon_Scripts"
+ value="parcel_drk_Scripts" />
+ <string
+ name="icon_ScriptsNo"
+ value="parcel_drk_ScriptsNo" />
+ <string
+ name="icon_Damage"
+ value="parcel_drk_Damage" />
+ <string
+ name="icon_DamageNo"
+ value="parcel_drk_DamageNo" />
<button
follows="top|right"
height="23"
@@ -99,7 +145,6 @@
layout="topleft"
left="10"
name="back_btn"
- picture_style="true"
tab_stop="false"
top="0"
width="23" />
@@ -212,15 +257,6 @@
use_ellipses="true"
value="SampleRegion"
width="290" />
- <!-- <icon
- follows="top|right"
- height="16"
- image_name="Icon_For_Sale"
- layout="topleft"
- left="3"
- mouse_opaque="true"
- name="icon_for_sale"
- width="16" />-->
<text
follows="left|top|right"
height="14"
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
index 0073a1f1a0..1f67a0a732 100644
--- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
@@ -49,16 +49,6 @@
width="242" />
<button
follows="right"
- height="16"
- image_pressed="Info_Press"
- image_unselected="Info_Over"
- left_pad="3"
- right="-31"
- name="info_btn"
- top_delta="-2"
- width="16" />
- <button
- follows="right"
height="20"
image_overlay="ForwardArrow_Off"
layout="topleft"
@@ -66,5 +56,6 @@
right="-3"
name="profile_btn"
top_delta="-2"
+ visible="false"
width="20" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/widgets/chat_history.xml b/indra/newview/skins/default/xui/en/widgets/chat_history.xml
index ea6997ebd5..32916c0816 100644
--- a/indra/newview/skins/default/xui/en/widgets/chat_history.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chat_history.xml
@@ -6,6 +6,10 @@
right_text_pad="15"
left_widget_pad="0"
right_widget_pad="10"
+ top_separator_pad="5"
+ bottom_separator_pad="5"
+ top_header_pad="17"
+ bottom_header_pad="10"
max_length="2147483647"
enabled="false"
track_bottom="true"