summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llavataractions.cpp109
-rw-r--r--indra/newview/llavataractions.h24
-rw-r--r--indra/newview/llchathistory.cpp141
-rw-r--r--indra/newview/llchathistory.h22
-rw-r--r--indra/newview/llfasttimerview.cpp16
-rw-r--r--indra/newview/llfasttimerview.h1
-rw-r--r--indra/newview/llfloaterpreference.cpp3
-rw-r--r--indra/newview/llfloatersnapshot.cpp7
-rw-r--r--indra/newview/llfloatersnapshot.h1
-rw-r--r--indra/newview/llpanelavatar.cpp34
-rw-r--r--indra/newview/llpanelavatar.h9
-rw-r--r--indra/newview/lltoolpie.cpp6
-rw-r--r--indra/newview/skins/default/colors.xml10
-rw-r--r--indra/newview/skins/default/textures/icons/SL_Logo.pngbin0 -> 973 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml16
-rw-r--r--indra/newview/skins/default/xui/en/floater_aaa.xml10
-rw-r--r--indra/newview/skins/default/xui/en/floater_world_map.xml6
-rw-r--r--indra/newview/skins/default/xui/en/menu_profile_overflow.xml36
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_item_info.xml190
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_task_info.xml545
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chat_history.xml8
-rw-r--r--indra/newview/skins/default/xui/en/widgets/tab_container.xml8
23 files changed, 753 insertions, 455 deletions
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index c5a1ffdcb3..651c66d0a7 100644
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -333,6 +333,54 @@ void LLAvatarActions::pay(const LLUUID& id)
}
}
+// static
+void LLAvatarActions::kick(const LLUUID& id)
+{
+ LLSD payload;
+ payload["avatar_id"] = id;
+ LLNotifications::instance().add("KickUser", LLSD(), payload, handleKick);
+}
+
+// static
+void LLAvatarActions::freeze(const LLUUID& id)
+{
+ LLSD payload;
+ payload["avatar_id"] = id;
+ LLNotifications::instance().add("FreezeUser", LLSD(), payload, handleFreeze);
+}
+
+// static
+void LLAvatarActions::unfreeze(const LLUUID& id)
+{
+ LLSD payload;
+ payload["avatar_id"] = id;
+ LLNotifications::instance().add("UnFreezeUser", LLSD(), payload, handleUnfreeze);
+}
+
+//static
+void LLAvatarActions::csr(const LLUUID& id, std::string name)
+{
+ if (name.empty()) return;
+
+ std::string url = "http://csr.lindenlab.com/agent/";
+
+ // slow and stupid, but it's late
+ S32 len = name.length();
+ for (S32 i = 0; i < len; i++)
+ {
+ if (name[i] == ' ')
+ {
+ url += "%20";
+ }
+ else
+ {
+ url += name[i];
+ }
+ }
+
+ LLWeb::loadURL(url);
+}
+
//static
void LLAvatarActions::share(const LLUUID& id)
{
@@ -457,6 +505,67 @@ bool LLAvatarActions::callbackAddFriendWithMessage(const LLSD& notification, con
}
// static
+bool LLAvatarActions::handleKick(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+
+ if (option == 0)
+ {
+ LLUUID avatar_id = notification["payload"]["avatar_id"].asUUID();
+ LLMessageSystem* msg = gMessageSystem;
+
+ msg->newMessageFast(_PREHASH_GodKickUser);
+ msg->nextBlockFast(_PREHASH_UserInfo);
+ msg->addUUIDFast(_PREHASH_GodID, gAgent.getID() );
+ msg->addUUIDFast(_PREHASH_GodSessionID, gAgent.getSessionID());
+ msg->addUUIDFast(_PREHASH_AgentID, avatar_id );
+ msg->addU32("KickFlags", KICK_FLAGS_DEFAULT );
+ msg->addStringFast(_PREHASH_Reason, response["message"].asString() );
+ gAgent.sendReliableMessage();
+ }
+ return false;
+}
+bool LLAvatarActions::handleFreeze(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+
+ if (option == 0)
+ {
+ LLUUID avatar_id = notification["payload"]["avatar_id"].asUUID();
+ LLMessageSystem* msg = gMessageSystem;
+
+ msg->newMessageFast(_PREHASH_GodKickUser);
+ msg->nextBlockFast(_PREHASH_UserInfo);
+ msg->addUUIDFast(_PREHASH_GodID, gAgent.getID() );
+ msg->addUUIDFast(_PREHASH_GodSessionID, gAgent.getSessionID());
+ msg->addUUIDFast(_PREHASH_AgentID, avatar_id );
+ msg->addU32("KickFlags", KICK_FLAGS_FREEZE );
+ msg->addStringFast(_PREHASH_Reason, response["message"].asString() );
+ gAgent.sendReliableMessage();
+ }
+ return false;
+}
+bool LLAvatarActions::handleUnfreeze(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ std::string text = response["message"].asString();
+ if (option == 0)
+ {
+ LLUUID avatar_id = notification["payload"]["avatar_id"].asUUID();
+ LLMessageSystem* msg = gMessageSystem;
+
+ msg->newMessageFast(_PREHASH_GodKickUser);
+ msg->nextBlockFast(_PREHASH_UserInfo);
+ msg->addUUIDFast(_PREHASH_GodID, gAgent.getID() );
+ msg->addUUIDFast(_PREHASH_GodSessionID, gAgent.getSessionID());
+ msg->addUUIDFast(_PREHASH_AgentID, avatar_id );
+ msg->addU32("KickFlags", KICK_FLAGS_UNFREEZE );
+ msg->addStringFast(_PREHASH_Reason, text );
+ gAgent.sendReliableMessage();
+ }
+ return false;
+}
+// static
bool LLAvatarActions::callbackAddFriend(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
diff --git a/indra/newview/llavataractions.h b/indra/newview/llavataractions.h
index 01c18d4228..a4504ae679 100644
--- a/indra/newview/llavataractions.h
+++ b/indra/newview/llavataractions.h
@@ -138,11 +138,35 @@ public:
*/
static void inviteToGroup(const LLUUID& id);
+ /**
+ * Kick avatar off grid
+ */
+ static void kick(const LLUUID& id);
+
+ /**
+ * Freeze avatar
+ */
+ static void freeze(const LLUUID& id);
+
+ /**
+ * Unfreeze avatar
+ */
+ static void unfreeze(const LLUUID& id);
+
+ /**
+ * Open csr page for avatar
+ */
+ static void csr(const LLUUID& id, std::string name);
+
+
private:
static bool callbackAddFriend(const LLSD& notification, const LLSD& response);
static bool callbackAddFriendWithMessage(const LLSD& notification, const LLSD& response);
static bool handleRemove(const LLSD& notification, const LLSD& response);
static bool handlePay(const LLSD& notification, const LLSD& response, LLUUID avatar_id);
+ static bool handleKick(const LLSD& notification, const LLSD& response);
+ static bool handleFreeze(const LLSD& notification, const LLSD& response);
+ static bool handleUnfreeze(const LLSD& notification, const LLSD& response);
static void callback_invite_to_group(LLUUID group_id, LLUUID id);
// Just request friendship, no dialog.
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 7a83299dac..b1ddddc4b1 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -44,6 +44,8 @@
#include "llfloaterreg.h"
#include "llmutelist.h"
#include "llstylemap.h"
+#include "lllayoutstack.h"
+#include "llagent.h"
#include "llsidetray.h"//for blocked objects panel
@@ -346,18 +348,23 @@ protected:
LLChatHistory::LLChatHistory(const LLChatHistory::Params& p)
-: LLTextEditor(p),
-mMessageHeaderFilename(p.message_header),
-mMessageSeparatorFilename(p.message_separator),
-mLeftTextPad(p.left_text_pad),
-mRightTextPad(p.right_text_pad),
-mLeftWidgetPad(p.left_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)
+: LLUICtrl(p),
+ mMessageHeaderFilename(p.message_header),
+ mMessageSeparatorFilename(p.message_separator),
+ mLeftTextPad(p.left_text_pad),
+ mRightTextPad(p.right_text_pad),
+ mLeftWidgetPad(p.left_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)
{
+ LLTextEditor::Params editor_params(p);
+ editor_params.rect = getLocalRect();
+ editor_params.follows.flags = FOLLOWS_ALL;
+ editor_params.enabled = false; // read only
+ mEditor = LLUICtrlFactory::create<LLTextEditor>(editor_params, this);
}
LLChatHistory::~LLChatHistory()
@@ -365,6 +372,49 @@ LLChatHistory::~LLChatHistory()
this->clear();
}
+void LLChatHistory::initFromParams(const LLChatHistory::Params& p)
+{
+ static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0);
+
+ LLRect stack_rect = getLocalRect();
+ stack_rect.mRight -= scrollbar_size;
+ LLLayoutStack::Params layout_p;
+ layout_p.rect = stack_rect;
+ layout_p.follows.flags = FOLLOWS_ALL;
+ layout_p.orientation = "vertical";
+ layout_p.mouse_opaque = false;
+
+ LLLayoutStack* stackp = LLUICtrlFactory::create<LLLayoutStack>(layout_p, this);
+
+ const S32 NEW_TEXT_NOTICE_HEIGHT = 20;
+
+ LLPanel::Params panel_p;
+ panel_p.name = "spacer";
+ panel_p.background_visible = false;
+ panel_p.has_border = false;
+ panel_p.mouse_opaque = false;
+ stackp->addPanel(LLUICtrlFactory::create<LLPanel>(panel_p), 0, 30, true, false, LLLayoutStack::ANIMATE);
+
+ panel_p.name = "new_text_notice_holder";
+ LLRect new_text_notice_rect = getLocalRect();
+ new_text_notice_rect.mTop = new_text_notice_rect.mBottom + NEW_TEXT_NOTICE_HEIGHT;
+ panel_p.rect = new_text_notice_rect;
+ panel_p.background_opaque = true;
+ panel_p.background_visible = true;
+ panel_p.visible = false;
+ mMoreChatPanel = LLUICtrlFactory::create<LLPanel>(panel_p);
+
+ LLTextBox::Params text_p(p.more_chat_text);
+ text_p.rect = mMoreChatPanel->getLocalRect();
+ text_p.follows.flags = FOLLOWS_ALL;
+ text_p.name = "more_chat_text";
+ mMoreChatText = LLUICtrlFactory::create<LLTextBox>(text_p, mMoreChatPanel);
+ mMoreChatText->setClickedCallback(boost::bind(&LLChatHistory::onClickMoreText, this));
+
+ stackp->addPanel(mMoreChatPanel, 0, 0, false, false, LLLayoutStack::ANIMATE);
+}
+
+
/*void LLChatHistory::updateTextRect()
{
static LLUICachedControl<S32> texteditor_border ("UITextEditorBorder", 0);
@@ -393,15 +443,49 @@ LLView* LLChatHistory::getHeader(const LLChat& chat,const LLStyle::Params& style
return header;
}
+void LLChatHistory::onClickMoreText()
+{
+ mEditor->endOfDoc();
+}
+
void LLChatHistory::clear()
{
mLastFromName.clear();
- LLTextEditor::clear();
+ mEditor->clear();
mLastFromID = LLUUID::null;
}
void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_chat_history, const LLStyle::Params& input_append_params)
{
+ if (!mEditor->scrolledToEnd() && chat.mFromID != gAgent.getID() && !chat.mFromName.empty())
+ {
+ mUnreadChatSources.insert(chat.mFromName);
+ mMoreChatPanel->setVisible(TRUE);
+ std::string chatters;
+ for (unread_chat_source_t::iterator it = mUnreadChatSources.begin();
+ it != mUnreadChatSources.end();)
+ {
+ chatters += *it;
+ if (++it != mUnreadChatSources.end())
+ {
+ chatters += ",";
+ }
+ }
+ LLStringUtil::format_map_t args;
+ args["SOURCES"] = chatters;
+
+ if (mUnreadChatSources.size() == 1)
+ {
+ mMoreChatText->setValue(LLTrans::getString("unread_chat_single", args));
+ }
+ else
+ {
+ mMoreChatText->setValue(LLTrans::getString("unread_chat_multiple", args));
+ }
+ S32 height = mMoreChatText->getTextPixelHeight() + 5;
+ mMoreChatPanel->reshape(mMoreChatPanel->getRect().getWidth(), height);
+ }
+
LLColor4 txt_color = LLUIColorTable::instance().getColor("White");
LLViewerChat::getChatColor(chat,txt_color);
LLFontGL* fontp = LLViewerChat::getChatFont();
@@ -416,7 +500,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
if (use_plain_text_chat_history)
{
- appendText("[" + chat.mTimeStr + "] ", getText().size() != 0, style_params);
+ mEditor->appendText("[" + chat.mTimeStr + "] ", mEditor->getText().size() != 0, style_params);
if (utf8str_trim(chat.mFromName).size() != 0)
{
@@ -426,11 +510,11 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
LLStyle::Params link_params(style_params);
link_params.fillFrom(LLStyleMap::instance().lookupAgent(chat.mFromID));
// Convert the name to a hotlink and add to message.
- appendText(chat.mFromName + ": ", false, link_params);
+ mEditor->appendText(chat.mFromName + ": ", false, link_params);
}
else
{
- appendText(chat.mFromName + ": ", false, style_params);
+ mEditor->appendText(chat.mFromName + ": ", false, style_params);
}
}
}
@@ -457,7 +541,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
else
{
view = getHeader(chat, style_params);
- if (getText().size() == 0)
+ if (mEditor->getText().size() == 0)
p.top_pad = 0;
else
p.top_pad = mTopHeaderPad;
@@ -467,9 +551,9 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
p.view = view;
//Prepare the rect for the view
- LLRect target_rect = getDocumentView()->getRect();
+ LLRect target_rect = mEditor->getDocumentView()->getRect();
// squeeze down the widget by subtracting padding off left and right
- target_rect.mLeft += mLeftWidgetPad + mHPad;
+ target_rect.mLeft += mLeftWidgetPad + mEditor->getHPad();
target_rect.mRight -= mRightWidgetPad;
view->reshape(target_rect.getWidth(), view->getRect().getHeight());
view->setOrigin(target_rect.mLeft, view->getRect().mBottom);
@@ -478,7 +562,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
if (utf8str_trim(chat.mFromName).size() != 0 && chat.mFromName != SYSTEM_FROM)
header_text += chat.mFromName + ": ";
- appendWidget(p, header_text, false);
+ mEditor->appendWidget(p, header_text, false);
mLastFromName = chat.mFromName;
mLastFromID = chat.mFromID;
mLastMessageTime = new_message_time;
@@ -490,10 +574,10 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
style_params.font.style = "ITALIC";
if (chat.mFromName.size() > 0)
- appendText(chat.mFromName + " ", TRUE, style_params);
+ mEditor->appendText(chat.mFromName + " ", TRUE, style_params);
// Ensure that message ends with NewLine, to avoid losing of new lines
// while copy/paste from text chat. See EXT-3263.
- appendText(chat.mText.substr(4) + NEW_LINE, FALSE, style_params);
+ mEditor->appendText(chat.mText.substr(4) + NEW_LINE, FALSE, style_params);
}
else
{
@@ -504,8 +588,19 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
// while copy/paste from text chat. See EXT-3263.
message += NEW_LINE;
}
- appendText(message, FALSE, style_params);
+ mEditor->appendText(message, FALSE, style_params);
}
- blockUndo();
+ mEditor->blockUndo();
+}
+
+void LLChatHistory::draw()
+{
+ if (mEditor->scrolledToEnd())
+ {
+ mUnreadChatSources.clear();
+ mMoreChatPanel->setVisible(FALSE);
+ }
+
+ LLUICtrl::draw();
}
diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h
index 8ca7dd1d58..260015e2dc 100644
--- a/indra/newview/llchathistory.h
+++ b/indra/newview/llchathistory.h
@@ -34,10 +34,11 @@
#define LLCHATHISTORY_H_
#include "lltexteditor.h"
+#include "lltextbox.h"
#include "llviewerchat.h"
//Chat log widget allowing addition of a message as a widget
-class LLChatHistory : public LLTextEditor
+class LLChatHistory : public LLUICtrl
{
public:
struct Params : public LLInitParam::Block<Params, LLTextEditor::Params>
@@ -63,6 +64,8 @@ class LLChatHistory : public LLTextEditor
//Header bottom padding
Optional<S32> bottom_header_pad;
+ Optional<LLTextBox::Params> more_chat_text;
+
Params()
: message_header("message_header"),
message_separator("message_separator"),
@@ -73,15 +76,16 @@ class LLChatHistory : public LLTextEditor
top_separator_pad("top_separator_pad"),
bottom_separator_pad("bottom_separator_pad"),
top_header_pad("top_header_pad"),
- bottom_header_pad("bottom_header_pad")
- {
- }
+ bottom_header_pad("bottom_header_pad"),
+ more_chat_text("more_chat_text")
+ {}
};
protected:
LLChatHistory(const Params&);
friend class LLUICtrlFactory;
+ /*virtual*/ void draw();
/**
* Redefinition of LLTextEditor::updateTextRect() to considerate text
* left/right padding params.
@@ -98,9 +102,13 @@ class LLChatHistory : public LLTextEditor
*/
LLView* getHeader(const LLChat& chat,const LLStyle::Params& style_params);
+ void onClickMoreText();
+
public:
~LLChatHistory();
+ void initFromParams(const Params&);
+
/**
* Appends a widget message.
* If last user appended message, concurs with current user,
@@ -129,5 +137,11 @@ class LLChatHistory : public LLTextEditor
S32 mBottomSeparatorPad;
S32 mTopHeaderPad;
S32 mBottomHeaderPad;
+
+ LLPanel* mMoreChatPanel;
+ LLTextBox* mMoreChatText;
+ LLTextEditor* mEditor;
+ typedef std::set<std::string> unread_chat_source_t;
+ unread_chat_source_t mUnreadChatSources;
};
#endif /* LLCHATHISTORY_H_ */
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp
index 0b27001f10..effa57b1ef 100644
--- a/indra/newview/llfasttimerview.cpp
+++ b/indra/newview/llfasttimerview.cpp
@@ -98,6 +98,7 @@ LLFastTimerView::LLFastTimerView(const LLRect& rect)
mHoverBarIndex = -1;
FTV_NUM_TIMERS = LLFastTimer::NamedTimer::instanceCount();
mPrintStats = -1;
+ mAverageCyclesPerTimer = 0;
}
@@ -306,8 +307,9 @@ void LLFastTimerView::draw()
S32 height = (S32) (gViewerWindow->getWindowRectScaled().getHeight()*0.75f);
S32 width = (S32) (gViewerWindow->getWindowRectScaled().getWidth() * 0.75f);
- // HACK: casting away const. Should use setRect or some helper function instead.
- const_cast<LLRect&>(getRect()).setLeftTopAndSize(getRect().mLeft, getRect().mTop, width, height);
+ LLRect new_rect;
+ new_rect.setLeftTopAndSize(getRect().mLeft, getRect().mTop, width, height);
+ setRect(new_rect);
S32 left, top, right, bottom;
S32 x, y, barw, barh, dx, dy;
@@ -321,6 +323,10 @@ void LLFastTimerView::draw()
S32 xleft = margin;
S32 ytop = margin;
+ mAverageCyclesPerTimer = llround(lerp((F32)mAverageCyclesPerTimer, (F32)(LLFastTimer::sTimerCycles / (U64)LLFastTimer::sTimerCalls), 0.1f));
+ LLFastTimer::sTimerCycles = 0;
+ LLFastTimer::sTimerCalls = 0;
+
// Draw some help
{
@@ -328,6 +334,10 @@ void LLFastTimerView::draw()
y = height - ytop;
texth = (S32)LLFontGL::getFontMonospace()->getLineHeight();
+#if TIME_FAST_TIMERS
+ tdesc = llformat("Cycles per timer call: %d", mAverageCyclesPerTimer);
+ LLFontGL::getFontMonospace()->renderUTF8(tdesc, 0, x, y, LLColor4::white, LLFontGL::LEFT, LLFontGL::TOP);
+#else
char modedesc[][32] = {
"2 x Average ",
"Max ",
@@ -342,7 +352,6 @@ void LLFastTimerView::draw()
tdesc = llformat("Full bar = %s [Click to pause/reset] [SHIFT-Click to toggle]",modedesc[mDisplayMode]);
LLFontGL::getFontMonospace()->renderUTF8(tdesc, 0, x, y, LLColor4::white, LLFontGL::LEFT, LLFontGL::TOP);
-
textw = LLFontGL::getFontMonospace()->getWidth(tdesc);
x = xleft, y -= (texth + 2);
@@ -352,6 +361,7 @@ void LLFastTimerView::draw()
LLFontGL::getFontMonospace()->renderUTF8(std::string("[Right-Click log selected] [ALT-Click toggle counts] [ALT-SHIFT-Click sub hidden]"),
0, x, y, LLColor4::white, LLFontGL::LEFT, LLFontGL::TOP);
+#endif
y -= (texth + 2);
}
diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h
index 2bb023ab14..f5c8f23818 100644
--- a/indra/newview/llfasttimerview.h
+++ b/indra/newview/llfasttimerview.h
@@ -91,6 +91,7 @@ private:
S32 mHoverBarIndex;
LLFrameTimer mHighlightTimer;
S32 mPrintStats;
+ S32 mAverageCyclesPerTimer;
};
#endif
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index ff568a11a9..7e0e8bfaa7 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -760,8 +760,9 @@ void LLFloaterPreference::onClickResetCache()
{
gSavedSettings.setString("NewCacheLocation", "");
gSavedSettings.setString("NewCacheLocationTopFolder", "");
- LLNotificationsUtil::add("CacheWillBeMoved");
}
+
+ LLNotificationsUtil::add("CacheWillBeMoved");
std::string cache_location = gDirUtilp->getCacheDir(true);
gSavedSettings.setString("CacheLocation", cache_location);
std::string top_folder(gDirUtilp->getBaseFileName(cache_location));
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index dbecd45d1f..f53b62e490 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -1379,7 +1379,6 @@ void LLFloaterSnapshot::Impl::onClickDiscard(void* data)
if (view)
{
- view->getParent()->setMouseOpaque(FALSE);
view->closeFloater();
}
}
@@ -2105,6 +2104,12 @@ void LLFloaterSnapshot::onOpen(const LLSD& key)
gSnapshotFloaterView->adjustToFitScreen(this, FALSE);
}
+void LLFloaterSnapshot::onClose(bool app_quitting)
+{
+ getParent()->setMouseOpaque(FALSE);
+}
+
+
//static
void LLFloaterSnapshot::update()
{
diff --git a/indra/newview/llfloatersnapshot.h b/indra/newview/llfloatersnapshot.h
index bd01f6c573..1333497bd2 100644
--- a/indra/newview/llfloatersnapshot.h
+++ b/indra/newview/llfloatersnapshot.h
@@ -52,6 +52,7 @@ public:
/*virtual*/ BOOL postBuild();
/*virtual*/ void draw();
/*virtual*/ void onOpen(const LLSD& key);
+ /*virtual*/ void onClose(bool app_quitting);
static void update();
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index ffe7f57167..e9131a342e 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -403,6 +403,11 @@ void LLPanelProfileTab::updateButtons()
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
+bool enable_god()
+{
+ return gAgent.isGodlike();
+}
+
LLPanelAvatarProfile::LLPanelAvatarProfile()
: LLPanelProfileTab()
{
@@ -423,6 +428,13 @@ BOOL LLPanelAvatarProfile::postBuild()
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
registrar.add("Profile.Pay", boost::bind(&LLPanelAvatarProfile::pay, this));
registrar.add("Profile.Share", boost::bind(&LLPanelAvatarProfile::share, this));
+ registrar.add("Profile.Kick", boost::bind(&LLPanelAvatarProfile::kick, this));
+ registrar.add("Profile.Freeze", boost::bind(&LLPanelAvatarProfile::freeze, this));
+ registrar.add("Profile.Unfreeze", boost::bind(&LLPanelAvatarProfile::unfreeze, this));
+ registrar.add("Profile.CSR", boost::bind(&LLPanelAvatarProfile::csr, this));
+
+ LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable;
+ enable.add("Profile.EnableGod", boost::bind(&enable_god));
mProfileMenu = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_profile_overflow.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
@@ -622,6 +634,28 @@ void LLPanelAvatarProfile::share()
LLAvatarActions::share(getAvatarId());
}
+void LLPanelAvatarProfile::kick()
+{
+ LLAvatarActions::kick(getAvatarId());
+}
+
+void LLPanelAvatarProfile::freeze()
+{
+ LLAvatarActions::freeze(getAvatarId());
+}
+
+void LLPanelAvatarProfile::unfreeze()
+{
+ LLAvatarActions::unfreeze(getAvatarId());
+}
+
+void LLPanelAvatarProfile::csr()
+{
+ std::string name;
+ gCacheName->getFullName(getAvatarId(), name);
+ LLAvatarActions::csr(getAvatarId(), name);
+}
+
void LLPanelAvatarProfile::onUrlTextboxClicked(const std::string& url)
{
LLWeb::loadURL(url);
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index b19c5cca49..8f07c67fb1 100644
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
@@ -181,6 +181,15 @@ protected:
*/
void share();
+ void kick();
+ void freeze();
+ void unfreeze();
+ void csr();
+
+
+ bool enableGod();
+
+
void onUrlTextboxClicked(const std::string& url);
void onHomepageTextboxClicked();
void onAddFriendButtonClick();
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 74fbce890d..b1d09eccba 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -731,14 +731,13 @@ BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
// *HACK: We may select this object, so pretend it was clicked
mPick = mHoverPick;
LLInspector::Params p;
+ p.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());
p.message(avatar_name);
p.image(LLUI::getUIImage("Info"));
p.click_callback(boost::bind(showAvatarInspector, hover_object->getID()));
p.visible_time_near(6.f);
p.visible_time_far(3.f);
p.wrap(false);
-
- p.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());
LLToolTipMgr::instance().show(p);
}
@@ -822,6 +821,7 @@ BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
// We may select this object, so pretend it was clicked
mPick = mHoverPick;
LLInspector::Params p;
+ p.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());
p.message(tooltip_msg);
p.image(LLUI::getUIImage("Info_Off"));
p.click_callback(boost::bind(showObjectInspector, hover_object->getID(), mHoverPick.mObjectFace));
@@ -833,8 +833,6 @@ BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
p.visible_time_near(6.f);
p.visible_time_far(3.f);
p.wrap(false);
-
- p.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());
LLToolTipMgr::instance().show(p);
}
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 88e77f11ee..706245a479 100644
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -71,10 +71,14 @@
<color
name="Transparent"
value="0 0 0 0" />
+ <!-- Make potentially unused colors show up bright purple.
+ Leave this here until all Unused? are removed below, otherwise
+ the viewer generates many warnings on startup. -->
+ <color
+ name="Unused?"
+ value="1 0 1 1" />
-
-
- <!-- UI Definitions -->
+ <!-- UI Definitions -->
<color
name="AgentChatColor"
diff --git a/indra/newview/skins/default/textures/icons/SL_Logo.png b/indra/newview/skins/default/textures/icons/SL_Logo.png
new file mode 100644
index 0000000000..c9fbde987a
--- /dev/null
+++ b/indra/newview/skins/default/textures/icons/SL_Logo.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 412f8b6d68..8a9126208a 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -234,6 +234,7 @@ with the same filename but different name
<texture name="Inv_Gloves" file_name="icons/Inv_Gloves.png" preload="false" />
<texture name="Inv_Hair" file_name="icons/Inv_Hair.png" preload="false" />
<texture name="Inv_LinkItem" file_name="icons/Inv_LinkItem.png" preload="false" />
+ <texture name="Inv_LinkItem_Broken" file_name="icons/Inv_LinkItem_Broken.png" preload="false" />
<texture name="Inv_LinkFolder" file_name="icons/Inv_LinkFolder.png" preload="false" />
<texture name="Inv_Jacket" file_name="icons/Inv_Jacket.png" preload="false" />
<texture name="Inv_LookFolderOpen" file_name="icons/Inv_LookFolderOpen.png" preload="false" />
@@ -487,7 +488,8 @@ with the same filename but different name
<texture name="SliderThumb_Off" file_name="widgets/SliderThumb_Off.png" />
<texture name="SliderThumb_Disabled" file_name="widgets/SliderThumb_Disabled.png" />
<texture name="SliderThumb_Press" file_name="widgets/SliderThumb_Press.png" />
- <texture name="SL_Logo" file_name="map_infohub.tga" />
+
+ <texture name="SL_Logo" file_name="icons/SL_Logo.png" preload="true" />
<texture name="Snapshot_Off" file_name="bottomtray/Snapshot_Off.png" preload="true" scale.left="4" scale.top="19" scale.right="22" scale.bottom="4" />
<texture name="Snapshot_Over" file_name="bottomtray/Snapshot_Over.png" preload="false" />
@@ -495,12 +497,12 @@ with the same filename but different name
<texture name="startup_logo" file_name="windows/startup_logo.png" preload="true" />
- <texture name="Stepper_Down_Disabled" file_name="widgets/Stepper_Down_Disabled.png" preload="true" />
- <texture name="Stepper_Down_Off" file_name="widgets/Stepper_Down_Off.png" preload="true" />
- <texture name="Stepper_Down_Press" file_name="widgets/Stepper_Down_Press.png" preload="true" />
- <texture name="Stepper_Up_Disabled" file_name="widgets/Stepper_Up_Disabled.png" preload="true" />
- <texture name="Stepper_Up_Off" file_name="widgets/Stepper_Up_Off.png" preload="true" />
- <texture name="Stepper_Up_Press" file_name="widgets/Stepper_Up_Press.png" preload="true" />
+ <texture name="Stepper_Down_Disabled" file_name="widgets/Stepper_Down_Disabled.png" preload="false" />
+ <texture name="Stepper_Down_Off" file_name="widgets/Stepper_Down_Off.png" preload="false" />
+ <texture name="Stepper_Down_Press" file_name="widgets/Stepper_Down_Press.png" preload="false" />
+ <texture name="Stepper_Up_Disabled" file_name="widgets/Stepper_Up_Disabled.png" preload="false" />
+ <texture name="Stepper_Up_Off" file_name="widgets/Stepper_Up_Off.png" preload="false" />
+ <texture name="Stepper_Up_Press" file_name="widgets/Stepper_Up_Press.png" preload="false" />
<texture name="Stop_Off" file_name="icons/Stop_Off.png" preload="false" />
<texture name="Stop_Over" file_name="icons/Stop_Over.png" preload="false" />
diff --git a/indra/newview/skins/default/xui/en/floater_aaa.xml b/indra/newview/skins/default/xui/en/floater_aaa.xml
index 6956b73371..cb4cbd229a 100644
--- a/indra/newview/skins/default/xui/en/floater_aaa.xml
+++ b/indra/newview/skins/default/xui/en/floater_aaa.xml
@@ -15,21 +15,21 @@
title="TEST FLOATER"
save_dock_state="true"
save_visibility="true"
- single_instance="true"
+ single_instance="true"
width="320">
<string name="nudge_parabuild">Nudge 1</string>
<string name="test_the_vlt">This string is extracted.</string>
<chat_history
allow_html="true"
bg_readonly_color="ChatHistoryBgColor"
- bg_writeable_color="ChatHistoryBgColor"
- border_visible="false"
+ bg_writeable_color="ChatHistoryBgColor"
+ border_visible="false"
follows="all"
font="SansSerif"
- left="1"
+ left="1"
top="20"
layout="topleft"
- height="260"
+ height="260"
name="chat_history"
parse_highlights="true"
text_color="ChatHistoryTextColor"
diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml
index e632b67d11..169a0ea676 100644
--- a/indra/newview/skins/default/xui/en/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_world_map.xml
@@ -296,7 +296,7 @@
layout="topleft"
name="pg_label"
width="60">
- PG
+ General
</text>
<check_box
@@ -330,7 +330,7 @@
layout="topleft"
name="mature_label"
width="66">
- Mature
+ Moderate
</text>
<check_box
@@ -361,7 +361,7 @@
top_delta="2"
left_pad="3"
layout="topleft"
- name="pg_label"
+ name="adult_label"
width="66">
Adult
</text>
diff --git a/indra/newview/skins/default/xui/en/menu_profile_overflow.xml b/indra/newview/skins/default/xui/en/menu_profile_overflow.xml
index d0128d1c9a..1dc1c610cf 100644
--- a/indra/newview/skins/default/xui/en/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/en/menu_profile_overflow.xml
@@ -19,4 +19,40 @@
<menu_item_call.on_click
function="Profile.Share" />
</menu_item_call>
+ <menu_item_call
+ label="Kick"
+ layout="topleft"
+ name="kick">
+ <menu_item_call.on_click
+ function="Profile.Kick" />
+ <menu_item_call.on_visible
+ function="Profile.EnableGod" />
+ </menu_item_call>
+ <menu_item_call
+ label="Freeze"
+ layout="topleft"
+ name="freeze">
+ <menu_item_call.on_click
+ function="Profile.Freeze" />
+ <menu_item_call.on_visible
+ function="Profile.EnableGod" />
+ </menu_item_call>
+ <menu_item_call
+ label="Unfreeze"
+ layout="topleft"
+ name="unfreeze">
+ <menu_item_call.on_click
+ function="Profile.Unfreeze" />
+ <menu_item_call.on_visible
+ function="Profile.EnableGod" />
+ </menu_item_call>
+ <menu_item_call
+ label="CSR"
+ layout="topleft"
+ name="csr">
+ <menu_item_call.on_click
+ function="Profile.CSR" />
+ <menu_item_call.on_visible
+ function="Profile.EnableGod" />
+ </menu_item_call>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
index 7b0b4b0bde..790f8afd3a 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
@@ -33,10 +33,10 @@
height="18"
image_name="Lock"
layout="topleft"
- right="-50"
+ right="-15"
mouse_opaque="true"
name="IconLocked"
- top="4"
+ top="8"
width="18" />
<button
follows="top|right"
@@ -60,14 +60,23 @@
use_ellipses="true"
value="Object Profile"
width="275" />
+ <text
+ follows="top|left"
+ height="13"
+ layout="topleft"
+ left="45"
+ name="where"
+ text_color="LtGray_50"
+ value="(Inventory)"
+ width="150" />
<panel
follows="all"
- height="500"
+ height="490"
label=""
layout="topleft"
left="10"
help_topic=""
- top="30"
+ top="45"
width="313"
background_visible="true"
bg_alpha_color="DkGray2">
@@ -125,7 +134,7 @@
layout="topleft"
left="5"
name="LabelCreatorTitle"
-top_pad="10"
+ top_pad="10"
width="78">
Creator:
</text>
@@ -135,7 +144,7 @@ top_pad="10"
default_icon_name="Generic_Person"
layout="topleft"
left_pad="0"
- top_delta="-6"
+ top_delta="-6"
mouse_opaque="true"
width="20" />
<text
@@ -165,28 +174,28 @@ top_pad="10"
follows="left|top"
height="23"
layout="topleft"
- left="5"
+ left="5"
name="LabelOwnerTitle"
-top_pad="5"
+ top_pad="10"
width="78">
Owner:
</text>
<avatar_icon
- follows="top|left"
- height="20"
- default_icon_name="Generic_Person"
- layout="topleft"
- left_pad="0"
- top_delta="-6"
- mouse_opaque="true"
- width="20" />
+ follows="top|left"
+ height="20"
+ default_icon_name="Generic_Person"
+ layout="topleft"
+ left_pad="0"
+ top_delta="-6"
+ mouse_opaque="true"
+ width="20" />
<text
type="string"
- follows="left|right"
- font="SansSerifSmall"
- height="15"
- layout="topleft"
- left_pad="5"
+ follows="left|right"
+ font="SansSerifSmall"
+ height="15"
+ layout="topleft"
+ left_pad="5"
name="LabelOwnerName"
top_delta="6"
width="140">
@@ -224,7 +233,7 @@ top_pad="10"
top_delta="0"
width="222">
Wed May 24 12:50:46 2006
- </text>
+ </text>
<panel
border="false"
follows="left|top"
@@ -350,7 +359,7 @@ top_pad="10"
tool_tip="Next owner can give away or resell this object"
width="106" />
</panel>
- <check_box
+ <check_box
height="18"
label="For Sale"
layout="topleft"
@@ -388,144 +397,21 @@ top_pad="10"
height="23"
max_val="999999999"
top_pad="10"/>
- <!--line_editor
- border_style="line"
- border_thickness="1"
- follows="left|top|right"
- height="16"
- layout="topleft"
- left_pad="5"
- max_length="25"
- name="EditPrice"
- top_delta="0"
- width="242" /-->
- <!--text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="10"
- name="BaseMaskDebug"
- top="155"
- width="330">
- B:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left_delta="60"
- name="OwnerMaskDebug"
- top_delta="0"
- width="270">
- O:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left_delta="60"
- name="GroupMaskDebug"
- top_delta="0"
- width="210">
- G:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left_delta="60"
- name="EveryoneMaskDebug"
- top_delta="0"
- width="150">
- E:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left_delta="60"
- name="NextMaskDebug"
- top_delta="0"
- width="90">
- N:
- </text-->
- <!--text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="10"
- name="SaleLabel"
- top_pad="5"
- width="330">
- Mark Item:
- </text-->
- <!--radio_group
- draw_border="false"
- follows="left|top|right"
- height="16"
- layout="topleft"
- left_delta="78"
- name="RadioSaleType"
- top_delta="0"
- width="252">
- <radio_item
- height="16"
- label="Original"
- layout="topleft"
- left="0"
- name="radio"
- top="0"
- width="70" />
- <radio_item
- height="16"
- label="Copy"
- layout="topleft"
- left_delta="60"
- name="radio2"
- top_delta="0"
- width="70" />
- </radio_group-->
- <!--text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="10"
- name="TextPrice"
- top_pad="5"
- width="78">
- Price: L$
- </text-->
- </panel>
+ </panel>
<panel
- height="25"
+ height="30"
layout="bottomright"
help_topic="button_tab"
name="button_panel"
left="5"
- bottom="5"
+ bottom="2"
width="313">
<button
- follows="bottom|right"
- height="25"
+ height="23"
label="Cancel"
layout="topleft"
name="cancel_btn"
right="-1"
- left_pad="10"
width="100" />
- </panel>
-</panel>
+ </panel>
+ </panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
index 5b379b54e3..d26e855e2f 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
@@ -6,7 +6,7 @@
name="object properties"
help_topic="object_properties"
save_rect="true"
- title="Object Properties"
+ title="Object Profile"
width="333">
<panel.string
name="text deed continued">
@@ -57,127 +57,173 @@
Mixed Sale
</panel.string>
<button
- follows="top|right"
- height="25"
- image_overlay="BackArrow_Off"
- layout="topleft"
- name="back_btn"
- picture_style="true"
- right="-5"
- tab_stop="false"
- top="0"
- width="25" />
+ follows="top|right"
+ height="23"
+ image_overlay="BackArrow_Off"
+ layout="topleft"
+ left="10"
+ name="back_btn"
+ tab_stop="false"
+ top="0"
+ width="23" />
+ <text
+ follows="top|left|right"
+ font="SansSerifHuge"
+ height="26"
+ layout="topleft"
+ left_pad="10"
+ name="title"
+ text_color="LtGray"
+ top="0"
+ use_ellipses="true"
+ value="Object Profile"
+ width="275" />
+ <text
+ follows="top|left"
+ height="13"
+ layout="topleft"
+ left="45"
+ name="where"
+ text_color="LtGray_50"
+ value="(In World)"
+ width="150" />
<panel
follows="all"
- height="500"
+ height="490"
label=""
layout="topleft"
- left="5"
+ left="10"
help_topic=""
- top="30"
- border="1"
- width="313">
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="10"
+ top="45"
+ width="313"
+ background_visible="true"
+ bg_alpha_color="DkGray2">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="5"
name="Name:"
- top_pad="5"
- width="90">
- Name:
- </text>
- <line_editor
- follows="left|top|right"
- height="19"
- layout="topleft"
- left_pad="0"
- max_length="63"
+ top="10"
+ width="78">
+ Name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="20"
+ layout="topleft"
+ left_delta="78"
+ max_length="63"
name="Object Name"
- select_on_focus="true"
- top_delta="0"
- width="170" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="10"
+ top_delta="0"
+ width="225" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="5"
name="Description:"
- top_pad="3"
- width="90">
- Description:
- </text>
+ top_pad="10"
+ width="78">
+ Description:
+ </text>
<line_editor
+ border_style="line"
+ border_thickness="1"
follows="left|top|right"
- height="19"
+ height="23"
layout="topleft"
- left_pad="0"
- max_length="127"
name="Object Description"
select_on_focus="true"
- top_delta="0"
- width="170" />
- <text
- type="string"
- left="10"
- length="1"
- follows="left|top"
- height="19"
- layout="topleft"
- name="Creator:"
- width="90">
- Creator:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- left_pad="0"
- height="19"
- layout="topleft"
+ left_delta="78"
+ max_length="127"
+ top_delta="-5"
+ width="225"/>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="5"
+ name="CreatorNameLabel"
+ top_pad="10"
+ width="78">
+ Creator:
+ </text>
+ <avatar_icon
+ follows="top|left"
+ height="20"
+ default_icon_name="Generic_Person"
+ layout="topleft"
+ left_pad="0"
+ top_delta="-6"
+ mouse_opaque="true"
+ width="20" />
+ <text
+ type="string"
+ follows="left|right"
+ font="SansSerifSmall"
+ height="15"
+ layout="topleft"
+ left_pad="5"
name="Creator Name"
- width="175">
- Esbee Linden
- </text>
- <text
- type="string"
- length="1"
- left="10"
- follows="left|top"
- height="19"
- layout="topleft"
- name="Owner:"
- width="90">
- Owner:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="19"
- layout="topleft"
- name="Owner Name"
- left_pad="0"
- width="175">
- Erica Linden
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- layout="topleft"
- left="10"
- height="18"
- name="Group:"
- top_pad="4"
- width="75">
- Group:
- </text>
- <button
+ top_delta="6"
+ width="140">
+ Erica Linden
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="5"
+ name="Owner:"
+ top_pad="10"
+ width="78">
+ Owner:
+ </text>
+ <avatar_icon
+ follows="top|left"
+ height="20"
+ default_icon_name="Generic_Person"
+ layout="topleft"
+ left_pad="0"
+ top_delta="-6"
+ mouse_opaque="true"
+ width="20" />
+ <text
+ type="string"
+ follows="left|right"
+ font="SansSerifSmall"
+ height="15"
+ layout="topleft"
+ left_pad="5"
+ name="Owner Name"
+ top_delta="6"
+ width="140">
+ Erica Linden
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="5"
+ name="Group_label"
+ top_pad="10"
+ width="78">
+ Group:
+ </text>
+ <button
follows="top|left"
height="10"
image_disabled="Activate_Checkmark"
@@ -203,43 +249,34 @@
width="150" />
<button
follows="top|left"
- height="20"
+ height="23"
label="Deed"
label_selected="Deed"
layout="topleft"
name="button deed"
top_pad="0"
- left="100"
+ left="81"
tool_tip="Deeding gives this item away with next owner permissions. Group shared objects can be deeded by a group officer."
- width="80" />
- <check_box
- height="19"
- follows="left|top"
- label="Share"
- layout="topleft"
- name="checkbox share with group"
- tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions."
- left_pad="3"
width="100" />
<text
type="string"
length="1"
follows="left|top"
- height="16"
+ height="9"
layout="topleft"
- top_pad="15"
- left="10"
+ top_pad="5"
+ left="5"
name="label click action"
- width="90">
+ width="280">
Click to:
</text>
<combo_box
follows="left|top"
- height="20"
+ height="23"
layout="topleft"
name="clickaction"
width="168"
- left_pad="0">
+ left="81">
<combo_box.item
label="Touch (default)"
name="Touch/grab(default)"
@@ -261,26 +298,131 @@
name="Open"
value="Open" />
</combo_box>
- <check_box
- height="16"
+ <panel
+ border="false"
+ follows="left|top"
+ layout="topleft"
+ mouse_opaque="false"
+ background_visible="true"
+ bg_alpha_color="DkGray"
+ name="perms_inv"
+ left="0"
+ top_pad="15"
+ height="135"
+ width="313">
+ <text
+ type="string"
+ length="1"
+ left="10"
top_pad="15"
- label="For Sale:"
+ text_color="EmphasisColor"
+ height="15"
+ follows="left|top|right"
+ layout="topleft"
+ name="perm_modify"
+ width="200">
+ You can modify this object
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Anyone can:"
+ top_pad="8"
+ width="100">
+ Anyone:
+ </text>
+ <check_box
+ height="18"
+ label="Copy"
+ layout="topleft"
+ left_pad="0"
+ name="checkbox allow everyone copy"
+ top_delta="-2"
+ width="90" />
+ <check_box
+ height="18"
+ label="Move"
layout="topleft"
+ name="checkbox allow everyone move"
+ left_pad="0"
+ width="150" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="GroupLabel"
+ top_pad="8"
+ width="100">
+ Group:
+ </text>
+ <check_box
+ height="18"
+ label="Share"
+ layout="topleft"
+ left_pad="90"
+ top_delta="-2"
+ name="checkbox share with group"
+ tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions."
+ width="150" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="NextOwnerLabel"
+ top_pad="8"
+ width="200"
+ word_wrap="true">
+ Next owner:
+ </text>
+ <check_box
+ height="18"
+ label="Modify"
+ layout="topleft"
+ left="20"
+ top_pad="0"
+ name="checkbox next owner can modify"
+ width="90" />
+ <check_box
+ height="18"
+ label="Copy"
+ layout="topleft"
+ left_pad="0"
+ name="checkbox next owner can copy"
+ width="90" />
+ <check_box
+ height="18"
+ label="Transfer"
+ layout="topleft"
+ left_pad="0"
+ name="checkbox next owner can transfer"
+ tool_tip="Next owner can give away or resell this object"
+ width="106" />
+ </panel>
+ <check_box
+ height="23"
+ label="For Sale"
+ layout="topleft"
+ left="20"
name="checkbox for sale"
- left="10"
- width="90" />
-<!-- NEW SALE TYPE COMBO BOX -->
- <combo_box
- left_pad="0"
- layout="topleft"
- follows="left|top"
- allow_text_entry="false"
- height="20"
- intial_value="2"
- max_chars="20"
- mouse_opaque="true"
+ top_pad="10"
+ width="100" />
+ <combo_box
+ height="23"
+ left_pad="0"
+ layout="topleft"
+ follows="left|top"
name="sale type"
- width="158">
+ width="170">
<combo_box.item
name="Copy"
label="Copy"
@@ -293,14 +435,13 @@
name="Original"
label="Original"
value="1" />
- </combo_box>
-<!-- NEW PRICE SPINNER -->
- <spinner
+ </combo_box>
+ <spinner
follows="left|top"
decimal_digits="0"
increment="1"
- top_pad="8"
- left="100"
+ top_pad="10"
+ left="120"
control_name="Edit Cost"
name="Edit Cost"
label="Price: L$"
@@ -310,106 +451,25 @@
height="20"
max_val="999999999" />
<check_box
- height="15"
+ height="20"
width="110"
- top_pad="3"
+ top_pad="6"
label="Show in search"
layout="topleft"
- left="100"
+ left="120"
name="search_check"
tool_tip="Let people see this object in search results" />
- <panel
- border="false"
- follows="left|top"
- layout="topleft"
- mouse_opaque="false"
- background_visible="true"
- bg_alpha_color="DkGray"
- name="perms_build"
- left="0"
- top="241"
- height="120"
- width="278">
- <text
- type="string"
- length="1"
- left="10"
- top_pad="9"
- text_color="EmphasisColor"
- height="16"
- follows="left|top|right"
- layout="topleft"
- name="perm_modify"
- width="250">
- You can modify this object
- </text>
- <text
- type="string"
- follows="left|top"
- name="Anyone can:"
- width="250"
- left="10">
- Anyone:
- </text>
- <check_box
- height="19"
- label="Move"
- layout="topleft"
- name="checkbox allow everyone move"
- left="15"
- width="85" />
- <check_box
- height="19"
- label="Copy"
- layout="topleft"
- left_pad="0"
- name="checkbox allow everyone copy"
- width="90" />
- <text
- type="string"
- follows="left|top"
- height="19"
- name="Next owner can:"
- width="250"
- left="10">
- Next owner:
- </text>
- <check_box
- follows="left|top|right"
- label="Modify"
- layout="topleft"
- left="15"
- name="checkbox next owner can modify"
- width="85" />
- <check_box
- follows="left|top|right"
- height="19"
- label="Copy"
- layout="topleft"
- left_pad="0"
- name="checkbox next owner can copy"
- width="90" />
- <check_box
- follows="left|top|right"
- height="19"
- label="Transfer"
- layout="topleft"
- name="checkbox next owner can transfer"
- left_pad="0"
- top_delta="0"
- tool_tip="Next owner can give away or resell this object"
- width="90" />
<text
type="string"
text_color="EmphasisColor"
length="1"
- top_pad="5"
+ top_pad="15"
follows="left|top"
layout="topleft"
left="10"
name="B:"
height="10"
- width="45">
+ width="50">
B:
</text>
<text
@@ -421,7 +481,7 @@
left_pad="0"
name="O:"
height="10"
- width="44">
+ width="50">
O:
</text>
<text
@@ -433,7 +493,7 @@
left_pad="0"
name="G:"
height="10"
- width="43">
+ width="50">
G:
</text>
<text
@@ -445,7 +505,7 @@
layout="topleft"
name="E:"
height="10"
- width="43">
+ width="50">
E:
</text>
<text
@@ -457,7 +517,7 @@
left_pad="0"
name="N:"
height="10"
- width="48">
+ width="50">
N:
</text>
<text
@@ -473,7 +533,6 @@
F:
</text>
</panel>
- </panel>
<panel
height="25"
layout="bottomright"
@@ -484,30 +543,30 @@
width="313">
<button
follows="bottom|left"
- height="25"
+ height="23"
label="Open"
layout="topleft"
left="5"
name="open_btn"
top="0"
- width="60" />
+ width="100" />
<button
follows="bottom|left"
- height="25"
+ height="23"
label="Pay"
layout="topleft"
left_pad="5"
name="pay_btn"
top="0"
- width="50" />
+ width="100" />
<button
follows="bottom|left"
- height="25"
+ height="23"
label="Buy"
layout="topleft"
left_pad="5"
name="buy_btn"
top="0"
- width="60" />
+ width="100" />
</panel>
</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 9aae04ba38..acdf3d1bf7 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2996,4 +2996,10 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="close_on_no_ability">
You no longer have the ability to be in the chat session.
</string>
+ <string name="unread_chat_single">
+ [SOURCES] has said something new
+ </string>"
+ <string name="unread_chat_multiple">
+ [SOURCES] have said something new
+ </string>"
</strings>
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 2be37d222a..8785dff2ae 100644
--- a/indra/newview/skins/default/xui/en/widgets/chat_history.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chat_history.xml
@@ -11,9 +11,13 @@
top_header_pad="17"
bottom_header_pad="10"
max_length="2147483647"
- enabled="false"
track_bottom="true"
name="chat_history"
type="string"
word_wrap="true"
- font="SansSerif"/>
+ font="SansSerif">
+ <more_chat_text
+ mouse_opaque="true"
+ word_wrap="true"
+ />
+</chat_history>
diff --git a/indra/newview/skins/default/xui/en/widgets/tab_container.xml b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
index 3368fa88ef..3f5a4b8379 100644
--- a/indra/newview/skins/default/xui/en/widgets/tab_container.xml
+++ b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
@@ -20,12 +20,12 @@ label_pad_left - padding to the left of tab button labels
tab_top_image_selected="TabTop_Middle_Selected"
tab_bottom_image_unselected="Toolbar_Middle_Off"
tab_bottom_image_selected="Toolbar_Middle_Selected"
- tab_left_image_unselected="TabTop_Middle_Off"
- tab_left_image_selected="TabTop_Middle_Selected"/>
+ tab_left_image_unselected="SegmentedBtn_Left_Disabled"
+ tab_left_image_selected="SegmentedBtn_Left_Off"/>
<last_tab tab_top_image_unselected="TabTop_Right_Off"
tab_top_image_selected="TabTop_Right_Selected"
tab_bottom_image_unselected="Toolbar_Right_Off"
tab_bottom_image_selected="Toolbar_Right_Selected"
- tab_left_image_unselected="TabTop_Middle_Off"
- tab_left_image_selected="TabTop_Middle_Selected"/>
+ tab_left_image_unselected="SegmentedBtn_Left_Disabled"
+ tab_left_image_selected="SegmentedBtn_Left_Off"/>
</tab_container>