summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llbottomtray.cpp12
-rw-r--r--indra/newview/llbottomtray.h3
-rw-r--r--indra/newview/llcallingcard.cpp15
-rw-r--r--indra/newview/llfloaterinventory.cpp3
-rw-r--r--indra/newview/llinspectavatar.cpp8
-rw-r--r--indra/newview/llinventorypanel.cpp6
-rw-r--r--indra/newview/llnotificationtiphandler.cpp45
-rw-r--r--indra/newview/llurldispatcher.cpp11
-rw-r--r--indra/newview/llviewermenu.cpp22
-rw-r--r--indra/newview/skins/default/xui/en/floater_moveview.xml4
-rw-r--r--indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml6
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_online_status.xml35
14 files changed, 166 insertions, 14 deletions
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 95a946cee8..c9082da9a9 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -422,6 +422,18 @@ void LLBottomTray::showSnapshotButton(BOOL visible)
setTrayButtonVisibleIfPossible(RS_BUTTON_SNAPSHOT, visible);
}
+void LLBottomTray::toggleMovementControls()
+{
+ if (mMovementButton)
+ mMovementButton->onCommit();
+}
+
+void LLBottomTray::toggleCameraControls()
+{
+ if (mCamButton)
+ mCamButton->onCommit();
+}
+
BOOL LLBottomTray::postBuild()
{
diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h
index 2eeb0c0017..18c14e5e19 100644
--- a/indra/newview/llbottomtray.h
+++ b/indra/newview/llbottomtray.h
@@ -94,6 +94,9 @@ public:
void showCameraButton(BOOL visible);
void showSnapshotButton(BOOL visible);
+ void toggleMovementControls();
+ void toggleCameraControls();
+
void onMouselookModeIn();
void onMouselookModeOut();
diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp
index c3bda26aac..79a2631c31 100644
--- a/indra/newview/llcallingcard.cpp
+++ b/indra/newview/llcallingcard.cpp
@@ -682,17 +682,24 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
}
BOOL notify = FALSE;
LLSD args;
+ LLSD payload;
for(S32 i = 0; i < count; ++i)
{
msg->getUUIDFast(_PREHASH_AgentBlock, _PREHASH_AgentID, agent_id, i);
+ payload["FROM_ID"] = agent_id;
info = getBuddyInfo(agent_id);
if(info)
{
setBuddyOnline(agent_id,online);
if(chat_notify)
{
- notify = TRUE;
- args["NAME_SLURL"] = LLSLURL::buildCommand("agent", agent_id, "about");
+ std::string first, last;
+ if(gCacheName->getName(agent_id, first, last))
+ {
+ notify = TRUE;
+ args["FIRST"] = first;
+ args["LAST"] = last;
+ }
}
}
else
@@ -719,13 +726,13 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
notification =
LLNotificationsUtil::add("FriendOnline",
args,
- LLSD().with("respond_on_mousedown", TRUE),
+ payload.with("respond_on_mousedown", TRUE),
boost::bind(&LLAvatarActions::startIM, agent_id));
}
else
{
notification =
- LLNotificationsUtil::add("FriendOffline", args);
+ LLNotificationsUtil::add("FriendOffline", args, payload);
}
// If there's an open IM session with this agent, send a notification there too.
diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp
index e62e2c99a7..844f0ac509 100644
--- a/indra/newview/llfloaterinventory.cpp
+++ b/indra/newview/llfloaterinventory.cpp
@@ -41,6 +41,7 @@
#include "llpanelmaininventory.h"
#include "llresmgr.h"
#include "llviewerfoldertype.h"
+#include "lltransientfloatermgr.h"
///----------------------------------------------------------------------------
/// LLFloaterInventory
@@ -49,10 +50,12 @@
LLFloaterInventory::LLFloaterInventory(const LLSD& key)
: LLFloater(key)
{
+ LLTransientFloaterMgr::getInstance()->addControlView(this);
}
LLFloaterInventory::~LLFloaterInventory()
{
+ LLTransientFloaterMgr::getInstance()->removeControlView(this);
}
BOOL LLFloaterInventory::postBuild()
diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp
index b2cdc0738f..83b99f1b27 100644
--- a/indra/newview/llinspectavatar.cpp
+++ b/indra/newview/llinspectavatar.cpp
@@ -120,6 +120,7 @@ private:
void onClickTeleport();
void onClickInviteToGroup();
void onClickPay();
+ void onClickShare();
void onToggleMute();
void onClickReport();
void onClickFreeze();
@@ -213,6 +214,7 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)
mCommitCallbackRegistrar.add("InspectAvatar.Teleport", boost::bind(&LLInspectAvatar::onClickTeleport, this));
mCommitCallbackRegistrar.add("InspectAvatar.InviteToGroup", boost::bind(&LLInspectAvatar::onClickInviteToGroup, this));
mCommitCallbackRegistrar.add("InspectAvatar.Pay", boost::bind(&LLInspectAvatar::onClickPay, this));
+ mCommitCallbackRegistrar.add("InspectAvatar.Share", boost::bind(&LLInspectAvatar::onClickShare, this));
mCommitCallbackRegistrar.add("InspectAvatar.ToggleMute", boost::bind(&LLInspectAvatar::onToggleMute, this));
mCommitCallbackRegistrar.add("InspectAvatar.Freeze",
boost::bind(&LLInspectAvatar::onClickFreeze, this));
@@ -678,6 +680,12 @@ void LLInspectAvatar::onClickPay()
closeFloater();
}
+void LLInspectAvatar::onClickShare()
+{
+ LLAvatarActions::share(mAvatarID);
+ closeFloater();
+}
+
void LLInspectAvatar::onToggleMute()
{
LLMute mute(mAvatarID, mAvatarName, LLMute::AGENT);
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index ca9b942629..048ed10886 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -290,8 +290,12 @@ void LLInventoryPanel::modelChanged(U32 mask)
if(bridge)
{ // Clear the display name first, so it gets properly re-built during refresh()
bridge->clearDisplayName();
+
+ view_item->refresh();
+
+ // Set the new tooltip with the new display name.
+ view_item->setToolTip(bridge->getDisplayName());
}
- view_item->refresh();
}
}
diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp
index 83a2215ac6..c55c8d6221 100644
--- a/indra/newview/llnotificationtiphandler.cpp
+++ b/indra/newview/llnotificationtiphandler.cpp
@@ -43,6 +43,37 @@
using namespace LLNotificationsUI;
+class LLOnalineStatusToast : public LLToastPanel
+{
+public:
+
+ struct Params
+ {
+ LLNotificationPtr notification;
+ LLUUID avatar_id;
+ std::string message;
+
+ Params() {}
+ };
+
+ LLOnalineStatusToast(Params& p) : LLToastPanel(p.notification)
+ {
+ LLUICtrlFactory::getInstance()->buildPanel(this, "panel_online_status.xml");
+
+ childSetValue("avatar_icon", p.avatar_id);
+ childSetValue("message", p.message);
+
+ if (p.notification->getPayload().has("respond_on_mousedown")
+ && p.notification->getPayload()["respond_on_mousedown"] )
+ {
+ setMouseDownCallback(boost::bind(&LLNotification::respond, p.notification,
+ p.notification->getResponseTemplate()));
+ }
+
+ // set line max count to 2 in case of a very long name
+ snapToMessageHeight(getChild<LLTextBox>("message"), 2);
+ }
+};
//--------------------------------------------------------------------------
LLTipHandler::LLTipHandler(e_notification_type type, const LLSD& id)
@@ -114,7 +145,19 @@ bool LLTipHandler::processNotification(const LLSD& notify)
LLHandlerUtil::spawnIMSession(name, from_id);
}
- LLToastNotifyPanel* notify_box = new LLToastNotifyPanel(notification);
+ LLToastPanel* notify_box = NULL;
+ if("FriendOffline" == notification->getName() || "FriendOnline" == notification->getName())
+ {
+ LLOnalineStatusToast::Params p;
+ p.notification = notification;
+ p.message = notification->getMessage();
+ p.avatar_id = notification->getPayload()["FROM_ID"];
+ notify_box = new LLOnalineStatusToast(p);
+ }
+ else
+ {
+ notify_box = new LLToastNotifyPanel(notification);
+ }
LLToast::Params p;
p.notif_id = notification->getID();
diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp
index 0b6bd4b401..257afabdcc 100644
--- a/indra/newview/llurldispatcher.cpp
+++ b/indra/newview/llurldispatcher.cpp
@@ -223,6 +223,17 @@ void LLURLDispatcherImpl::regionNameCallback(U64 region_handle, const std::strin
S32 z = 0;
LLURLSimString::parse(sim_string, &region_name, &x, &y, &z);
+ // Invalid location? EXT-5380
+ if (!region_handle)
+ {
+ if(!region_name.empty() && !LLStringOps::isDigit(region_name.c_str()[0]))// it is no sense to search an empty region_name or when the region_name starts with digits
+ {
+ // may be an user types incorrect region name, let's help him to find a correct one
+ LLFloaterReg::showInstance("search", LLSD().with("category", "places").with("id", LLSD(region_name)));
+ }
+ //*TODO: add notification about invalid region_name
+ return;
+ }
LLVector3 local_pos;
local_pos.mV[VX] = (F32)x;
local_pos.mV[VY] = (F32)y;
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 24a788aaed..989cfae464 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -44,6 +44,7 @@
#include "llagent.h"
#include "llagentwearables.h"
#include "llagentpilot.h"
+#include "llbottomtray.h"
#include "llcompilequeue.h"
#include "llconsole.h"
#include "lldebugview.h"
@@ -7631,6 +7632,24 @@ class LLWorldDayCycle : public view_listener_t
}
};
+class LLWorldToggleMovementControls : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLBottomTray::getInstance()->toggleMovementControls();
+ return true;
+ }
+};
+
+class LLWorldToggleCameraControls : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLBottomTray::getInstance()->toggleCameraControls();
+ return true;
+ }
+};
+
void show_navbar_context_menu(LLView* ctrl, S32 x, S32 y)
{
static LLMenuGL* show_navbar_context_menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_hide_navbar.xml",
@@ -7750,6 +7769,9 @@ void initialize_menus()
view_listener_t::addMenu(new LLWorldPostProcess(), "World.PostProcess");
view_listener_t::addMenu(new LLWorldDayCycle(), "World.DayCycle");
+ view_listener_t::addMenu(new LLWorldToggleMovementControls(), "World.Toggle.MovementControls");
+ view_listener_t::addMenu(new LLWorldToggleCameraControls(), "World.Toggle.CameraControls");
+
// Tools menu
view_listener_t::addMenu(new LLToolsSelectTool(), "Tools.SelectTool");
view_listener_t::addMenu(new LLToolsSelectOnlyMyObjects(), "Tools.SelectOnlyMyObjects");
diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml
index 0bdcbf30df..851a689d42 100644
--- a/indra/newview/skins/default/xui/en/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/en/floater_moveview.xml
@@ -83,7 +83,7 @@
left="10"
name="move up btn"
scale_image="false"
- tool_tip="Fly up, press &quot;E&quot;"
+ tool_tip="Fly up, press E"
top="14"
width="25" />
<button
@@ -96,7 +96,7 @@
left_pad="45"
name="move down btn"
scale_image="false"
- tool_tip="Fly down, press &quot;C&quot;"
+ tool_tip="Fly down, press C"
top_delta="0"
width="20" />
<joystick_turn
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
index 85ec174829..1b002b1c32 100644
--- a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
@@ -116,4 +116,10 @@
<menu_item_call.on_click
function="InspectAvatar.Pay"/>
</menu_item_call>
+ <menu_item_call
+ label="Share"
+ name="share">
+ <menu_item_call.on_click
+ function="InspectAvatar.Share"/>
+ </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 07a366da7f..e11b18ec31 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -311,8 +311,7 @@
function="Floater.Visible"
parameter="moveview" />
<menu_item_check.on_click
- function="Floater.Toggle"
- parameter="moveview" />
+ function="World.Toggle.MovementControls" />
</menu_item_check>
<menu_item_check
label="View Controls"
@@ -322,8 +321,7 @@
function="Floater.Visible"
parameter="camera" />
<menu_item_check.on_click
- function="Floater.Toggle"
- parameter="camera" />
+ function="World.Toggle.CameraControls" />
</menu_item_check>
<menu_item_check
label="Ban Lines"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 9c6b18ef27..ef983dacfe 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -4310,14 +4310,14 @@ Topic: [SUBJECT], Message: [MESSAGE]
icon="notifytip.tga"
name="FriendOnline"
type="notifytip">
-[NAME_SLURL] is Online
+[FIRST] [LAST] is Online
</notification>
<notification
icon="notifytip.tga"
name="FriendOffline"
type="notifytip">
-[NAME_SLURL] is Offline
+[FIRST] [LAST] is Offline
</notification>
<notification
diff --git a/indra/newview/skins/default/xui/en/panel_online_status.xml b/indra/newview/skins/default/xui/en/panel_online_status.xml
new file mode 100644
index 0000000000..14cb5fffee
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_online_status.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_visible="false"
+ height="152"
+ label="friend_online_status"
+ layout="topleft"
+ left="0"
+ name="friend_online_status"
+ top="0"
+ width="305">
+ <avatar_icon
+ follows="top|left"
+ height="18"
+ image_name="Generic_Person"
+ layout="topleft"
+ left="3"
+ mouse_opaque="false"
+ name="avatar_icon"
+ top="10"
+ width="18" />
+ <text
+ font="SansSerifSmall"
+ follows="all"
+ height="137"
+ layout="topleft"
+ left_pad="5"
+ name="message"
+ text_color="white"
+ top="15"
+ use_ellipses="true"
+ value=""
+ width="285"
+ word_wrap="true"
+ max_length="350" />
+</panel> \ No newline at end of file