summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llui/llmenugl.cpp33
-rw-r--r--indra/newview/CMakeLists.txt2
-rw-r--r--indra/newview/app_settings/settings.xml22
-rw-r--r--indra/newview/llagentwearables.cpp14
-rw-r--r--indra/newview/llfloaterpreference.cpp124
-rw-r--r--indra/newview/llfloaterpreference.h4
-rw-r--r--indra/newview/llfloaterwindowsize.cpp164
-rw-r--r--indra/newview/llfloaterwindowsize.h41
-rw-r--r--indra/newview/llfolderview.cpp3
-rw-r--r--indra/newview/llfolderviewitem.cpp3
-rw-r--r--indra/newview/llfolderviewitem.h3
-rw-r--r--indra/newview/llpreviewtexture.cpp10
-rw-r--r--indra/newview/llsidepaneliteminfo.cpp8
-rw-r--r--indra/newview/llvieweraudio.cpp24
-rw-r--r--indra/newview/llviewerfloaterreg.cpp2
-rw-r--r--indra/newview/llvoicechannel.cpp21
-rw-r--r--indra/newview/llvoiceclient.cpp4
-rw-r--r--indra/newview/llvoiceclient.h1
-rw-r--r--indra/newview/skins/default/textures/icons/Parcel_Damage_Light_Alt.pngbin0 -> 285 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml95
-rw-r--r--indra/newview/skins/default/xui/en/favorites_bar_button.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_texture.xml6
-rw-r--r--indra/newview/skins/default/xui/en/floater_window_size.xml64
-rw-r--r--indra/newview/skins/default/xui/en/inspect_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_login.xml7
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml7
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray.xml4
-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_preferences_advanced.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_prim_media_controls.xml3
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_item_info.xml4
-rw-r--r--indra/newview/skins/default/xui/en/widgets/location_input.xml7
33 files changed, 435 insertions, 256 deletions
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 60ef01074b..2648cbf08d 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -23,7 +23,7 @@
* 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.
@@ -1208,22 +1208,41 @@ void LLMenuItemBranchGL::openMenu()
branch->arrange();
- LLRect rect = branch->getRect();
+ LLRect branch_rect = branch->getRect();
// calculate root-view relative position for branch menu
S32 left = getRect().mRight;
S32 top = getRect().mTop - getRect().mBottom;
localPointToOtherView(left, top, &left, &top, branch->getParent());
- rect.setLeftTopAndSize( left, top,
- rect.getWidth(), rect.getHeight() );
+ branch_rect.setLeftTopAndSize( left, top,
+ branch_rect.getWidth(), branch_rect.getHeight() );
if (branch->getCanTearOff())
{
- rect.translate(0, TEAROFF_SEPARATOR_HEIGHT_PIXELS);
+ branch_rect.translate(0, TEAROFF_SEPARATOR_HEIGHT_PIXELS);
+ }
+ branch->setRect( branch_rect );
+
+ // if branch extends outside of menu region change the direction it opens in
+ S32 x, y;
+ S32 delta_x = 0;
+ S32 delta_y = 0;
+ branch->localPointToOtherView( 0, 0, &x, &y, branch->getParent() );
+ if( y < menu_region_rect.mBottom )
+ {
+ // open upwards if menu extends past bottom
+ // adjust by the height of the menu item branch since it is a submenu
+ delta_y = branch_rect.getHeight() - getRect().getHeight();
}
- branch->setRect( rect );
- branch->translateIntoRectWithExclusion( menu_region_rect, getMenu()->getRect(), FALSE );
+
+ if( x + branch_rect.getWidth() > menu_region_rect.mRight )
+ {
+ // move sub-menu over to left side
+ delta_x = llmax(-x, ( -(branch_rect.getWidth() + getRect().getWidth())));
+ }
+ branch->translate( delta_x, delta_y );
+
branch->setVisible( TRUE );
branch->getParent()->sendChildToFront(branch);
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index a25f805437..8918fc3018 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -218,6 +218,7 @@ set(viewer_SOURCE_FILES
llfloaterwater.cpp
llfloaterwhitelistentry.cpp
llfloaterwindlight.cpp
+ llfloaterwindowsize.cpp
llfloaterworldmap.cpp
llfolderview.cpp
llfolderviewitem.cpp
@@ -725,6 +726,7 @@ set(viewer_HEADER_FILES
llfloaterwater.h
llfloaterwhitelistentry.h
llfloaterwindlight.h
+ llfloaterwindowsize.h
llfloaterworldmap.h
llfolderview.h
llfoldervieweventlistener.h
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 0ee39c2fc8..e24e1a8605 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -265,6 +265,17 @@
<key>Value</key>
<real>0.5</real>
</map>
+ <key>AudioLevelWind</key>
+ <map>
+ <key>Comment</key>
+ <string>Audio level of wind noise when standing still</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0.5</real>
+ </map>
<key>AudioSteamingMedia</key>
<map>
<key>Comment</key>
@@ -3235,6 +3246,17 @@
<key>Value</key>
<real>0.75</real>
</map>
+ <key>FolderIndentation</key>
+ <map>
+ <key>Comment</key>
+ <string>Number of pixels to indent subfolders in inventory</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>8</integer>
+ </map>
<key>FolderLoadingMessageWaitTime</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 79ba3fb51d..b221c28dcd 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -2128,6 +2128,7 @@ void LLLibraryOutfitsFetch::done()
}
if (mOutfitsPopulated)
{
+ gInventory.notifyObservers();
delete this;
}
}
@@ -2162,6 +2163,11 @@ void LLLibraryOutfitsFetch::folderDone(void)
// everything is already here - call done.
outfitsDone();
}
+ else
+ {
+ gInventory.removeObserver(this);
+ gInventory.addObserver(this);
+ }
}
void LLLibraryOutfitsFetch::outfitsDone(void)
@@ -2172,6 +2178,8 @@ void LLLibraryOutfitsFetch::outfitsDone(void)
LLInventoryModel::EXCLUDE_TRASH);
LLInventoryFetchDescendentsObserver::folder_ref_t folders;
+
+ llassert(cat_array.count() > 0);
for(S32 i = 0; i < cat_array.count(); ++i)
{
if (cat_array.get(i)->getName() != "More Outfits" && cat_array.get(i)->getName() != "Ruth"){
@@ -2186,6 +2194,11 @@ void LLLibraryOutfitsFetch::outfitsDone(void)
// everything is already here - call done.
contentsDone();
}
+ else
+ {
+ gInventory.removeObserver(this);
+ gInventory.addObserver(this);
+ }
}
void LLLibraryOutfitsFetch::contentsDone(void)
@@ -2199,7 +2212,6 @@ void LLLibraryOutfitsFetch::contentsDone(void)
mOutfits[i].second);
LLAppearanceManager::getInstance()->shallowCopyCategory(mOutfits[i].first, folder_id, NULL);
- gInventory.notifyObservers();
}
mOutfitsPopulated = true;
}
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 7e0e8bfaa7..11dd48056c 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -103,15 +103,10 @@
#include "llworld.h"
#include "pipeline.h"
#include "lluictrlfactory.h"
-#include "llboost.h"
#include "llviewermedia.h"
#include "llpluginclassmedia.h"
#include "llteleporthistorystorage.h"
-#include <boost/regex.hpp>
-
-//RN temporary includes for resolution switching
-#include "llglheaders.h"
const F32 MAX_USER_FAR_CLIP = 512.f;
const F32 MIN_USER_FAR_CLIP = 64.f;
@@ -193,7 +188,6 @@ bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response
bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater);
bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater);
-bool extractWindowSizeFromString(const std::string& instr, U32 &width, U32 &height);
void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator);
viewer_media_t get_web_media()
@@ -273,23 +267,6 @@ bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFl
}
-// Extract from strings of the form "<width> x <height>", e.g. "640 x 480".
-bool extractWindowSizeFromString(const std::string& instr, U32 &width, U32 &height)
-{
- using namespace boost;
- cmatch what;
- const regex expression("([0-9]+) x ([0-9]+)");
- if (regex_match(instr.c_str(), what, expression))
- {
- width = atoi(what[1].first);
- height = atoi(what[2].first);
- return true;
- }
-
- width = height = 0;
- return false;
-}
-
void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator)
{
numerator = 0;
@@ -499,13 +476,6 @@ void LLFloaterPreference::apply()
}
applyResolution();
-
- // Only set window size if we're not in fullscreen mode
- if(!gSavedSettings.getBOOL("WindowFullScreen"))
- {
- applyWindowSize();
- }
-
}
void LLFloaterPreference::cancel()
@@ -1264,20 +1234,6 @@ void LLFloaterPreference::onKeystrokeAspectRatio()
getChild<LLCheckBoxCtrl>("aspect_auto_detect")->set(FALSE);
}
-void LLFloaterPreference::applyWindowSize()
-{
- LLComboBox* ctrl_windowSize = getChild<LLComboBox>("windowsize combo");
- if (ctrl_windowSize->getVisible() && (ctrl_windowSize->getCurrentIndex() != -1))
- {
- U32 width = 0;
- U32 height = 0;
- if (extractWindowSizeFromString(ctrl_windowSize->getValue().asString().c_str(), width,height))
- {
- LLViewerWindow::movieSize(width, height);
- }
- }
-}
-
void LLFloaterPreference::applyResolution()
{
LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio");
@@ -1345,36 +1301,7 @@ void LLFloaterPreference::applyResolution()
refresh();
}
-void LLFloaterPreference::initWindowSizeControls(LLPanel* panelp)
-{
- // Window size
- // mWindowSizeLabel = getChild<LLTextBox>("WindowSizeLabel");
- LLComboBox* ctrl_window_size = panelp->getChild<LLComboBox>("windowsize combo");
-
- // Look to see if current window size matches existing window sizes, if so then
- // just set the selection value...
- const U32 height = gViewerWindow->getWindowHeightRaw();
- const U32 width = gViewerWindow->getWindowWidthRaw();
- for (S32 i=0; i < ctrl_window_size->getItemCount(); i++)
- {
- U32 height_test = 0;
- U32 width_test = 0;
- ctrl_window_size->setCurrentByIndex(i);
- if (extractWindowSizeFromString(ctrl_window_size->getValue().asString(), width_test, height_test))
- {
- if ((height_test == height) && (width_test == width))
- {
- return;
- }
- }
- }
- // ...otherwise, add a new entry with the current window height/width.
- LLUIString resolution_label = panelp->getString("resolution_format");
- resolution_label.setArg("[RES_X]", llformat("%d", width));
- resolution_label.setArg("[RES_Y]", llformat("%d", height));
- ctrl_window_size->add(resolution_label, ADD_TOP);
- ctrl_window_size->setCurrentByIndex(0);
-}
+
void LLFloaterPreference::applyUIColor(LLUICtrl* ctrl, const LLSD& param)
@@ -1433,53 +1360,8 @@ BOOL LLPanelPreference::postBuild()
if(hasChild("aspect_ratio"))
{
- //============================================================================
- // Resolution
-/*
- S32 num_resolutions = 0;
- LLWindow::LLWindowResolution* supported_resolutions = gViewerWindow->getWindow()->getSupportedResolutions(num_resolutions);
-
- S32 fullscreen_mode = num_resolutions - 1;
-
- LLComboBox*ctrl_full_screen = getChild<LLComboBox>( "fullscreen combo");
- LLUIString resolution_label = getString("resolution_format");
-
- for (S32 i = 0; i < num_resolutions; i++)
- {
- resolution_label.setArg("[RES_X]", llformat("%d", supported_resolutions[i].mWidth));
- resolution_label.setArg("[RES_Y]", llformat("%d", supported_resolutions[i].mHeight));
- ctrl_full_screen->add( resolution_label, ADD_BOTTOM );
- }
-
- {
- BOOL targetFullscreen;
- S32 targetWidth;
- S32 targetHeight;
-
- gViewerWindow->getTargetWindow(targetFullscreen, targetWidth, targetHeight);
-
- if (targetFullscreen)
- {
- fullscreen_mode = 0; // default to 800x600
- for (S32 i = 0; i < num_resolutions; i++)
- {
- if (targetWidth == supported_resolutions[i].mWidth
- && targetHeight == supported_resolutions[i].mHeight)
- {
- fullscreen_mode = i;
- }
- }
- ctrl_full_screen->setCurrentByIndex(fullscreen_mode);
- }
- else
- {
- // set to windowed mode
- //fullscreen_mode = mCtrlFullScreen->getItemCount() - 1;
- ctrl_full_screen->setCurrentByIndex(0);
- }
- }
- */
- LLFloaterPreference::initWindowSizeControls(this);
+ // We used to set up fullscreen resolution and window size
+ // controls here, see LLFloaterWindowSize::initWindowSizeControls()
if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio"))
{
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index 94108cb79a..74a53d673c 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -130,16 +130,12 @@ public:
void onUpdateSliderText(LLUICtrl* ctrl, const LLSD& name);
void onKeystrokeAspectRatio();
// void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator);
-// bool extractWindowSizeFromString(const std::string& instr, U32 &width, U32 &height);
void onCommitAutoDetectAspect();
void applyResolution();
- void applyWindowSize();
void applyUIColor(LLUICtrl* ctrl, const LLSD& param);
void getUIColor(LLUICtrl* ctrl, const LLSD& param);
- static void initWindowSizeControls(LLPanel* panelp);
-
void buildPopupLists();
static void refreshSkin(void* data);
static void cleanupBadSetting();
diff --git a/indra/newview/llfloaterwindowsize.cpp b/indra/newview/llfloaterwindowsize.cpp
new file mode 100644
index 0000000000..5519be6f08
--- /dev/null
+++ b/indra/newview/llfloaterwindowsize.cpp
@@ -0,0 +1,164 @@
+/**
+ * @file llfloaterwindowsize.cpp
+ *
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
+ * Copyright (c) 2001-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"
+
+#include "llfloaterwindowsize.h"
+
+// Viewer includes
+#include "llviewerwindow.h"
+
+// Linden library includes
+#include "llcombobox.h"
+#include "llfloater.h"
+#include "llfloaterreg.h"
+#include "lluictrl.h"
+
+// System libraries
+#include <boost/regex.hpp>
+
+// Extract from strings of the form "<width> x <height>", e.g. "640 x 480".
+bool extractWindowSizeFromString(const std::string& instr, U32 *width, U32 *height)
+{
+ boost::cmatch what;
+ // matches (any number)(any non-number)(any number)
+ const boost::regex expression("([0-9]+)[^0-9]+([0-9]+)");
+ if (boost::regex_match(instr.c_str(), what, expression))
+ {
+ *width = atoi(what[1].first);
+ *height = atoi(what[2].first);
+ return true;
+ }
+
+ *width = 0;
+ *height = 0;
+ return false;
+}
+
+
+///----------------------------------------------------------------------------
+/// Class LLFloaterWindowSize
+///----------------------------------------------------------------------------
+class LLFloaterWindowSize
+: public LLFloater
+{
+ friend class LLFloaterReg;
+private:
+ LLFloaterWindowSize(const LLSD& key);
+ virtual ~LLFloaterWindowSize();
+
+public:
+ /*virtual*/ BOOL postBuild();
+ void initWindowSizeControls();
+ void onClickSet();
+ void onClickCancel();
+};
+
+
+LLFloaterWindowSize::LLFloaterWindowSize(const LLSD& key)
+: LLFloater(key)
+{
+ //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_window_size.xml");
+}
+
+LLFloaterWindowSize::~LLFloaterWindowSize()
+{
+}
+
+BOOL LLFloaterWindowSize::postBuild()
+{
+ center();
+ initWindowSizeControls();
+ getChild<LLUICtrl>("set_btn")->setCommitCallback(
+ boost::bind(&LLFloaterWindowSize::onClickSet, this));
+ getChild<LLUICtrl>("cancel_btn")->setCommitCallback(
+ boost::bind(&LLFloaterWindowSize::onClickCancel, this));
+ setDefaultBtn("set_btn");
+ return TRUE;
+}
+
+void LLFloaterWindowSize::initWindowSizeControls()
+{
+ LLComboBox* ctrl_window_size = getChild<LLComboBox>("window_size_combo");
+
+ // Look to see if current window size matches existing window sizes, if so then
+ // just set the selection value...
+ const U32 height = gViewerWindow->getWindowHeightRaw();
+ const U32 width = gViewerWindow->getWindowWidthRaw();
+ for (S32 i=0; i < ctrl_window_size->getItemCount(); i++)
+ {
+ U32 height_test = 0;
+ U32 width_test = 0;
+ ctrl_window_size->setCurrentByIndex(i);
+ std::string resolution = ctrl_window_size->getValue().asString();
+ if (extractWindowSizeFromString(resolution, &width_test, &height_test))
+ {
+ if ((height_test == height) && (width_test == width))
+ {
+ return;
+ }
+ }
+ }
+ // ...otherwise, add a new entry with the current window height/width.
+ LLUIString resolution_label = getString("resolution_format");
+ resolution_label.setArg("[RES_X]", llformat("%d", width));
+ resolution_label.setArg("[RES_Y]", llformat("%d", height));
+ ctrl_window_size->add(resolution_label, ADD_TOP);
+ ctrl_window_size->setCurrentByIndex(0);
+}
+
+void LLFloaterWindowSize::onClickSet()
+{
+ LLComboBox* ctrl_window_size = getChild<LLComboBox>("window_size_combo");
+ U32 width = 0;
+ U32 height = 0;
+ std::string resolution = ctrl_window_size->getValue().asString();
+ if (extractWindowSizeFromString(resolution, &width, &height))
+ {
+ LLViewerWindow::movieSize(width, height);
+ }
+ closeFloater();
+}
+
+void LLFloaterWindowSize::onClickCancel()
+{
+ closeFloater();
+}
+
+///----------------------------------------------------------------------------
+/// LLFloaterWindowSizeUtil
+///----------------------------------------------------------------------------
+void LLFloaterWindowSizeUtil::registerFloater()
+{
+ LLFloaterReg::add("window_size", "floater_window_size.xml",
+ &LLFloaterReg::build<LLFloaterWindowSize>);
+
+}
diff --git a/indra/newview/llfloaterwindowsize.h b/indra/newview/llfloaterwindowsize.h
new file mode 100644
index 0000000000..fd9d17323a
--- /dev/null
+++ b/indra/newview/llfloaterwindowsize.h
@@ -0,0 +1,41 @@
+/**
+ * @file llfloaterwindowsize.h
+ *
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
+ * Copyright (c) 2001-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$
+ */
+
+#ifndef LLFLOATERWINDOWSIZE_H
+#define LLFLOATERWINDOWSIZE_H
+
+// Allow user to set the window size for filming tutorials, machinima, etc
+namespace LLFloaterWindowSizeUtil
+{
+ void registerFloater();
+}
+
+#endif
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index 474d2ca21f..112b23d2df 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -206,7 +206,8 @@ LLFolderView::LLFolderView(const Params& p)
mAutoOpenCandidate = NULL;
mAutoOpenTimer.stop();
mKeyboardSelection = FALSE;
- mIndentation = -LEFT_INDENTATION; // children start at indentation 0
+ static LLUICachedControl<S32> indentation("FolderIndentation", 0);
+ mIndentation = -indentation; // children start at indentation 0
gIdleCallbacks.addFunction(idle, this);
//clear label
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index 720c2c7b1a..9d54aafd67 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -392,10 +392,11 @@ BOOL LLFolderViewItem::addToFolder(LLFolderViewFolder* folder, LLFolderView* roo
// makes sure that this view and it's children are the right size.
S32 LLFolderViewItem::arrange( S32* width, S32* height, S32 filter_generation)
{
+ static LLUICachedControl<S32> indentation("FolderIndentation", 0);
mIndentation = (getParentFolder()
&& getParentFolder()->getParentFolder()
&& getParentFolder()->getParentFolder()->getParentFolder())
- ? mParentFolder->getIndentation() + LEFT_INDENTATION
+ ? mParentFolder->getIndentation() + indentation
: 0;
if (mLabelWidthDirty)
{
diff --git a/indra/newview/llfolderviewitem.h b/indra/newview/llfolderviewitem.h
index 21e24c2a4d..6f8c738a59 100644
--- a/indra/newview/llfolderviewitem.h
+++ b/indra/newview/llfolderviewitem.h
@@ -93,7 +93,6 @@ public:
static void initClass();
static void cleanupClass();
- // jamesdebug was LLUICtrl::Params
struct Params : public LLInitParam::Block<Params, LLView::Params>
{
Optional<LLUIImage*> icon;
@@ -111,7 +110,7 @@ public:
// layout constants
static const S32 LEFT_PAD = 5;
- static const S32 LEFT_INDENTATION = 2;
+ // LEFT_INDENTATION is set via settings.xml FolderIndentation
static const S32 ICON_PAD = 2;
static const S32 ICON_WIDTH = 16;
static const S32 TEXT_PAD = 1;
diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index 26368fb0a8..a857e30d4f 100644
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -419,12 +419,10 @@ void LLPreviewTexture::updateDimensions()
view_height += info_height;
S32 button_height = 0;
- if (mShowKeepDiscard || mCopyToInv) { //mCopyToInvBtn
-
- // add space for buttons
- view_height += (BTN_HEIGHT + CLIENT_RECT_VPAD) * 3;
- button_height = (BTN_HEIGHT + PREVIEW_PAD) * 3;
- }
+
+ // add space for buttons
+ view_height += (BTN_HEIGHT + CLIENT_RECT_VPAD) * 3;
+ button_height = (BTN_HEIGHT + PREVIEW_PAD) * 3;
view_width = llmax(view_width, getMinWidth());
view_height = llmax(view_height, getMinHeight());
diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp
index 1965e634b6..814508daa9 100644
--- a/indra/newview/llsidepaneliteminfo.cpp
+++ b/indra/newview/llsidepaneliteminfo.cpp
@@ -168,11 +168,13 @@ void LLSidepanelItemInfo::refresh()
if (getIsEditing())
{
setIsEditing(FALSE);
- return;
}
}
+
+ const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH);
+ bool is_editable = item && (item->getUUID() != trash_id) && !gInventory.isObjectDescendentOf(item->getUUID(), trash_id);
- if (!getIsEditing() || !item)
+ if (!getIsEditing() || !is_editable)
{
const std::string no_item_names[]={
"LabelItemName",
@@ -210,7 +212,7 @@ void LLSidepanelItemInfo::refresh()
}
}
- if (!item)
+ if (!is_editable)
{
const std::string no_edit_mode_names[]={
"BtnCreator",
diff --git a/indra/newview/llvieweraudio.cpp b/indra/newview/llvieweraudio.cpp
index e7f904023a..38103f9e41 100644
--- a/indra/newview/llvieweraudio.cpp
+++ b/indra/newview/llvieweraudio.cpp
@@ -211,19 +211,31 @@ void audio_update_wind(bool force_update)
//
if (force_update || (last_camera_water_height * camera_water_height) < 0.f)
{
+ static LLUICachedControl<F32> rolloff("AudioLevelRolloff", 1.0f);
if (camera_water_height < 0.f)
{
- gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff") * LL_ROLLOFF_MULTIPLIER_UNDER_WATER);
+ gAudiop->setRolloffFactor(rolloff * LL_ROLLOFF_MULTIPLIER_UNDER_WATER);
}
else
{
- gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff"));
+ gAudiop->setRolloffFactor(rolloff);
}
}
- // this line rotates the wind vector to be listener (agent) relative
- // Only use the agent's motion to compute wind noise, otherwise the world
- // feels desolate on login when you are standing still.
- gRelativeWindVec = gAgent.getFrameAgent().rotateToLocal( -gAgent.getVelocity() );
+
+ // Scale down the contribution of weather-simulation wind to the
+ // ambient wind noise. Wind velocity averages 3.5 m/s, with gusts to 7 m/s
+ // whereas steady-state avatar walk velocity is only 3.2 m/s.
+ // Without this the world feels desolate on first login when you are
+ // standing still.
+ static LLUICachedControl<F32> wind_level("AudioLevelWind", 0.5f);
+ LLVector3 scaled_wind_vec = gWindVec * wind_level;
+
+ // Mix in the avatar's motion, subtract because when you walk north,
+ // the apparent wind moves south.
+ LLVector3 final_wind_vec = scaled_wind_vec - gAgent.getVelocity();
+
+ // rotate the wind vector to be listener (agent) relative
+ gRelativeWindVec = gAgent.getFrameAgent().rotateToLocal( final_wind_vec );
// don't use the setter setMaxWindGain() because we don't
// want to screw up the fade-in on startup by setting actual source gain
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 3a6c09f31f..23bdbc7381 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -110,6 +110,7 @@
#include "llfloaterwater.h"
#include "llfloaterwhitelistentry.h"
#include "llfloaterwindlight.h"
+#include "llfloaterwindowsize.h"
#include "llfloaterworldmap.h"
#include "llimfloatercontainer.h"
#include "llinspectavatar.h"
@@ -259,6 +260,7 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("voice_controls", "floater_voice_controls.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLCallFloater>);
LLFloaterReg::add("whitelist_entry", "floater_whitelist_entry.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterWhiteListEntry>);
+ LLFloaterWindowSizeUtil::registerFloater();
LLFloaterReg::add("world_map", "floater_world_map.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterWorldMap>);
// *NOTE: Please keep these alphabetized for easier merges
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index 18cdd23ed9..917d69fe16 100644
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -278,10 +278,14 @@ void LLVoiceChannel::deactivate()
if (callStarted())
{
setState(STATE_HUNG_UP);
- // mute the microphone if required when returning to the proximal channel
- if (gSavedSettings.getBOOL("AutoDisengageMic") && sCurrentVoiceChannel == this)
+
+ //Default mic is OFF when leaving voice calls
+ if (gSavedSettings.getBOOL("AutoDisengageMic") &&
+ sCurrentVoiceChannel == this &&
+ gVoiceClient->getUserPTTState())
{
gSavedSettings.setBOOL("PTTCurrentlyEnabled", true);
+ gVoiceClient->inputUserControlState(true);
}
}
@@ -498,6 +502,13 @@ void LLVoiceChannelGroup::activate()
LLRecentPeople::instance().add(buddy_id);
}
#endif
+
+ //Mic default state is OFF on initiating/joining Ad-Hoc/Group calls
+ if (gVoiceClient->getUserPTTState() && gVoiceClient->getPTTIsToggle())
+ {
+ gVoiceClient->inputUserControlState(true);
+ }
+
}
}
@@ -811,6 +822,12 @@ void LLVoiceChannelP2P::activate()
// Add the party to the list of people with which we've recently interacted.
LLRecentPeople::instance().add(mOtherUserID);
+
+ //Default mic is ON on initiating/joining P2P calls
+ if (!gVoiceClient->getUserPTTState() && gVoiceClient->getPTTIsToggle())
+ {
+ gVoiceClient->inputUserControlState(true);
+ }
}
}
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index c2d26a1971..899cc35238 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -5883,6 +5883,10 @@ void LLVoiceClient::setPTTIsToggle(bool PTTIsToggle)
mPTTIsToggle = PTTIsToggle;
}
+bool LLVoiceClient::getPTTIsToggle()
+{
+ return mPTTIsToggle;
+}
void LLVoiceClient::setPTTKey(std::string &key)
{
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index 347fae6156..724179847d 100644
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
@@ -193,6 +193,7 @@ static void updatePosition(void);
static bool voiceEnabled();
void setUsePTT(bool usePTT);
void setPTTIsToggle(bool PTTIsToggle);
+ bool getPTTIsToggle();
void setPTTKey(std::string &key);
void setEarLocation(S32 loc);
void setVoiceVolume(F32 volume);
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Damage_Light_Alt.png b/indra/newview/skins/default/textures/icons/Parcel_Damage_Light_Alt.png
new file mode 100644
index 0000000000..d72f02f708
--- /dev/null
+++ b/indra/newview/skins/default/textures/icons/Parcel_Damage_Light_Alt.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index b5f6109b1b..cc87d5c105 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -172,6 +172,7 @@ with the same filename but different name
<texture name="ForwardArrow_Press" file_name="icons/ForwardArrow_Press.png" preload="false" />
<texture name="Generic_Group" file_name="icons/Generic_Group.png" preload="false" />
+ <texture name="icon_group.tga" file_name="icons/Generic_Group.png" preload="false" />
<texture name="Generic_Group_Large" file_name="icons/Generic_Group_Large.png" preload="false" />
<texture name="Generic_Object_Medium" file_name="icons/Generic_Object_Medium.png" preload="false" />
<texture name="Generic_Object_Small" file_name="icons/Generic_Object_Small.png" preload="false" />
@@ -314,6 +315,9 @@ with the same filename but different name
<texture name="Notices_Unread" file_name="bottomtray/Notices_Unread.png" preload="true" />
+ <texture name="NoEntryLines" file_name="world/NoEntryLines.png" use_mips="true" preload="false" />
+ <texture name="NoEntryPassLines" file_name="world/NoEntryPassLines.png" use_mips="true" preload="false" />
+
<texture name="Object_Cone" file_name="build/Object_Cone.png" preload="false" />
<texture name="Object_Cube" file_name="build/Object_Cube.png" preload="false" />
<texture name="Object_Cylinder" file_name="build/Object_Cylinder.png" preload="false" />
@@ -553,8 +557,8 @@ with the same filename but different name
<texture name="TabTop_Right_Selected" file_name="containers/TabTop_Right_Selected.png" preload="false" />
<texture name="TabTop_Middle_Off" file_name="containers/TabTop_Middle_Off.png" preload="false" scale.left="8" scale.top="8" scale.right="120" scale.bottom="9" />
<texture name="TabTop_Middle_Selected" file_name="containers/TabTop_Middle_Selected.png" preload="false" scale.left="8" scale.top="8" scale.right="96" scale.bottom="9" />
- <texture name="TabTop_Left_Off" file_name="containers/TabTop_Left_Off.png" preload="false" scale.left="8" scale.top="8" scale.right="120" scale.bottom="9" />
- <texture name="TabTop_Left_Selected" file_name="containers/TabTop_Left_Selected.png" preload="false" scale.left="8" scale.top="8" scale.right="96" scale.bottom="9" />
+ <texture name="TabTop_Left_Off" file_name="containers/TabTop_Left_Off.png" preload="false" scale.left="8" scale.top="8" scale.right="120" scale.bottom="9" />
+ <texture name="TabTop_Left_Selected" file_name="containers/TabTop_Left_Selected.png" preload="false" scale.left="8" scale.top="8" scale.right="96" scale.bottom="9" />
<texture name="TaskPanel_Tab_Off" file_name="taskpanel/TaskPanel_Tab_Off.png" preload="false" scale.left="4" scale.top="29" scale.right="36" scale.bottom="4" />
<texture name="TaskPanel_Tab_Selected" file_name="taskpanel/TaskPanel_Tab_Selected.png" preload="false" scale.left="5" scale.top="30" scale.right="36" scale.bottom="5" />
@@ -641,28 +645,12 @@ with the same filename but different name
<texture name="PowerOff_Over" file_name="icons/PowerOff_Over.png" preload="false" />
<texture name="PowerOff_Press" file_name="icons/PowerOff_Press.png" preload="false" />
- <!--WARNING OLD ART *do not use*-->
-
- <texture name="btn_chatbar.tga" scale.left="20" scale.top="24" scale.right="44" scale.bottom="0" />
- <texture name="btn_chatbar_selected.tga" scale.left="20" scale.top="24" scale.right="44" scale.bottom="0" />
-
- <texture name="cam_rotate_out.tga" preload="false" />
- <texture name="cam_rotate_in.tga" preload="false" />
- <texture name="cam_zoom_out.tga" preload="false" />
- <texture name="cam_zoom_plus_in.tga" preload="false" />
- <texture name="cam_zoom_minus_in.tga" preload="false" />
-
+ <!--WARNING OLD ART BELOW *do not use*-->
<texture name="icn_chatbar.tga" />
- <texture name="icn_media-pause.tga" />
- <texture name="icn_media-play.tga" />
- <texture name="icn_music-play.tga" />
- <texture name="icn_music-pause.tga" />
<texture name="icn_media_web.tga" preload="true" />
<texture name="icn_media_movie.tga" preload="true" />
-
<texture name="icn_speaker-muted_dark.tga" />
<texture name="icn_speaker_dark.tga" />
-
<texture name="icn_voice-localchat.tga" />
<texture name="icn_voice-groupfocus.tga" />
<texture name="icn_voice-pvtfocus.tga" />
@@ -672,67 +660,30 @@ with the same filename but different name
<texture name="jump_right_out.tga" />
<texture name="jump_right_in.tga" />
- <texture name="move_forward_out.tga" preload="false" />
- <texture name="move_forward_in.tga" preload="false" />
- <texture name="move_left_out.tga" preload="false" />
- <texture name="move_left_in.tga" preload="false" />
- <texture name="move_turn_left_out.tga" preload="false" />
- <texture name="move_turn_left_in.tga" preload="false" />
- <texture name="move_turn_right_out.tga" preload="false" />
- <texture name="move_turn_right_in.tga" preload="false" />
- <texture name="move_right_out.tga" preload="false" />
- <texture name="move_right_in.tga" preload="false" />
- <texture name="move_up_in.tga" preload="false" />
- <texture name="move_up_out.tga" preload="false" />
- <texture name="move_down_in.tga" preload="false" />
- <texture name="move_down_out.tga" preload="false" />
-
<texture name="up_arrow.tga" file_name="up_arrow.png" />
<texture name="down_arrow.tga" file_name="down_arrow.png" />
+ <texture name="arrow_down.tga" />
<texture name="tearoffbox.tga" />
<texture name="tearoff_pressed.tga" />
<texture name="icn_label_music.tga" />
<texture name="icn_label_media.tga" />
- <texture name="arrow_down.tga" />
- <texture name="cloud-particle.j2c" use_mips="true" />
-
- <texture name="skin_thumbnail_default.png" preload="false" />
-
- <texture name="icn_textfield_enabled.tga" scale.left="5" scale.top="5" scale.bottom="5" scale.right="5" />
<texture name="icn_rounded-text-field.tga" scale.left="14" scale.bottom="16" scale.top="16" scale.right="114" />
- <texture name="toolbar_btn_enabled.tga" scale.left="7" scale.top="32" scale.right="121" scale.bottom="0" />
- <texture name="toolbar_btn_disabled.tga" scale.left="7" scale.top="32" scale.right="121" scale.bottom="0" />
- <texture name="toolbar_btn_selected.tga" scale.left="7" scale.top="32" scale.right="121" scale.bottom="0" />
-
<texture name="toggle_button_off" file_name="toggle_button_off.png" preload="true" />
<texture name="toggle_button_selected" file_name="toggle_button_selected.png" preload="true" />
<texture name="sm_rounded_corners_simple.tga" scale.left="4" scale.top="4" scale.bottom="4" scale.right="4" />
-
<texture name="rounded_square.tga" file_name="rounded_square.j2c" preload="true" scale.left="16" scale.top="16" scale.right="112" scale.bottom="16" />
-
- <texture name="rounded_square_soft.tga" file_name="rounded_square_soft.j2c" preload="true" scale.left="16" scale.top="16" scale.right="112" scale.bottom="16" />
-
- <texture name="toolbar_tab.tga" preload="true" scale.left="6" scale.top="42" scale.right="104" scale.bottom="8" />
- <texture name="toolbar_bg.tga" preload="true" scale.left="6" scale.top="42" scale.right="96" scale.bottom="16" />
-
- <texture name="tab_top_blue.tga" preload="false" scale.left="8" scale.top="8" scale.right="120" scale.bottom="9" />
- <texture name="tab_top_selected_blue.tga" preload="false" scale.left="8" scale.top="8" scale.right="96" scale.bottom="9" />
-
<texture name="color_swatch_alpha.tga" preload="true" />
<texture name="button_anim_pause.tga" />
<texture name="button_anim_pause_selected.tga" />
<texture name="button_anim_play.tga" />
<texture name="button_anim_play_selected.tga" />
- <texture name="button_anim_stop.tga" />
- <texture name="button_anim_stop_selected.tga" />
<texture name="crosshairs.tga" />
<texture name="direction_arrow.tga" />
- <texture name="foot_shadow.j2c" use_mips="true" />
<texture name="icon_auction.tga" />
<texture name="icon_avatar_offline.tga" />
@@ -742,10 +693,6 @@ with the same filename but different name
<texture name="icon_event.tga" />
<texture name="icon_event_mature.tga" />
<texture name="icon_for_sale.tga" />
- <texture name="icon_group.tga" />
- <texture name="icon_groupnotice.tga" />
- <texture name="icon_groupnoticeinventory.tga" />
- <texture name="icon_place.tga" />
<texture name="icon_place_for_sale.tga" />
<texture name="icon_popular.tga" />
<texture name="icon_top_pick.tga" />
@@ -768,8 +715,6 @@ with the same filename but different name
<texture name="media_icon.tga" file_name="icn_label_media.tga" />
<texture name="music_icon.tga" file_name="icn_label_music.tga" />
- <texture name="NoEntryLines" file_name="world/NoEntryLines.png" use_mips="true" preload="false" />
- <texture name="NoEntryPassLines" file_name="world/NoEntryPassLines.png" use_mips="true" preload="false" />
<texture name="notify_tip_icon.tga" />
<texture name="notify_caution_icon.tga" />
@@ -779,13 +724,11 @@ with the same filename but different name
<texture name="pixiesmall.j2c" use_mips="true" />
<texture name="script_error.j2c" use_mips="true" />
<texture name="silhouette.j2c" use_mips="true" />
+ <texture name="foot_shadow.j2c" use_mips="true" />
+ <texture name="cloud-particle.j2c" use_mips="true" />
<texture name="status_no_build.tga" />
<texture name="status_voice.tga" />
- <texture name="status_buy_currency.tga" />
- <texture name="status_buy_currency_pressed.tga" />
- <texture name="status_buy_land.tga" />
- <texture name="status_buy_land_pressed.tga" />
<texture name="status_no_fly.tga" />
<texture name="status_health.tga" />
<texture name="status_no_push.tga" />
@@ -812,23 +755,5 @@ with the same filename but different name
<texture name="default_profile_picture.j2c" />
<texture name="locked_image.j2c" />
- <texture name="media_btn_back.png" />
- <texture name="media_btn_done.png" />
- <texture name="media_btn_forward.png" />
- <texture name="media_btn_home.png" />
- <texture name="media_btn_newwindow.png" />
- <texture name="media_btn_optimalzoom.png" />
- <texture name="media_btn_reload.png" />
- <texture name="media_btn_scrolldown.png" />
- <texture name="media_btn_scrollleft.png" />
- <texture name="media_btn_scrollright.png" />
- <texture name="media_btn_scrollup.png" />
- <texture name="media_btn_stoploading.png" />
- <texture name="media_panel_divider.png" />
-
<texture name="media_floater_border_16.png" scale_top="12" scale_left="4" scale_bottom="4" scale_right="12" />
-
- <texture name="media_panel_bg.png" preload="true" scale_left="9" scale_top="9" scale_right="9" scale_bottom="9" />
- <texture name="media_panel_hoverrectangle.png" preload="true" scale_left="9" scale_top="9" scale_right="9" scale_bottom="9" />
-
</textures>
diff --git a/indra/newview/skins/default/xui/en/favorites_bar_button.xml b/indra/newview/skins/default/xui/en/favorites_bar_button.xml
index dcf9847adb..90105f92fd 100644
--- a/indra/newview/skins/default/xui/en/favorites_bar_button.xml
+++ b/indra/newview/skins/default/xui/en/favorites_bar_button.xml
@@ -23,6 +23,8 @@
pad_left="11"
pad_right="7"
tab_stop="false"
+ pad_right="10"
+ pad_left="10"
top="0"
use_ellipses="true"
width="140" />
diff --git a/indra/newview/skins/default/xui/en/floater_preview_texture.xml b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
index 552902d1d9..0d155fb01e 100644
--- a/indra/newview/skins/default/xui/en/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
@@ -64,7 +64,7 @@
height="16"
layout="topleft"
left_delta="-110"
- name="dimensions"
+ name="aspect_ratio"
top_pad="5"
width="200">
Preview aspect ratio
@@ -112,7 +112,7 @@
label="OK"
layout="topleft"
left="6"
- name="keep"
+ name="Keep"
top_pad="5"
width="100" />
<button
@@ -121,7 +121,7 @@
label="Cancel"
layout="topleft"
left_pad="5"
- name="discard"
+ name="Discard"
top_delta="0"
width="100" />
<button
diff --git a/indra/newview/skins/default/xui/en/floater_window_size.xml b/indra/newview/skins/default/xui/en/floater_window_size.xml
new file mode 100644
index 0000000000..355d257785
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_window_size.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ can_resize="false"
+ height="105"
+ layout="topleft"
+ name="window_size"
+ title="WINDOW SIZE"
+ width="205">
+ <string name="resolution_format">[RES_X] x [RES_Y]</string>
+ <text
+ follows="top|left"
+ font="SansSerif"
+ height="16"
+ left="15"
+ top="10"
+ name="windowsize_text"
+ width="280">
+ Set window size:
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ height="23"
+ follows="left|top"
+ left_delta="0"
+ max_chars="20"
+ name="window_size_combo"
+ tool_tip="width x height"
+ top_pad="5"
+ width="179">
+ <combo_box.item
+ label="1000 x 700 (default)"
+ name="item0"
+ value="1000 x 700" />
+ <combo_box.item
+ label="1024 x 768"
+ name="item1"
+ value="1024 x 768" />
+ <combo_box.item
+ label="1280 x 720 (720p)"
+ name="item2"
+ value="1280 x 720" />
+ <combo_box.item
+ label="1920 x 1080 (1080p)"
+ name="item3"
+ value="1920 x 1080" />
+ </combo_box>
+ <button
+ follows="right|bottom"
+ height="23"
+ label="Set"
+ left_delta="0"
+ name="set_btn"
+ top_pad="10"
+ width="85" />
+ <button
+ follows="right|bottom"
+ height="23"
+ label="Cancel"
+ left_pad="5"
+ name="cancel_btn"
+ top_delta="0"
+ width="85" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/inspect_avatar.xml b/indra/newview/skins/default/xui/en/inspect_avatar.xml
index 996d0f1b72..2f2964c42b 100644
--- a/indra/newview/skins/default/xui/en/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/en/inspect_avatar.xml
@@ -54,7 +54,7 @@
width="175"
use_ellipses="true" />
<text
- follows="all"
+ follows="left|top|right"
height="35"
left="8"
name="user_details"
diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml
index 7a0b11872a..690167bc33 100644
--- a/indra/newview/skins/default/xui/en/menu_login.xml
+++ b/indra/newview/skins/default/xui/en/menu_login.xml
@@ -233,6 +233,13 @@
parameter="RegInClient" />
</menu_item_check>
<menu_item_separator />
+ <menu_item_call
+ label="Set Window Size..."
+ name="Set Window Size...">
+ <menu_item_call.on_click
+ function="Floater.Show"
+ parameter="window_size" />
+ </menu_item_call>
<menu_item_call
label="Show TOS"
name="TOS">
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 0640ae21de..4e495bab3f 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -1119,6 +1119,13 @@
<menu_item_call.on_click
function="View.DefaultUISize" />
</menu_item_call>
+ <menu_item_call
+ label="Set Window Size..."
+ name="Set Window Size...">
+ <menu_item_call.on_click
+ function="Floater.Show"
+ parameter="window_size" />
+ </menu_item_call>
<menu_item_separator/>
<menu_item_check
label="Limit Select Distance"
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index f88f8264b5..b92aa10ffc 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -341,7 +341,7 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
top="4"
width="35">
<!--
-Emulate 4 states of button by background images, see detains in EXT-3147. The same should be for notification_well button
+Emulate 4 states of button by background images, see details in EXT-3147. The same should be for notification_well button
xml attribute Description
image_unselected "Unlit" - there are no new messages
image_selected "Unlit" + "Selected" - there are no new messages and the Well is open
@@ -364,6 +364,7 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
name="Unread IM messages"
pad_left="0"
pad_right="0"
+ tool_tip="Conversations"
width="35" >
<button.init_callback
function="Button.SetDockableFloaterToggle"
@@ -409,6 +410,7 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
image_overlay="Notices_Unread"
image_overlay_alignment="center"
pad_right="5"
+ tool_tip="Notifications"
width="35" >
<button.init_callback
function="Button.SetDockableFloaterToggle"
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 744ee43f57..67a4edbf32 100644
--- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
@@ -239,7 +239,6 @@
use_ellipses="true"
width="290" />
<line_editor
- background_image_disabled="task_panel_background.png"
follows="left|top|right"
height="22"
layout="topleft"
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 005d7953fe..0f9b095d8c 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -149,7 +149,7 @@
<favorites_bar
follows="left|right|top"
- font="SansSerif"
+ font="SansSerifSmall"
height="15"
layout="topleft"
left="0"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 426a2b1f9e..17651b8caa 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -10,10 +10,6 @@
name="advanced"
top="1"
width="517">
- <panel.string
- name="resolution_format">
- [RES_X] x [RES_Y]
- </panel.string>
<panel.string
name="aspect_ratio_text">
[NUM]:[DEN]
diff --git a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
index 97790535d0..677d0de243 100644
--- a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
@@ -29,12 +29,14 @@
height="75"
layout="topleft"
left="0"
+ mouse_opaque="false"
orientation="horizontal"
top="100">
<!-- outer layout_panels center the inner one -->
<layout_panel
name="left_bookend"
width="0"
+ mouse_opaque="false"
layout="topleft"
user_resize="false" />
<layout_panel
@@ -42,6 +44,7 @@
auto_resize="false"
user_resize="false"
layout="topleft"
+ mouse_opaque="false"
min_width="22"
width="22"
top="4">
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 790f8afd3a..4a992dadd9 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
@@ -149,7 +149,7 @@
width="20" />
<text
type="string"
- follows="left|right"
+ follows="left|right|top"
font="SansSerifSmall"
height="15"
layout="topleft"
@@ -191,7 +191,7 @@
width="20" />
<text
type="string"
- follows="left|right"
+ follows="left|right|top"
font="SansSerifSmall"
height="15"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml
index 7ac44b412d..1368c6826d 100644
--- a/indra/newview/skins/default/xui/en/widgets/location_input.xml
+++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml
@@ -95,12 +95,11 @@
follows="right|top"
image_name="Parcel_ScriptsNo_Light"
/>
- <!-- NOTE: Placeholder icon, there is no dark grayscale version -->
<damage_icon
name="damage_icon"
- width="22"
- height="18"
- top="21"
+ width="20"
+ height="16"
+ top="20"
follows="right|top"
image_name="Parcel_Damage_Light"
/>