summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BuildParams7
-rwxr-xr-xbuild.sh12
-rw-r--r--doc/contributions.txt9
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake1
-rw-r--r--indra/cmake/PNG.cmake2
-rw-r--r--indra/cmake/run_build_test.py18
-rw-r--r--indra/llcommon/llsdserialize.cpp2
-rw-r--r--indra/llcommon/llstring.cpp2
-rw-r--r--indra/llcommon/llstring.h2
-rw-r--r--indra/llimage/llpngwrapper.cpp4
-rw-r--r--indra/llimage/llpngwrapper.h2
-rw-r--r--indra/newview/CMakeLists.txt1
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/llagent.cpp61
-rw-r--r--indra/newview/llagent.h9
-rw-r--r--indra/newview/llappviewer.cpp3
-rw-r--r--indra/newview/llchatbar.cpp8
-rw-r--r--indra/newview/llcofwearables.cpp19
-rw-r--r--indra/newview/llexpandabletextbox.cpp1
-rw-r--r--indra/newview/llgroupmgr.cpp4
-rw-r--r--indra/newview/llimpanel.cpp2
-rw-r--r--indra/newview/llimview.cpp45
-rw-r--r--indra/newview/llimview.h2
-rw-r--r--indra/newview/llinventorybridge.cpp4
-rw-r--r--indra/newview/llnearbychathandler.cpp75
-rw-r--r--indra/newview/llnotificationhandlerutil.cpp2
-rw-r--r--indra/newview/lloutfitslist.cpp40
-rw-r--r--indra/newview/llpanellandmarks.cpp46
-rw-r--r--indra/newview/llpanellandmarks.h4
-rw-r--r--indra/newview/llpanelplaceprofile.cpp10
-rw-r--r--indra/newview/llsidepanelappearance.cpp2
-rw-r--r--indra/newview/llsidepaneliteminfo.cpp69
-rw-r--r--indra/newview/llsidepaneliteminfo.h5
-rw-r--r--indra/newview/llsidetray.cpp16
-rw-r--r--indra/newview/llstatusbar.cpp74
-rw-r--r--indra/newview/llstatusbar.h7
-rw-r--r--indra/newview/lltoolpie.cpp19
-rw-r--r--indra/newview/llviewerdisplay.cpp13
-rw-r--r--indra/newview/llviewermenu.cpp10
-rw-r--r--indra/newview/llviewermessage.cpp31
-rw-r--r--indra/newview/llviewerobject.cpp2
-rw-r--r--indra/newview/llvoavatar.cpp2
-rw-r--r--indra/newview/llvoicevivox.cpp37
-rw-r--r--indra/newview/llvoicevivox.h5
-rw-r--r--indra/newview/llvosky.h6
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/da/strings.xml3
-rw-r--r--indra/newview/skins/default/xui/de/floater_about_land.xml12
-rw-r--r--indra/newview/skins/default/xui/de/strings.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_about_land.xml8
-rw-r--r--indra/newview/skins/default/xui/en/floater_day_cycle_options.xml24
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml18
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_profile.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml64
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile.xml8
-rw-r--r--indra/newview/skins/default/xui/en/panel_status_bar.xml8
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_item_info.xml653
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml7
-rw-r--r--indra/newview/skins/default/xui/es/floater_about_land.xml44
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/es/strings.xml7
-rw-r--r--indra/newview/skins/default/xui/fr/floater_about_land.xml63
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/strings.xml3
-rw-r--r--indra/newview/skins/default/xui/it/floater_about_land.xml44
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/it/strings.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about_land.xml48
-rw-r--r--indra/newview/skins/default/xui/ja/strings.xml3
-rw-r--r--indra/newview/skins/default/xui/nl/floater_about_land.xml78
-rw-r--r--indra/newview/skins/default/xui/nl/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/nl/strings.xml3
-rw-r--r--indra/newview/skins/default/xui/pl/floater_about_land.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/strings.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/floater_about_land.xml48
-rw-r--r--indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/strings.xml3
-rw-r--r--indra/newview/viewer_manifest.py1
86 files changed, 1090 insertions, 818 deletions
diff --git a/BuildParams b/BuildParams
index f70488d942..acc3904d82 100644
--- a/BuildParams
+++ b/BuildParams
@@ -79,6 +79,13 @@ brad-parabuild.build_server = false
brad-parabuild.build_server_tests = false
# ========================================
+# CG
+# ========================================
+
+cg_viewer-development_lenny.collect_metrics = true
+cg_viewer-development_lenny.show_changes_since = 4b140ce7839d
+
+# ========================================
# gooey
# ========================================
diff --git a/build.sh b/build.sh
index 878aa45ce3..88faf12473 100755
--- a/build.sh
+++ b/build.sh
@@ -63,7 +63,8 @@ pre_build()
-DVIEWER_LOGIN_CHANNEL:STRING="$login_channel" \
-DINSTALL_PROPRIETARY:BOOL=ON \
-DLOCALIZESETUP:BOOL=ON \
- -DPACKAGE:BOOL=ON
+ -DPACKAGE:BOOL=ON \
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE
end_section "Pre$variant"
}
@@ -222,7 +223,10 @@ do
fi
else
begin_section "Build$variant"
- build "$variant" "$build_dir" 2>&1 | tee -a "$build_log" | grep --line-buffered "^##teamcity"
+ build "$variant" "$build_dir" > "$build_log" 2>&1
+ begin_section Tests
+ grep --line-buffered "^##teamcity" "$build_log"
+ end_section Tests
if `cat "$build_dir/build_ok"`
then
echo so far so good.
@@ -251,13 +255,15 @@ then
begin_section "Build$variant"
build_dir=`build_dir_$arch $variant`
build_dir_stubs="$build_dir/win_setup/$variant"
- tee -a $build_log < "$build_dir/build.log" | grep --line-buffered "^##teamcity"
if `cat "$build_dir/build_ok"`
then
echo so far so good.
else
record_failure "Parallel build of \"$variant\" failed."
fi
+ begin_section Tests
+ tee -a $build_log < "$build_dir/build.log" | grep --line-buffered "^##teamcity"
+ end_section Tests
end_section "Build$variant"
done
end_section WaitParallel
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 43b63569f1..c02c28c447 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -162,6 +162,7 @@ Boroondas Gupte
SNOW-527
SNOW-610
SNOW-624
+ SNOW-737
VWR-233
WEB-262
Bulli Schumann
@@ -407,6 +408,7 @@ Michelle2 Zenovka
VWR-8310
VWR-9499
Mm Alder
+ SNOW-376
VWR-197
VWR-3777
VWR-4232
@@ -644,8 +646,10 @@ Teardrops Fall
Techwolf Lupindo
SNOW-92
SNOW-649
+ SNOW-687
SNOW-680
SNOW-681
+ SNOW-690
VWR-12385
tenebrous pau
VWR-247
@@ -653,6 +657,9 @@ Tharax Ferraris
VWR-605
Thickbrick Sleaford
SNOW-207
+ SNOW-390
+ SNOW-421
+ SNOW-462
SNOW-586
SNOW-743
VWR-7109
@@ -673,6 +680,8 @@ Tue Torok
CT-72
CT-73
CT-74
+Twisted Laws
+ SNOW-352
Vadim Bigbear
VWR-2681
Vector Hastings
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 2dd296bf12..95ed5d6bc8 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -221,6 +221,7 @@ elseif(LINUX)
libcrypto.so.0.9.7
libdb-4.2.so
libexpat.so
+ libexpat.so.1
libgmock_main.so
libgmock.so.0
libgmodule-2.0.so
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index 4d0b7b2d8d..f6522d9e2f 100644
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -9,5 +9,5 @@ if (STANDALONE)
else (STANDALONE)
use_prebuilt_binary(libpng)
set(PNG_LIBRARIES png12)
- set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng12)
endif (STANDALONE)
diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py
index 104585c195..e377aeef48 100644
--- a/indra/cmake/run_build_test.py
+++ b/indra/cmake/run_build_test.py
@@ -82,10 +82,24 @@ def main(command, libpath=[], vars={}):
dirs = os.environ.get(var, "").split(os.pathsep)
# Append the sequence in libpath
print "%s += %r" % (var, libpath)
- dirs.extend(libpath)
+ for dir in libpath:
+ # append system paths at the end
+ if dir in ('/lib', '/usr/lib'):
+ dirs.append(dir)
+ # prepend non-system paths
+ else:
+ dirs.insert(0, dir)
+
+ # Filter out some useless pieces
+ clean_dirs = []
+ for dir in dirs:
+ if dir and dir not in ('', '.'):
+ clean_dirs.append(dir)
+
# Now rebuild the path string. This way we use a minimum of separators
# -- and we avoid adding a pointless separator when libpath is empty.
- os.environ[var] = os.pathsep.join(dirs)
+ os.environ[var] = os.pathsep.join(clean_dirs)
+ print "%s = %r" % (var, os.environ[var])
# Now handle arbitrary environment variables. The tricky part is ensuring
# that all the keys and values we try to pass are actually strings.
if vars:
diff --git a/indra/llcommon/llsdserialize.cpp b/indra/llcommon/llsdserialize.cpp
index 69e3ff266a..10f460e8a6 100644
--- a/indra/llcommon/llsdserialize.cpp
+++ b/indra/llcommon/llsdserialize.cpp
@@ -71,7 +71,7 @@ void LLSDSerialize::serialize(const LLSD& sd, std::ostream& str, ELLSD_Serialize
break;
default:
- llwarns << "serialize request for unkown ELLSD_Serialize" << llendl;
+ llwarns << "serialize request for unknown ELLSD_Serialize" << llendl;
}
if (f.notNull())
diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp
index 33b55d843c..ae7e624a1a 100644
--- a/indra/llcommon/llstring.cpp
+++ b/indra/llcommon/llstring.cpp
@@ -1112,7 +1112,7 @@ bool LLStringUtil::formatDatetime(std::string& replacement, std::string token,
else if(LLStringOps::sMonthList.size() == 12 && code == "%B")
{
struct tm * gmt = gmtime (&loc_seconds);
- replacement = LLStringOps::sWeekDayList[gmt->tm_mon];
+ replacement = LLStringOps::sMonthList[gmt->tm_mon];
}
else if( !LLStringOps::sDayFormat.empty() && code == "%d" )
{
diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h
index 88fecb57bf..7e41e787b5 100644
--- a/indra/llcommon/llstring.h
+++ b/indra/llcommon/llstring.h
@@ -435,7 +435,7 @@ LL_COMMON_API bool iswindividual(llwchar elem);
*/
// Make the incoming string a utf8 string. Replaces any unknown glyph
-// with the UNKOWN_CHARACTER. Once any unknown glph is found, the rest
+// with the UNKNOWN_CHARACTER. Once any unknown glyph is found, the rest
// of the data may not be recovered.
LL_COMMON_API std::string rawstr_to_utf8(const std::string& raw);
diff --git a/indra/llimage/llpngwrapper.cpp b/indra/llimage/llpngwrapper.cpp
index 02043586b2..fe737e2072 100644
--- a/indra/llimage/llpngwrapper.cpp
+++ b/indra/llimage/llpngwrapper.cpp
@@ -210,7 +210,7 @@ void LLPngWrapper::normalizeImage()
}
if (mColorType == PNG_COLOR_TYPE_GRAY && mBitDepth < 8)
{
- png_set_gray_1_2_4_to_8(mReadPngPtr);
+ png_set_expand_gray_1_2_4_to_8(mReadPngPtr);
}
if (mColorType == PNG_COLOR_TYPE_GRAY
|| mColorType == PNG_COLOR_TYPE_GRAY_ALPHA)
@@ -358,7 +358,7 @@ void LLPngWrapper::releaseResources()
{
if (mReadPngPtr || mReadInfoPtr)
{
- png_destroy_read_struct(&mReadPngPtr, &mReadInfoPtr, png_infopp_NULL);
+ png_destroy_read_struct(&mReadPngPtr, &mReadInfoPtr, NULL);
mReadPngPtr = NULL;
mReadInfoPtr = NULL;
}
diff --git a/indra/llimage/llpngwrapper.h b/indra/llimage/llpngwrapper.h
index 0721adea3b..47a4207d66 100644
--- a/indra/llimage/llpngwrapper.h
+++ b/indra/llimage/llpngwrapper.h
@@ -26,7 +26,7 @@
#ifndef LL_LLPNGWRAPPER_H
#define LL_LLPNGWRAPPER_H
-#include "libpng12/png.h"
+#include "png.h"
#include "llimage.h"
class LLPngWrapper
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 78c9769d06..42d996419c 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1487,6 +1487,7 @@ if (WINDOWS)
${GOOGLE_PERF_TOOLS_SOURCE}
${CMAKE_CURRENT_SOURCE_DIR}/licenses-win32.txt
${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt
+ ${CMAKE_CURRENT_SOURCE_DIR}/featuretable_xp.txt
${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.dll
${CMAKE_CURRENT_SOURCE_DIR}/fmod.dll
${ARCH_PREBUILT_DIRS_RELEASE}/libeay32.dll
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 0bed37b96a..2a0e23b1dc 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -2688,6 +2688,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>DoubleClickTeleport</key>
+ <map>
+ <key>Comment</key>
+ <string>Enable double-click to teleport where allowed</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>DragAndDropToolTipDelay</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index fe7e883d83..b202cb5098 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -167,6 +167,7 @@ LLAgent::LLAgent() :
mbAlwaysRun(false),
mbRunning(false),
+ mbTeleportKeepsLookAt(false),
mAgentAccess(gSavedSettings),
mTeleportState( TELEPORT_NONE ),
@@ -3249,7 +3250,11 @@ bool LLAgent::teleportCore(bool is_local)
// local logic
LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TELEPORT_COUNT);
- if (!is_local)
+ if (is_local)
+ {
+ gAgent.setTeleportState( LLAgent::TELEPORT_LOCAL );
+ }
+ else
{
gTeleportDisplay = TRUE;
gAgent.setTeleportState( LLAgent::TELEPORT_START );
@@ -3268,13 +3273,15 @@ bool LLAgent::teleportCore(bool is_local)
void LLAgent::teleportRequest(
const U64& region_handle,
- const LLVector3& pos_local)
+ const LLVector3& pos_local,
+ bool look_at_from_camera)
{
LLViewerRegion* regionp = getRegion();
- if(regionp && teleportCore())
+ bool is_local = (region_handle == to_region_handle(getPositionGlobal()));
+ if(regionp && teleportCore(is_local))
{
- llinfos << "TeleportRequest: '" << region_handle << "':" << pos_local
- << llendl;
+ LL_INFOS("") << "TeleportLocationRequest: '" << region_handle << "':"
+ << pos_local << LL_ENDL;
LLMessageSystem* msg = gMessageSystem;
msg->newMessage("TeleportLocationRequest");
msg->nextBlockFast(_PREHASH_AgentData);
@@ -3284,6 +3291,10 @@ void LLAgent::teleportRequest(
msg->addU64("RegionHandle", region_handle);
msg->addVector3("Position", pos_local);
LLVector3 look_at(0,1,0);
+ if (look_at_from_camera)
+ {
+ look_at = LLViewerCamera::getInstance()->getAtAxis();
+ }
msg->addVector3("LookAt", look_at);
sendReliableMessage();
}
@@ -3395,6 +3406,16 @@ void LLAgent::teleportViaLocation(const LLVector3d& pos_global)
}
}
+// Teleport to global position, but keep facing in the same direction
+void LLAgent::teleportViaLocationLookAt(const LLVector3d& pos_global)
+{
+ mbTeleportKeepsLookAt = true;
+ gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE); // detach camera form avatar, so it keeps direction
+ U64 region_handle = to_region_handle(pos_global);
+ LLVector3 pos_local = (LLVector3)(pos_global - from_region_handle(region_handle));
+ teleportRequest(region_handle, pos_local, getTeleportKeepsLookAt());
+}
+
void LLAgent::setTeleportState(ETeleportState state)
{
mTeleportState = state;
@@ -3402,18 +3423,28 @@ void LLAgent::setTeleportState(ETeleportState state)
{
LLFloaterReg::hideInstance("snapshot");
}
- if (mTeleportState == TELEPORT_MOVING)
- {
- // We're outa here. Save "back" slurl.
- LLAgentUI::buildSLURL(mTeleportSourceSLURL);
- }
- else if(mTeleportState == TELEPORT_ARRIVING)
+
+ switch (mTeleportState)
{
- // First two position updates after a teleport tend to be weird
- LLViewerStats::getInstance()->mAgentPositionSnaps.mCountOfNextUpdatesToIgnore = 2;
+ case TELEPORT_NONE:
+ mbTeleportKeepsLookAt = false;
+ break;
+
+ case TELEPORT_MOVING:
+ // We're outa here. Save "back" slurl.
+ LLAgentUI::buildSLURL(mTeleportSourceSLURL);
+ break;
- // Let the interested parties know we've teleported.
- LLViewerParcelMgr::getInstance()->onTeleportFinished(false, getPositionGlobal());
+ case TELEPORT_ARRIVING:
+ // First two position updates after a teleport tend to be weird
+ LLViewerStats::getInstance()->mAgentPositionSnaps.mCountOfNextUpdatesToIgnore = 2;
+
+ // Let the interested parties know we've teleported.
+ LLViewerParcelMgr::getInstance()->onTeleportFinished(false, getPositionGlobal());
+ break;
+
+ default:
+ break;
}
}
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index c643cef78f..30685461b9 100644
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -339,6 +339,7 @@ public:
private:
bool mbAlwaysRun; // Should the avatar run by default rather than walk?
bool mbRunning; // Is the avatar trying to run right now?
+ bool mbTeleportKeepsLookAt; // Try to keep look-at after teleport is complete
//--------------------------------------------------------------------
// Sit and stand
@@ -506,7 +507,8 @@ public:
TELEPORT_REQUESTED = 2, // Waiting for source simulator to respond
TELEPORT_MOVING = 3, // Viewer has received destination location from source simulator
TELEPORT_START_ARRIVAL = 4, // Transition to ARRIVING. Viewer has received avatar update, etc., from destination simulator
- TELEPORT_ARRIVING = 5 // Make the user wait while content "pre-caches"
+ TELEPORT_ARRIVING = 5, // Make the user wait while content "pre-caches"
+ TELEPORT_LOCAL = 6 // Teleporting in-sim without showing the progress screen
};
public:
@@ -524,12 +526,15 @@ private:
//--------------------------------------------------------------------
public:
void teleportRequest(const U64& region_handle,
- const LLVector3& pos_local); // Go to a named location home
+ const LLVector3& pos_local, // Go to a named location home
+ bool look_at_from_camera = false);
void teleportViaLandmark(const LLUUID& landmark_id); // Teleport to a landmark
void teleportHome() { teleportViaLandmark(LLUUID::null); } // Go home
void teleportViaLure(const LLUUID& lure_id, BOOL godlike); // To an invited location
void teleportViaLocation(const LLVector3d& pos_global); // To a global location - this will probably need to be deprecated
+ void teleportViaLocationLookAt(const LLVector3d& pos_global);// To a global location, preserving camera rotation
void teleportCancel(); // May or may not be allowed by server
+ bool getTeleportKeepsLookAt() { return mbTeleportKeepsLookAt; } // Whether look-at reset after teleport
protected:
bool teleportCore(bool is_local = false); // Stuff for all teleports; returns true if the teleport can proceed
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index fd6b8b739d..92a9b83bc5 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -928,8 +928,9 @@ bool LLAppViewer::init()
//EXT-7013 - On windows for some locale (Japanese) standard
//datetime formatting functions didn't support some parameters such as "weekday".
+ //Names for days and months localized in xml are also useful for Polish locale(STORM-107).
std::string language = LLControlGroup::getInstance(sGlobalSettingsName)->getString("Language");
- if(language == "ja")
+ if(language == "ja" || language == "pl")
{
LLStringOps::setupWeekDaysNames(LLTrans::getString("dateTimeWeekdaysNames"));
LLStringOps::setupWeekDaysShortNames(LLTrans::getString("dateTimeWeekdaysShortNames"));
diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp
index 7d82ec3a71..d251931eca 100644
--- a/indra/newview/llchatbar.cpp
+++ b/indra/newview/llchatbar.cpp
@@ -126,7 +126,7 @@ BOOL LLChatBar::postBuild()
mInputEditor->setPassDelete(TRUE);
mInputEditor->setReplaceNewlinesWithSpaces(FALSE);
- mInputEditor->setMaxTextLength(1023);
+ mInputEditor->setMaxTextLength(DB_CHAT_MSG_STR_LEN);
mInputEditor->setEnableLineHistory(TRUE);
mIsBuilt = TRUE;
@@ -569,8 +569,12 @@ void LLChatBar::sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL
S32 channel = 0;
LLWString out_text = stripChannelNumber(wtext, &channel);
std::string utf8_out_text = wstring_to_utf8str(out_text);
- std::string utf8_text = wstring_to_utf8str(wtext);
+ if (!utf8_out_text.empty())
+ {
+ utf8_out_text = utf8str_truncate(utf8_out_text, MAX_MSG_STR_LEN);
+ }
+ std::string utf8_text = wstring_to_utf8str(wtext);
utf8_text = utf8str_trim(utf8_text);
if (!utf8_text.empty())
{
diff --git a/indra/newview/llcofwearables.cpp b/indra/newview/llcofwearables.cpp
index b1e11e1a2a..84c560639e 100644
--- a/indra/newview/llcofwearables.cpp
+++ b/indra/newview/llcofwearables.cpp
@@ -397,12 +397,20 @@ void LLCOFWearables::refresh()
mCOFVersion = catp->getVersion();
+ // Save current scrollbar position.
+ typedef std::map<LLFlatListView*, LLRect> scroll_pos_map_t;
+ scroll_pos_map_t saved_scroll_pos;
+
+ saved_scroll_pos[mAttachments] = mAttachments->getVisibleContentRect();
+ saved_scroll_pos[mClothing] = mClothing->getVisibleContentRect();
+ saved_scroll_pos[mBodyParts] = mBodyParts->getVisibleContentRect();
+
+ // Save current selection.
typedef std::vector<LLSD> values_vector_t;
typedef std::map<LLFlatListView*, values_vector_t> selection_map_t;
selection_map_t preserve_selection;
- // Save current selection
mAttachments->getSelectedValues(preserve_selection[mAttachments]);
mClothing->getSelectedValues(preserve_selection[mClothing]);
mBodyParts->getSelectedValues(preserve_selection[mBodyParts]);
@@ -450,6 +458,15 @@ void LLCOFWearables::refresh()
list->setCommitOnSelectionChange(true);
}
+
+ // Restore previous scrollbar position.
+ for (scroll_pos_map_t::const_iterator it = saved_scroll_pos.begin(); it != saved_scroll_pos.end(); ++it)
+ {
+ LLFlatListView* list = it->first;
+ LLRect scroll_pos = it->second;
+
+ list->scrollToShowRect(scroll_pos);
+ }
}
diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp
index f0c2469977..5e10f60aba 100644
--- a/indra/newview/llexpandabletextbox.cpp
+++ b/indra/newview/llexpandabletextbox.cpp
@@ -121,7 +121,6 @@ LLExpandableTextBox::LLTextBoxEx::LLTextBoxEx(const Params& p)
void LLExpandableTextBox::LLTextBoxEx::reshape(S32 width, S32 height, BOOL called_from_parent)
{
- hideExpandText();
LLTextEditor::reshape(width, height, called_from_parent);
if (getTextPixelHeight() > getRect().getHeight())
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp
index 85e45d012b..7546c070ea 100644
--- a/indra/newview/llgroupmgr.cpp
+++ b/indra/newview/llgroupmgr.cpp
@@ -1175,8 +1175,8 @@ void LLGroupMgr::processGroupRoleMembersReply(LLMessageSystem* msg, void** data)
}
else
{
- if (!rd) llwarns << "Received role data for unkown role " << role_id << " in group " << group_id << llendl;
- if (!md) llwarns << "Received role data for unkown member " << member_id << " in group " << group_id << llendl;
+ if (!rd) llwarns << "Received role data for unknown role " << role_id << " in group " << group_id << llendl;
+ if (!md) llwarns << "Received role data for unknown member " << member_id << " in group " << group_id << llendl;
}
}
}
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index 5f7d1a2ffa..b3b0c93b99 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -168,7 +168,7 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& session_label,
LLUICtrlFactory::getInstance()->buildFloater(this, xml_filename, NULL);
setTitle(mSessionLabel);
- mInputEditor->setMaxTextLength(1023);
+ mInputEditor->setMaxTextLength(DB_IM_MSG_STR_LEN);
// enable line history support for instant message bar
mInputEditor->setEnableLineHistory(TRUE);
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 129c9aec14..493398c68a 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -69,7 +69,6 @@ const static std::string IM_TEXT("message");
const static std::string IM_FROM("from");
const static std::string IM_FROM_ID("from_id");
-const static std::string NO_SESSION("(IM Session Doesn't Exist)");
const static std::string ADHOC_NAME_SUFFIX(" Conference");
const static std::string NEARBY_P2P_BY_OTHER("nearby_P2P_by_other");
@@ -231,25 +230,6 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
new LLSessionTimeoutTimer(mSessionID, SESSION_INITIALIZATION_TIMEOUT);
}
- // *WORKAROUND: for server hard-coded string in indra\newsim\llsimchatterbox.cpp
- if (isAdHocSessionType() && IM_SESSION_INVITE == type)
- {
- // For an ad-hoc incoming chat name is received from the server and is in a form of "<Avatar's name> Conference"
- // Lets update it to localize the "Conference" word. See EXT-8429.
- S32 separator_index = mName.rfind(" ");
- std::string name = mName.substr(0, separator_index);
- ++separator_index;
- std::string conference_word = mName.substr(separator_index, mName.length());
-
- // additional check that session name is what we expected
- if ("Conference" == conference_word)
- {
- LLStringUtil::format_map_t args;
- args["[AGENT_NAME]"] = name;
- LLTrans::findString(mName, "conference-title-incoming", args);
- }
- }
-
if (IM_NOTHING_SPECIAL == type)
{
mCallBackEnabled = LLVoiceClient::getInstance()->isSessionCallBackPossible(mSessionID);
@@ -266,6 +246,27 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
LLLogChat::loadAllHistory(mHistoryFileName, chat_history);
addMessagesFromHistory(chat_history);
}
+
+ // Localizing name of ad-hoc session. STORM-153
+ // Changing name should happen here- after the history file was created, so that
+ // history files have consistent (English) names in different locales.
+ if (isAdHocSessionType() && IM_SESSION_INVITE == type)
+ {
+ // Name here has a form of "<Avatar's name> Conference"
+ // Lets update it to localize the "Conference" word. See EXT-8429.
+ S32 separator_index = mName.rfind(" ");
+ std::string name = mName.substr(0, separator_index);
+ ++separator_index;
+ std::string conference_word = mName.substr(separator_index, mName.length());
+
+ // additional check that session name is what we expected
+ if ("Conference" == conference_word)
+ {
+ LLStringUtil::format_map_t args;
+ args["[AGENT_NAME]"] = name;
+ LLTrans::findString(mName, "conference-title-incoming", args);
+ }
+ }
}
void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction)
@@ -791,14 +792,14 @@ LLIMModel::LLIMSession* LLIMModel::addMessageSilently(const LLUUID& session_id,
}
-const std::string& LLIMModel::getName(const LLUUID& session_id) const
+const std::string LLIMModel::getName(const LLUUID& session_id) const
{
LLIMSession* session = findIMSession(session_id);
if (!session)
{
llwarns << "session " << session_id << "does not exist " << llendl;
- return NO_SESSION;
+ return LLTrans::getString("no_session_message");
}
return session->mName;
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index 4ce94773bf..ba8c7ae489 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -230,7 +230,7 @@ public:
* For an incoming ad-hoc chat - is received from the server and is in a from of "<Avatar's name> Conference"
* It is updated in LLIMModel::LLIMSession's constructor to localize the "Conference".
*/
- const std::string& getName(const LLUUID& session_id) const;
+ const std::string getName(const LLUUID& session_id) const;
/**
* Get number of unread messages in a session with session_id
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 02e7f0b9e2..311d791319 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -2471,6 +2471,10 @@ void LLFolderBridge::folderOptionsMenu()
{
disabled_items.push_back(std::string("Remove From Outfit"));
}
+ if (!LLAppearanceMgr::instance().getCanReplaceCOF(mUUID))
+ {
+ disabled_items.push_back(std::string("Replace Outfit"));
+ }
mItems.push_back(std::string("Outfit Separator"));
}
LLMenuGL* menup = dynamic_cast<LLMenuGL*>(mMenu.get());
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index a747c228a6..b6d2e02eef 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -64,7 +64,7 @@ public:
typedef boost::function<LLToastPanelBase* (void )> create_toast_panel_callback_t;
void setCreatePanelCallback(create_toast_panel_callback_t value) { m_create_toast_panel_callback_t = value;}
- void onToastDestroyed (LLToast* toast);
+ void onToastDestroyed (LLToast* toast, bool app_quitting);
void onToastFade (LLToast* toast);
void reshape (S32 width, S32 height, BOOL called_from_parent);
@@ -96,6 +96,7 @@ public:
}
protected:
+ void deactivateToast(LLToast* toast);
void addToToastPool(LLToast* toast)
{
toast->setVisible(FALSE);
@@ -116,14 +117,65 @@ protected:
bool mStopProcessing;
};
+//-----------------------------------------------------------------------------------------------
+// LLNearbyChatToast
+//-----------------------------------------------------------------------------------------------
+
+// We're deriving from LLToast to be able to override onClose()
+// in order to handle closing nearby chat toasts properly.
+class LLNearbyChatToast : public LLToast
+{
+ LOG_CLASS(LLNearbyChatToast);
+public:
+ LLNearbyChatToast(const LLToast::Params& p, LLNearbyChatScreenChannel* nc_channelp)
+ : LLToast(p),
+ mNearbyChatScreenChannelp(nc_channelp)
+ {
+ }
+
+ /*virtual*/ void onClose(bool app_quitting);
+
+private:
+ LLNearbyChatScreenChannel* mNearbyChatScreenChannelp;
+};
+
+//-----------------------------------------------------------------------------------------------
+// LLNearbyChatScreenChannel
+//-----------------------------------------------------------------------------------------------
+
+void LLNearbyChatScreenChannel::deactivateToast(LLToast* toast)
+{
+ std::vector<LLToast*>::iterator pos = std::find(m_active_toasts.begin(), m_active_toasts.end(), toast);
+
+ if (pos == m_active_toasts.end())
+ {
+ llassert(pos == m_active_toasts.end());
+ return;
+ }
+
+ m_active_toasts.erase(pos);
+}
+
void LLNearbyChatScreenChannel::createOverflowToast(S32 bottom, F32 timer)
{
//we don't need overflow toast in nearby chat
}
-void LLNearbyChatScreenChannel::onToastDestroyed(LLToast* toast)
+void LLNearbyChatScreenChannel::onToastDestroyed(LLToast* toast, bool app_quitting)
{
- mStopProcessing = true;
+ if (app_quitting)
+ {
+ // Viewer is quitting.
+ // Immediately stop processing chat messages (EXT-1419).
+ mStopProcessing = true;
+ }
+ else
+ {
+ // The toast is being closed by user (STORM-192).
+ // Remove it from the list of active toasts to prevent
+ // further references to the invalid pointer.
+ deactivateToast(toast);
+ }
}
void LLNearbyChatScreenChannel::onToastFade(LLToast* toast)
@@ -132,9 +184,7 @@ void LLNearbyChatScreenChannel::onToastFade(LLToast* toast)
if(!toast)
return;
- std::vector<LLToast*>::iterator pos = std::find(m_active_toasts.begin(),m_active_toasts.end(),toast);
- if(pos!=m_active_toasts.end())
- m_active_toasts.erase(pos);
+ deactivateToast(toast);
addToToastPool(toast);
@@ -153,11 +203,10 @@ bool LLNearbyChatScreenChannel::createPoolToast()
p.lifetime_secs = gSavedSettings.getS32("NearbyToastLifeTime");
p.fading_time_secs = gSavedSettings.getS32("NearbyToastFadingTime");
- LLToast* toast = new LLToast(p);
+ LLToast* toast = new LLNearbyChatToast(p, this);
toast->setOnFadeCallback(boost::bind(&LLNearbyChatScreenChannel::onToastFade, this, _1));
- toast->setOnToastDestroyedCallback(boost::bind(&LLNearbyChatScreenChannel::onToastDestroyed, this, _1));
m_toast_pool.push_back(toast);
return true;
@@ -452,4 +501,14 @@ void LLNearbyChatHandler::onDeleteToast(LLToast* toast)
}
+//-----------------------------------------------------------------------------------------------
+// LLNearbyChatToast
+//-----------------------------------------------------------------------------------------------
+
+// virtual
+void LLNearbyChatToast::onClose(bool app_quitting)
+{
+ mNearbyChatScreenChannelp->onToastDestroyed(this, app_quitting);
+}
+// EOF
diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp
index b5683296eb..4231a73af1 100644
--- a/indra/newview/llnotificationhandlerutil.cpp
+++ b/indra/newview/llnotificationhandlerutil.cpp
@@ -353,7 +353,7 @@ void LLHandlerUtil::logGroupNoticeToIMGroup(
if (!gAgent.getGroupData(payload["group_id"].asUUID(), groupData))
{
llwarns
- << "Group notice for unkown group: "
+ << "Group notice for unknown group: "
<< payload["group_id"].asUUID() << llendl;
return;
}
diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp
index cf0b3d94bd..c0f7fa4abf 100644
--- a/indra/newview/lloutfitslist.cpp
+++ b/indra/newview/lloutfitslist.cpp
@@ -85,7 +85,7 @@ public:
registrar.add("Gear.WearAdd", boost::bind(&LLOutfitListGearMenu::onAdd, this));
- enable_registrar.add("Gear.OnEnable", boost::bind(&LLOutfitsList::isActionEnabled, mOutfitList, _2));
+ enable_registrar.add("Gear.OnEnable", boost::bind(&LLOutfitListGearMenu::onEnable, this, _2));
enable_registrar.add("Gear.OnVisible", boost::bind(&LLOutfitListGearMenu::onVisible, this, _2));
mMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>(
@@ -155,27 +155,11 @@ private:
void onTakeOff()
{
- // Take off selected items if there are any
- if (mOutfitList->hasItemSelected())
- {
- uuid_vec_t selected_uuids;
- mOutfitList->getSelectedItemsUUIDs(selected_uuids);
-
- for (uuid_vec_t::const_iterator it=selected_uuids.begin(); it != selected_uuids.end(); ++it)
- {
- if (get_is_item_worn(*it))
- {
- LLAppearanceMgr::instance().removeItemFromAvatar(*it);
- }
- }
- }
- else // or take off the whole selected outfit if no items specified.
+ // Take off selected outfit.
+ const LLUUID& selected_outfit_id = getSelectedOutfitID();
+ if (selected_outfit_id.notNull())
{
- const LLUUID& selected_outfit_id = getSelectedOutfitID();
- if (selected_outfit_id.notNull())
- {
- LLAppearanceMgr::instance().takeOffOutfit(selected_outfit_id);
- }
+ LLAppearanceMgr::instance().takeOffOutfit(selected_outfit_id);
}
}
@@ -209,6 +193,20 @@ private:
LLAgentWearables::createWearable(type, true);
}
+ bool onEnable(LLSD::String param)
+ {
+ // Handle the "Wear - Replace Current Outfit" menu option specially
+ // because LLOutfitList::isActionEnabled() checks whether it's allowed
+ // to wear selected outfit OR selected items, while we're only
+ // interested in the outfit (STORM-183).
+ if ("wear" == param)
+ {
+ return LLAppearanceMgr::instance().getCanReplaceCOF(mOutfitList->getSelectedOutfitUUID());
+ }
+
+ return mOutfitList->isActionEnabled(param);
+ }
+
bool onVisible(LLSD::String param)
{
const LLUUID& selected_outfit_id = getSelectedOutfitID();
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
index ff15e3f08e..24bf67a000 100644
--- a/indra/newview/llpanellandmarks.cpp
+++ b/indra/newview/llpanellandmarks.cpp
@@ -965,12 +965,32 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const
|| "expand" == command_name
)
{
- return canSelectedBeModified(command_name);
+ if (!root_folder_view) return false;
+
+ std::set<LLUUID> selected_uuids = root_folder_view->getSelectionList();
+
+ // Allow to execute the command only if it can be applied to all selected items.
+ for (std::set<LLUUID>::const_iterator iter = selected_uuids.begin(); iter != selected_uuids.end(); ++iter)
+ {
+ LLFolderViewItem* item = root_folder_view->getItemByID(*iter);
+
+ // If no item is found it might be a folder id.
+ if (!item)
+ {
+ item = root_folder_view->getFolderByID(*iter);
+ }
+ if (!item) return false;
+
+ if (!canItemBeModified(command_name, item)) return false;
+ }
+
+ return true;
}
else if ( "teleport" == command_name
|| "more_info" == command_name
|| "show_on_map" == command_name
|| "copy_slurl" == command_name
+ || "rename" == command_name
)
{
// disable some commands for multi-selection. EXT-1757
@@ -994,13 +1014,16 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const
// Disable "Show on Map" if landmark loading is in progress.
return !gLandmarkList.isAssetInLoadedCallbackMap(asset_uuid);
}
+ else if ("rename" == command_name)
+ {
+ LLFolderViewItem* selected_item = getCurSelectedItem();
+ if (!selected_item) return false;
+
+ return canItemBeModified(command_name, selected_item);
+ }
return true;
}
- else if ("rename" == command_name)
- {
- return root_folder_view && root_folder_view->getSelectedCount() == 1 && canSelectedBeModified(command_name);
- }
else if("category" == command_name)
{
// we can add folder only in Landmarks Accordion
@@ -1065,12 +1088,11 @@ Rules:
4. We can not paste folders from Clipboard (processed by LLFolderView::canPaste())
5. Check LLFolderView/Inventory Bridges rules
*/
-bool LLLandmarksPanel::canSelectedBeModified(const std::string& command_name) const
+bool LLLandmarksPanel::canItemBeModified(const std::string& command_name, LLFolderViewItem* item) const
{
// validate own rules first
- LLFolderViewItem* selected = getCurSelectedItem();
- if (!selected) return false;
+ if (!item) return false;
// nothing can be modified in Library
if (mLibraryInventoryPanel == mCurrentSelectedList) return false;
@@ -1078,7 +1100,7 @@ bool LLLandmarksPanel::canSelectedBeModified(const std::string& command_name) co
bool can_be_modified = false;
// landmarks can be modified in any other accordion...
- if (isLandmarkSelected())
+ if (item->getListener()->getInventoryType() == LLInventoryType::IT_LANDMARK)
{
can_be_modified = true;
@@ -1107,16 +1129,16 @@ bool LLLandmarksPanel::canSelectedBeModified(const std::string& command_name) co
}
else if ("collapse" == command_name)
{
- return selected->isOpen();
+ return item->isOpen();
}
else if ("expand" == command_name)
{
- return !selected->isOpen();
+ return !item->isOpen();
}
if (can_be_modified)
{
- LLFolderViewEventListener* listenerp = selected->getListener();
+ LLFolderViewEventListener* listenerp = item->getListener();
if ("cut" == command_name)
{
diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h
index 2b398decce..0d4402d8cb 100644
--- a/indra/newview/llpanellandmarks.h
+++ b/indra/newview/llpanellandmarks.h
@@ -127,12 +127,12 @@ private:
void onCustomAction(const LLSD& command_name);
/**
- * Determines if selected item can be modified via context/gear menu.
+ * Determines if an item can be modified via context/gear menu.
*
* It validates Places Landmarks rules first. And then LLFolderView permissions.
* For now it checks cut/rename/delete/paste actions.
*/
- bool canSelectedBeModified(const std::string& command_name) const;
+ bool canItemBeModified(const std::string& command_name, LLFolderViewItem* item) const;
void onPickPanelExit( LLPanelPickEdit* pick_panel, LLView* owner, const LLSD& params);
/**
diff --git a/indra/newview/llpanelplaceprofile.cpp b/indra/newview/llpanelplaceprofile.cpp
index ee30c928c2..801db1e741 100644
--- a/indra/newview/llpanelplaceprofile.cpp
+++ b/indra/newview/llpanelplaceprofile.cpp
@@ -230,6 +230,11 @@ void LLPanelPlaceProfile::setInfoType(EInfoType type)
break;
}
+ if (mAccordionCtrl != NULL)
+ {
+ mAccordionCtrl->expandDefaultTab();
+ }
+
LLPanelPlaceInfo::setInfoType(type);
}
@@ -274,11 +279,6 @@ void LLPanelPlaceProfile::handleVisibilityChange(BOOL new_visibility)
parcel_mgr->deselectUnused();
}
}
-
- if (mAccordionCtrl != NULL)
- {
- mAccordionCtrl->expandDefaultTab();
- }
}
void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,
diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp
index 7206e4fcaf..a3c6a7b6f1 100644
--- a/indra/newview/llsidepanelappearance.cpp
+++ b/indra/newview/llsidepanelappearance.cpp
@@ -286,6 +286,8 @@ void LLSidepanelAppearance::showOutfitsInventoryPanel()
void LLSidepanelAppearance::showOutfitEditPanel()
{
+ if (mOutfitEdit && mOutfitEdit->getVisible()) return;
+
// Accordion's state must be reset in all cases except the one when user
// is returning back to the mOutfitEdit panel from the mEditWearable panel.
// The simplest way to control this is to check the visibility state of the mEditWearable
diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp
index 731079fb5d..e41bbe43df 100644
--- a/indra/newview/llsidepaneliteminfo.cpp
+++ b/indra/newview/llsidepaneliteminfo.cpp
@@ -75,7 +75,40 @@ void LLItemPropertiesObserver::changed(U32 mask)
}
}
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLObjectInventoryObserver
+//
+// Helper class to watch for changes in an object inventory.
+// Used to update item properties in LLSidepanelItemInfo.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+class LLObjectInventoryObserver : public LLVOInventoryListener
+{
+public:
+ LLObjectInventoryObserver(LLSidepanelItemInfo* floater, LLViewerObject* object)
+ : mFloater(floater)
+ {
+ registerVOInventoryListener(object, NULL);
+ }
+ virtual ~LLObjectInventoryObserver()
+ {
+ removeVOInventoryListener();
+ }
+ /*virtual*/ void inventoryChanged(LLViewerObject* object,
+ LLInventoryObject::object_list_t* inventory,
+ S32 serial_num,
+ void* user_data);
+private:
+ LLSidepanelItemInfo* mFloater;
+};
+/*virtual*/
+void LLObjectInventoryObserver::inventoryChanged(LLViewerObject* object,
+ LLInventoryObject::object_list_t* inventory,
+ S32 serial_num,
+ void* user_data)
+{
+ mFloater->dirty();
+}
///----------------------------------------------------------------------------
/// Class LLSidepanelItemInfo
@@ -86,6 +119,7 @@ static LLRegisterPanelClassWrapper<LLSidepanelItemInfo> t_item_info("sidepanel_i
// Default constructor
LLSidepanelItemInfo::LLSidepanelItemInfo()
: mItemID(LLUUID::null)
+ , mObjectInventoryObserver(NULL)
{
mPropertiesObserver = new LLItemPropertiesObserver(this);
@@ -97,6 +131,8 @@ LLSidepanelItemInfo::~LLSidepanelItemInfo()
{
delete mPropertiesObserver;
mPropertiesObserver = NULL;
+
+ stopObjectInventoryObserver();
}
// virtual
@@ -134,6 +170,10 @@ BOOL LLSidepanelItemInfo::postBuild()
void LLSidepanelItemInfo::setObjectID(const LLUUID& object_id)
{
mObjectID = object_id;
+
+ // Start monitoring changes in the object inventory to update
+ // selected inventory item properties in Item Profile panel. See STORM-148.
+ startObjectInventoryObserver();
}
void LLSidepanelItemInfo::setItemID(const LLUUID& item_id)
@@ -147,6 +187,8 @@ void LLSidepanelItemInfo::reset()
mObjectID = LLUUID::null;
mItemID = LLUUID::null;
+
+ stopObjectInventoryObserver();
}
void LLSidepanelItemInfo::refresh()
@@ -600,6 +642,33 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
}
}
+void LLSidepanelItemInfo::startObjectInventoryObserver()
+{
+ if (!mObjectInventoryObserver)
+ {
+ stopObjectInventoryObserver();
+
+ // Previous object observer should be removed before starting to observe a new object.
+ llassert(mObjectInventoryObserver == NULL);
+ }
+
+ if (mObjectID.isNull())
+ {
+ llwarns << "Empty object id passed to inventory observer" << llendl;
+ return;
+ }
+
+ LLViewerObject* object = gObjectList.findObject(mObjectID);
+
+ mObjectInventoryObserver = new LLObjectInventoryObserver(this, object);
+}
+
+void LLSidepanelItemInfo::stopObjectInventoryObserver()
+{
+ delete mObjectInventoryObserver;
+ mObjectInventoryObserver = NULL;
+}
+
void LLSidepanelItemInfo::onClickCreator()
{
LLViewerInventoryItem* item = findItem();
diff --git a/indra/newview/llsidepaneliteminfo.h b/indra/newview/llsidepaneliteminfo.h
index 82ebbfa7ec..10e93dd7de 100644
--- a/indra/newview/llsidepaneliteminfo.h
+++ b/indra/newview/llsidepaneliteminfo.h
@@ -37,6 +37,7 @@
class LLButton;
class LLViewerInventoryItem;
class LLItemPropertiesObserver;
+class LLObjectInventoryObserver;
class LLViewerObject;
class LLPermissions;
@@ -63,9 +64,13 @@ protected:
void refreshFromItem(LLViewerInventoryItem* item);
private:
+ void startObjectInventoryObserver();
+ void stopObjectInventoryObserver();
+
LLUUID mItemID; // inventory UUID for the inventory item.
LLUUID mObjectID; // in-world task UUID, or null if in agent inventory.
LLItemPropertiesObserver* mPropertiesObserver; // for syncing changes to item
+ LLObjectInventoryObserver* mObjectInventoryObserver; // for syncing changes to items inside an object
//
// UI Elements
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index 88e37b815f..9ee504cc4c 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -568,8 +568,9 @@ void LLSideTray::toggleTabButton(LLSideTrayTab* tab)
{
LLButton* btn = it->second;
bool new_state = !btn->getToggleState();
- btn->setToggleState(new_state);
- btn->setImageOverlay( new_state ? tab->mImageSelected : tab->mImage );
+ btn->setToggleState(new_state);
+ // Only highlight the tab if side tray is expanded (STORM-157).
+ btn->setImageOverlay( new_state && !getCollapsed() ? tab->mImageSelected : tab->mImage );
}
}
@@ -762,8 +763,15 @@ bool LLSideTray::removeTab(LLSideTrayTab* tab)
// Deselect the tab.
if (mActiveTab == tab)
{
- child_vector_iter_t next_tab_it =
- (tab_it < (mTabs.end() - 1)) ? tab_it + 1 : mTabs.begin();
+ // Select the next tab (or first one, if we're removing the last tab),
+ // skipping the fake open/close tab (STORM-155).
+ child_vector_iter_t next_tab_it = tab_it;
+ do
+ {
+ next_tab_it = (next_tab_it < (mTabs.end() - 1)) ? next_tab_it + 1 : mTabs.begin();
+ }
+ while ((*next_tab_it)->getName() == "sidebar_openclose");
+
selectTabByName((*next_tab_it)->getName(), true); // Don't hide the tab being removed.
}
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index b622e98971..2c15ff9aed 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -107,10 +107,6 @@ const S32 TEXT_HEIGHT = 18;
static void onClickVolume(void*);
-std::vector<std::string> LLStatusBar::sDays;
-std::vector<std::string> LLStatusBar::sMonths;
-const U32 LLStatusBar::MAX_DATE_STRING_LENGTH = 2000;
-
LLStatusBar::LLStatusBar(const LLRect& rect)
: LLPanel(),
mTextTime(NULL),
@@ -127,10 +123,6 @@ LLStatusBar::LLStatusBar(const LLRect& rect)
// status bar can possible overlay menus?
setMouseOpaque(FALSE);
- // size of day of the weeks and year
- sDays.reserve(7);
- sMonths.reserve(12);
-
mBalanceTimer = new LLFrameTimer();
mHealthTimer = new LLFrameTimer();
@@ -169,9 +161,6 @@ BOOL LLStatusBar::postBuild()
{
gMenuBarView->setRightMouseDownCallback(boost::bind(&show_navbar_context_menu, _1, _2, _3));
- // build date necessary data (must do after panel built)
- setupDate();
-
mTextTime = getChild<LLTextBox>("TimeText" );
getChild<LLUICtrl>("buyL")->setCommitCallback(
@@ -517,69 +506,6 @@ void LLStatusBar::onClickMediaToggle(void* data)
LLViewerMedia::setAllMediaEnabled(enable);
}
-// sets the static variables necessary for the date
-void LLStatusBar::setupDate()
-{
- // fill the day array with what's in the xui
- std::string day_list = getString("StatBarDaysOfWeek");
- size_t length = day_list.size();
-
- // quick input check
- if(length < MAX_DATE_STRING_LENGTH)
- {
- // tokenize it and put it in the array
- std::string cur_word;
- for(size_t i = 0; i < length; ++i)
- {
- if(day_list[i] == ':')
- {
- sDays.push_back(cur_word);
- cur_word.clear();
- }
- else
- {
- cur_word.append(1, day_list[i]);
- }
- }
- sDays.push_back(cur_word);
- }
-
- // fill the day array with what's in the xui
- std::string month_list = getString( "StatBarMonthsOfYear" );
- length = month_list.size();
-
- // quick input check
- if(length < MAX_DATE_STRING_LENGTH)
- {
- // tokenize it and put it in the array
- std::string cur_word;
- for(size_t i = 0; i < length; ++i)
- {
- if(month_list[i] == ':')
- {
- sMonths.push_back(cur_word);
- cur_word.clear();
- }
- else
- {
- cur_word.append(1, month_list[i]);
- }
- }
- sMonths.push_back(cur_word);
- }
-
- // make sure we have at least 7 days and 12 months
- if(sDays.size() < 7)
- {
- sDays.resize(7);
- }
-
- if(sMonths.size() < 12)
- {
- sMonths.resize(12);
- }
-}
-
// static
void LLStatusBar::onClickStatGraph(void* data)
{
diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h
index c8c86dfd8c..8840db2c4a 100644
--- a/indra/newview/llstatusbar.h
+++ b/indra/newview/llstatusbar.h
@@ -85,9 +85,7 @@ public:
LLPanelNearByMedia* getNearbyMediaPanel() { return mPanelNearByMedia; }
private:
- // simple method to setup the part that holds the date
- void setupDate();
-
+
void onClickBuyCurrency();
void onVolumeChanged(const LLSD& newvalue);
@@ -117,9 +115,6 @@ private:
LLFrameTimer* mHealthTimer;
LLPanelVolumePulldown* mPanelVolumePulldown;
LLPanelNearByMedia* mPanelNearByMedia;
- static std::vector<std::string> sDays;
- static std::vector<std::string> sMonths;
- static const U32 MAX_DATE_STRING_LENGTH;
};
// *HACK: Status bar owns your cached money balance. JC
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index d8be70e546..864de018e0 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -619,6 +619,25 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)
return TRUE;
}
}
+ else if (gSavedSettings.getBOOL("DoubleClickTeleport"))
+ {
+ LLViewerObject* objp = mPick.getObject();
+ LLViewerObject* parentp = objp ? objp->getRootEdit() : NULL;
+
+ bool is_in_world = mPick.mObjectID.notNull() && objp && !objp->isHUDAttachment();
+ bool is_land = mPick.mPickType == LLPickInfo::PICK_LAND;
+ bool pos_non_zero = !mPick.mPosGlobal.isExactlyZero();
+ bool has_touch_handler = (objp && objp->flagHandleTouch()) || (parentp && parentp->flagHandleTouch());
+ bool has_click_action = final_click_action(objp);
+
+ if (pos_non_zero && (is_land || (is_in_world && !has_touch_handler && !has_click_action)))
+ {
+ LLVector3d pos = mPick.mPosGlobal;
+ pos.mdV[VZ] += gAgentAvatarp->getPelvisToFoot();
+ gAgent.teleportViaLocationLookAt(pos);
+ return TRUE;
+ }
+ }
return FALSE;
}
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index d0ad918c58..916cbe2267 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -85,6 +85,7 @@ LLPointer<LLViewerTexture> gDisconnectedImagep = NULL;
// used to toggle renderer back on after teleport
const F32 TELEPORT_RENDER_DELAY = 20.f; // Max time a teleport is allowed to take before we raise the curtain
const F32 TELEPORT_ARRIVAL_DELAY = 2.f; // Time to preload the world before raising the curtain after we've actually already arrived.
+const F32 TELEPORT_LOCAL_DELAY = 1.0f; // Delay to prevent teleports after starting an in-sim teleport.
BOOL gTeleportDisplay = FALSE;
LLFrameTimer gTeleportDisplayTimer;
LLFrameTimer gTeleportArrivalTimer;
@@ -406,6 +407,18 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
}
break;
+ case LLAgent::TELEPORT_LOCAL:
+ // Short delay when teleporting in the same sim (progress screen active but not shown - did not
+ // fall-through from TELEPORT_START)
+ {
+ if( gTeleportDisplayTimer.getElapsedTimeF32() > TELEPORT_LOCAL_DELAY )
+ {
+ //LLFirstUse::useTeleport();
+ gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
+ }
+ }
+ break;
+
case LLAgent::TELEPORT_NONE:
// No teleport in progress
gViewerWindow->setShowProgress(FALSE);
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index daeace0ec5..f62223a38d 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -6573,6 +6573,16 @@ class LLToggleControl : public view_listener_t
std::string control_name = userdata.asString();
BOOL checked = gSavedSettings.getBOOL( control_name );
gSavedSettings.setBOOL( control_name, !checked );
+
+ // Doubleclick actions - there can be only one
+ if ((control_name == "DoubleClickAutoPilot") && !checked)
+ {
+ gSavedSettings.setBOOL( "DoubleClickTeleport", FALSE );
+ }
+ else if ((control_name == "DoubleClickTeleport") && !checked)
+ {
+ gSavedSettings.setBOOL( "DoubleClickAutoPilot", FALSE );
+ }
return true;
}
};
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 6d0cbbf8f2..c35173a7d4 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -82,6 +82,7 @@
#include "lluri.h"
#include "llviewergenericmessage.h"
#include "llviewermenu.h"
+#include "llviewerjoystick.h"
#include "llviewerobjectlist.h"
#include "llviewerparcelmgr.h"
#include "llviewerstats.h"
@@ -3189,6 +3190,8 @@ void process_teleport_start(LLMessageSystem *msg, void**)
U32 teleport_flags = 0x0;
msg->getU32("Info", "TeleportFlags", teleport_flags);
+ LL_DEBUGS("Messaging") << "Got TeleportStart with TeleportFlags=" << teleport_flags << ". gTeleportDisplay: " << gTeleportDisplay << ", gAgent.mTeleportState: " << gAgent.getTeleportState() << LL_ENDL;
+
if (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL)
{
gViewerWindow->setProgressCancelButtonVisible(FALSE);
@@ -3207,6 +3210,7 @@ void process_teleport_start(LLMessageSystem *msg, void**)
gAgent.setTeleportState( LLAgent::TELEPORT_START );
make_ui_sound("UISndTeleportOut");
+ LL_INFOS("Messaging") << "Teleport initiated by remote TeleportStart message with TeleportFlags: " << teleport_flags << LL_ENDL;
// Don't call LLFirstUse::useTeleport here because this could be
// due to being killed, which would send you home, not to a Telehub
}
@@ -3548,6 +3552,12 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
if( is_teleport )
{
+ if (gAgent.getTeleportKeepsLookAt())
+ {
+ // *NOTE: the LookAt data we get from the sim here doesn't
+ // seem to be useful, so get it from the camera instead
+ look_at = LLViewerCamera::getInstance()->getAtAxis();
+ }
// Force the camera back onto the agent, don't animate.
gAgentCamera.setFocusOnAvatar(TRUE, FALSE);
gAgentCamera.slamLookAt(look_at);
@@ -3594,7 +3604,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
{
LLTracker::stopTracking(NULL);
}
- else if ( is_teleport )
+ else if ( is_teleport && !gAgent.getTeleportKeepsLookAt() )
{
//look at the beacon
LLVector3 global_agent_pos = agent_pos;
@@ -5866,7 +5876,18 @@ void process_teleport_local(LLMessageSystem *msg,void**)
if( gAgent.getTeleportState() != LLAgent::TELEPORT_NONE )
{
- gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
+ if( gAgent.getTeleportState() == LLAgent::TELEPORT_LOCAL )
+ {
+ // To prevent TeleportStart messages re-activating the progress screen right
+ // after tp, keep the teleport state and let progress screen clear it after a short delay
+ // (progress screen is active but not visible) *TODO: remove when SVC-5290 is fixed
+ gTeleportDisplayTimer.reset();
+ gTeleportDisplay = TRUE;
+ }
+ else
+ {
+ gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
+ }
}
// Sim tells us whether the new position is off the ground
@@ -5882,8 +5903,10 @@ void process_teleport_local(LLMessageSystem *msg,void**)
gAgent.setPositionAgent(pos);
gAgentCamera.slamLookAt(look_at);
- // likewise make sure the camera is behind the avatar
- gAgentCamera.resetView(TRUE, TRUE);
+ if ( !(gAgent.getTeleportKeepsLookAt() && LLViewerJoystick::getInstance()->getOverrideCamera()) )
+ {
+ gAgentCamera.resetView(TRUE, TRUE);
+ }
// send camera update to new region
gAgentCamera.updateCamera();
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 25cc24da95..741a9e6ec4 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -1844,7 +1844,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
if (cdp)
{
F32 ping_delay = 0.5f * mTimeDilation * ( ((F32)cdp->getPingDelay()) * 0.001f + gFrameDTClamped);
- LLVector3 diff = getVelocity() * (0.5f*mTimeDilation*(gFrameDTClamped + ((F32)ping_delay)*0.001f));
+ LLVector3 diff = getVelocity() * ping_delay;
new_pos_parent += diff;
}
else
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index cab6fbdc93..46d8f65d23 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -176,7 +176,7 @@ const F32 TIME_BEFORE_MESH_CLEANUP = 5.f; // seconds
const S32 AVATAR_RELEASE_THRESHOLD = 10; // number of avatar instances before releasing memory
const F32 FOOT_GROUND_COLLISION_TOLERANCE = 0.25f;
const F32 AVATAR_LOD_TWEAK_RANGE = 0.7f;
-const S32 MAX_BUBBLE_CHAT_LENGTH = 1023;
+const S32 MAX_BUBBLE_CHAT_LENGTH = DB_CHAT_MSG_STR_LEN;
const S32 MAX_BUBBLE_CHAT_UTTERANCES = 12;
const F32 CHAT_FADE_TIME = 8.0;
const F32 BUBBLE_CHAT_TIME = CHAT_FADE_TIME * 3.f;
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 2e003dd2b8..e674fec053 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -386,7 +386,7 @@ LLVivoxVoiceClient::~LLVivoxVoiceClient()
{
}
-//----------------------------------------------
+//---------------------------------------------------
void LLVivoxVoiceClient::init(LLPumpIO *pump)
{
@@ -400,7 +400,8 @@ void LLVivoxVoiceClient::terminate()
{
logout();
connectorShutdown();
- closeSocket(); // Need to do this now -- bad things happen if the destructor does it later.
+ closeSocket(); // Need to do this now -- bad things happen if the destructor does it later.
+ cleanUp();
}
else
{
@@ -408,6 +409,18 @@ void LLVivoxVoiceClient::terminate()
}
}
+//---------------------------------------------------
+
+void LLVivoxVoiceClient::cleanUp()
+{
+ deleteAllSessions();
+ deleteAllBuddies();
+ deleteAllVoiceFonts();
+ deleteVoiceFontTemplates();
+}
+
+//---------------------------------------------------
+
const LLVoiceVersionInfo& LLVivoxVoiceClient::getVersion()
{
return mVoiceVersion;
@@ -776,14 +789,10 @@ void LLVivoxVoiceClient::stateMachine()
{
//MARK: stateDisableCleanup
case stateDisableCleanup:
- // Clean up and reset everything.
+ // Clean up and reset everything.
closeSocket();
- deleteAllSessions();
- deleteAllBuddies();
- deleteAllVoiceFonts();
- deleteVoiceFontTemplates();
+ cleanUp();
- mConnectorHandle.clear();
mAccountHandle.clear();
mAccountPassword.clear();
mVoiceAccountServerURI.clear();
@@ -1675,12 +1684,9 @@ void LLVivoxVoiceClient::stateMachine()
//MARK: stateLoggedOut
case stateLoggedOut: // logout response received
- // Once we're logged out, all these things are invalid.
+ // Once we're logged out, these things are invalid.
mAccountHandle.clear();
- deleteAllSessions();
- deleteAllBuddies();
- deleteAllVoiceFonts();
- deleteVoiceFontTemplates();
+ cleanUp();
if(mVoiceEnabled && !mRelogRequested)
{
@@ -1778,6 +1784,8 @@ void LLVivoxVoiceClient::closeSocket(void)
{
mSocket.reset();
mConnected = false;
+ mConnectorHandle.clear();
+ mAccountHandle.clear();
}
void LLVivoxVoiceClient::loginSendMessage()
@@ -2370,8 +2378,7 @@ void LLVivoxVoiceClient::giveUp()
{
// All has failed. Clean up and stop trying.
closeSocket();
- deleteAllSessions();
- deleteAllBuddies();
+ cleanUp();
setState(stateJail);
}
diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h
index d10a562616..08f2f75a39 100644
--- a/indra/newview/llvoicevivox.h
+++ b/indra/newview/llvoicevivox.h
@@ -668,7 +668,10 @@ protected:
private:
LLVoiceVersionInfo mVoiceVersion;
-
+
+ /// Clean up objects created during a voice session.
+ void cleanUp();
+
state mState;
bool mSessionTerminateRequested;
bool mRelogRequested;
diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h
index 0ac6b9117b..6b3e7873a1 100644
--- a/indra/newview/llvosky.h
+++ b/indra/newview/llvosky.h
@@ -139,10 +139,10 @@ protected:
~LLSkyTex();
- static S32 getResolution() { return sResolution; }
+ static S32 getResolution() { return sResolution; }
static S32 getCurrent() { return sCurrent; }
- static S32 stepCurrent() { return (sCurrent = (sCurrent + 1) % 2); }
- static S32 getNext() { return ((sCurrent+1) % 2); }
+ static S32 stepCurrent() { sCurrent++; sCurrent &= 1; return sCurrent; }
+ static S32 getNext() { return ((sCurrent+1) & 1); }
static S32 getWhich(const BOOL curr) { return curr ? sCurrent : getNext(); }
void initEmpty(const S32 tex);
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
index 8caf56f47e..bea106bf28 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
@@ -71,7 +71,7 @@
<combo_box.item label="Magyar (Ungarsk)" name="Hungarian" />
<combo_box.item label="Nederlands (Hollandsk)" name="Dutch" />
<combo_box.item label="Polski (Polsk)" name="Polish" />
- <combo_box.item label="Portugués (Portugisisk)" name="Portugese" />
+ <combo_box.item label="Português (Portugisisk)" name="Portugese" />
<combo_box.item label="Русский (Russisk)" name="Russian" />
<combo_box.item label="Türkçe (Tyrkisk)" name="Turkish" />
<combo_box.item label="Українська (Ukrainsk)" name="Ukrainian" />
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_general.xml b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
index e70cb48262..6a85cf4aae 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
@@ -11,7 +11,7 @@
<combo_box.item label="Español (Spansk) - Beta" name="Spanish"/>
<combo_box.item label="Français (Fransk) - Beta" name="French"/>
<combo_box.item label="Polski (Polsk) - Beta" name="Polish"/>
- <combo_box.item label="Portugués (Portugisisk) - Beta" name="Portugese"/>
+ <combo_box.item label="Português (Portugisisk) - Beta" name="Portugese"/>
<combo_box.item label="日本語 (Japansk) - Beta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml
index 3152661fd4..712f6f8b50 100644
--- a/indra/newview/skins/default/xui/da/strings.xml
+++ b/indra/newview/skins/default/xui/da/strings.xml
@@ -1117,6 +1117,9 @@
<string name="InvFolder Favorite">
Favoritter
</string>
+ <string name="InvFolder favorite">
+ Favoritter
+ </string>
<string name="InvFolder Current Outfit">
Nuværende sæt
</string>
diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml
index 5f00fc4f77..f9169ed748 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -259,18 +259,18 @@ werden.
<text left="204" name="other_objects_text" width="48">
[COUNT]
</text>
- <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135" width="60"/>
- <button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOther..." right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119"/>
- <text left="14" name="Selected / sat upon:" width="140">
+ <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther"/>
+ <button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOther..." tool_tip="Objekte an ihre Eigentümer zurückgeben."/>
+ <text name="Selected / sat upon:">
Ausgewählt/gesessen auf:
</text>
- <text left="204" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Objekte anderer Einwohner automatisch zurückgeben (Minuten, 0 für aus):
</text>
- <line_editor name="clean other time" right="-10" width="56"/>
+ <line_editor name="clean other time"/>
<text name="Object Owners:">
Objekteigentümer:
</text>
@@ -279,7 +279,7 @@ werden.
<name_list name="owner list">
<name_list.columns label="Typ" name="type"/>
<name_list.columns label="Name" name="name"/>
- <name_list.columns label="Anzahl" name="count" width="80"/>
+ <name_list.columns label="Anzahl" name="count"/>
<name_list.columns label="Aktuellstes" name="mostrecent"/>
</name_list>
</panel>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index bf7d2ef3b3..1adc4e3db1 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -1147,6 +1147,9 @@
<string name="InvFolder Favorite">
Favoriten
</string>
+ <string name="InvFolder favorite">
+ Favoriten
+ </string>
<string name="InvFolder Current Outfit">
Aktuelles Outfit
</string>
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index 99bf3e6bc1..e6f11cac60 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -1044,7 +1044,7 @@ Leyla Linden </text>
left="28"
name="Selected / sat upon:"
top_pad="5"
- width="176">
+ width="230">
Selected / sat upon:
</text>
<text
@@ -1053,7 +1053,7 @@ Leyla Linden </text>
follows="left|top"
height="23"
layout="topleft"
- left_delta="172"
+ left_delta="220"
name="selected_objects_text"
top_delta="0"
width="48">
@@ -1143,11 +1143,11 @@ Leyla Linden </text>
<name_list.columns
label="Count"
name="count"
- width="60" />
+ width="67" />
<name_list.columns
label="Most Recent"
name="mostrecent"
- width="170" />
+ width="163" />
</name_list>
</panel>
<panel
diff --git a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
index 42a9ff551e..65e2462ef8 100644
--- a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
@@ -359,9 +359,9 @@
increment="1"
initial_value="0"
label="Hour"
- label_width="30"
+ label_width="35"
layout="topleft"
- left_delta="25"
+ left_delta="20"
max_val="100"
name="WLCurKeyHour"
top_pad="4"
@@ -374,13 +374,13 @@
increment="5"
initial_value="0"
label="Min"
- label_width="20"
+ label_width="45"
layout="topleft"
left_pad="5"
max_val="55"
name="WLCurKeyMin"
top_delta="0"
- width="60" />
+ width="85" />
<text
type="string"
length="1"
@@ -456,9 +456,9 @@
increment="1"
initial_value="0"
label="Hour"
- label_width="30"
+ label_width="33"
layout="topleft"
- left_delta="0"
+ left_delta="-3"
max_val="100"
name="WLLengthOfDayHour"
top_pad="4"
@@ -471,13 +471,13 @@
increment="1"
initial_value="0"
label="Min"
- label_width="20"
+ label_width="25"
layout="topleft"
- left_pad="5"
+ left_pad="2"
max_val="59"
name="WLLengthOfDayMin"
top_delta="0"
- width="60" />
+ width="65" />
<spinner
control_name="WLLengthOfDaySec"
decimal_digits="0"
@@ -486,13 +486,13 @@
increment="1"
initial_value="24"
label="Sec"
- label_width="20"
+ label_width="25"
layout="topleft"
- left_pad="5"
+ left_pad="2"
max_val="59"
name="WLLengthOfDaySec"
top_delta="0"
- width="60"/>
+ width="65"/>
<text
type="string"
halign="right"
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index c79a484ef6..19707c1bc9 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -1669,8 +1669,8 @@
</menu_item_call>
<menu_item_separator
visible="false"/>
- <!-- Made invisible to avoid a dissonance: menu item toggle menu where it is located. EXT-8069.
- Can't be removed to keep sortcut workable.
+ <!-- Made invisible to avoid a dissonance: menu item toggles the menu where it is located. EXT-8069.
+ Can't be removed, to keep shortcut workable.
-->
<menu_item_check
label="Show Advanced Menu"
@@ -2629,8 +2629,8 @@
function="Advanced.PrintTextureMemoryStats" />
</menu_item_call>
<menu_item_check
- label="Double-ClickAuto-Pilot"
- name="Double-ClickAuto-Pilot">
+ label="Double-Click Auto-Pilot"
+ name="Double-Click Auto-Pilot">
<menu_item_check.on_check
function="CheckControl"
parameter="DoubleClickAutoPilot" />
@@ -2638,6 +2638,16 @@
function="ToggleControl"
parameter="DoubleClickAutoPilot" />
</menu_item_check>
+ <menu_item_check
+ label="Double-Click Teleport"
+ name="DoubleClick Teleport">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DoubleClickTeleport" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DoubleClickTeleport" />
+ </menu_item_check>
<menu_item_separator />
diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
index 8715a3a7a8..903dcd4c24 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
@@ -320,7 +320,7 @@
left="10"
name="partner_edit_link"
value="[[URL] Edit]"
- width="50" />
+ width="70" />
</panel>
</panel>
</scroll_container>
diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
index 2a3add161a..3ded5c6678 100644
--- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
@@ -177,36 +177,16 @@ background_visible="true"
</accordion>
</layout_panel>
</layout_stack>
-
- <layout_stack
- name="layout"
- orientation="horizontal"
- follows="bottom|left|right"
- left="8"
- top_pad="0"
- height="30"
- width="292"
- border_size="0">
-
- <layout_panel
- height="30"
- layout="topleft"
- auto_resize="false"
- left="0"
- top_pad="0"
- name="button_row"
- follows="bottom|left|right"
- width="313">
<layout_stack
follows="bottom|left|right"
height="25"
layout="topleft"
name="button_row_ls"
- left="2"
+ left="6"
orientation="horizontal"
top_pad="5"
- width="309">
+ width="297">
<layout_panel
follows="bottom|left|right"
@@ -215,7 +195,7 @@ background_visible="true"
left="0"
name="btn_refresh_lp"
user_resize="false"
- auto_resize="true"
+ auto_resize="false"
width="24">
<button
follows="bottom|left|right"
@@ -236,7 +216,7 @@ background_visible="true"
name="btn_chat_lp"
user_resize="false"
auto_resize="true"
- width="83">
+ width="91">
<button
follows="bottom|left|right"
label="Chat"
@@ -244,7 +224,7 @@ background_visible="true"
left="1"
height="23"
top="0"
- width="82" />
+ width="90" />
</layout_panel>
<layout_panel
@@ -255,7 +235,7 @@ background_visible="true"
name="call_btn_lp"
user_resize="false"
auto_resize="true"
- width="113">
+ width="91">
<button
follows="bottom|left|right"
left="1"
@@ -265,7 +245,7 @@ background_visible="true"
layout="topleft"
tool_tip="Call this group"
top="0"
- width="112" />
+ width="90" />
</layout_panel>
<layout_panel
@@ -276,7 +256,7 @@ background_visible="true"
name="btn_apply_lp"
user_resize="false"
auto_resize="true"
- width="83">
+ width="91">
<button
follows="bottom|left|right"
height="23"
@@ -285,18 +265,7 @@ background_visible="true"
name="btn_apply"
left="1"
top="0"
- width="82" />
- </layout_panel>
-
- <layout_panel
- follows="bottom|left|right"
- height="23"
- layout="bottomleft"
- left_pad="3"
- name="btn_create_lp"
- user_resize="false"
- auto_resize="true"
- width="104">
+ width="90" />
<button
follows="bottom|left|right"
height="23"
@@ -307,19 +276,8 @@ background_visible="true"
name="btn_create"
visible="true"
tool_tip="Create a new Group"
- width="103" />
+ width="90" />
</layout_panel>
- </layout_stack>
- <!--<button
- left_pad="3"
- height="23"
- label="Cancel"
- label_selected="Cancel"
- name="btn_cancel"
- visible="false"
- width="65" />-->
- </layout_panel>
-
- </layout_stack>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
index 3b05482cb5..31e160ec33 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
@@ -460,7 +460,7 @@
name="Polish"
value="pl" />
<combo_box.item
- label="Portugués (Portuguese)"
+ label="Português (Portuguese)"
name="Portugese"
value="pt" />
<combo_box.item
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
index a69e8d29b0..17eebffa02 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
@@ -77,7 +77,7 @@
value="pl" />
<combo_box.item
enabled="true"
- label="Portugués (Portuguese) - Beta"
+ label="Português (Portuguese) - Beta"
name="Portugese"
value="pt" />
<combo_box.item
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
index e2cd27c419..78b192d4af 100644
--- a/indra/newview/skins/default/xui/en/panel_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -344,7 +344,7 @@
name="add_friend_btn_lp"
user_resize="false"
auto_resize="true"
- width="118">
+ width="121">
<button
follows="bottom|left|right"
height="23"
@@ -355,7 +355,7 @@
name="add_friend"
tool_tip="Offer friendship to the Resident"
top="0"
- width="117" />
+ width="120" />
</layout_panel>
<layout_panel
@@ -430,8 +430,8 @@
left_pad="3"
name="overflow_btn_lp"
user_resize="false"
- auto_resize="true"
- width="27">
+ auto_resize="false"
+ width="24">
<button
follows="bottom|left|right"
height="23"
diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml
index 43513e1ab6..4ccd7b3629 100644
--- a/indra/newview/skins/default/xui/en/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml
@@ -14,14 +14,6 @@
tab_stop="false"
width="1000">
<panel.string
- name="StatBarDaysOfWeek">
- Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday
- </panel.string>
- <panel.string
- name="StatBarMonthsOfYear">
- January:February:March:April:May:June:July:August:September:October:November:December
- </panel.string>
- <panel.string
name="packet_loss_tooltip">
Packet Loss
</panel.string>
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 4f923f411c..182bc29e27 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
@@ -79,333 +79,342 @@
use_ellipses="true"
value="(Inventory)"
width="275" />
- <panel
- follows="all"
- height="493"
- help_topic=""
- label=""
- layout="topleft"
- left="9"
- name="item_profile"
- 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="LabelItemNameTitle"
- 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="LabelItemName"
- top_delta="0"
- width="225" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="5"
- name="LabelItemDescTitle"
- top_pad="10"
- width="78">
- Description:
- </text>
- <line_editor
- border_style="line"
- border_thickness="1"
- follows="left|top|right"
- height="23"
- layout="topleft"
- left_delta="78"
- max_length="127"
- name="LabelItemDesc"
- top_delta="-5"
- width="225" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="5"
- name="LabelCreatorTitle"
- 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|top"
- font="SansSerifSmall"
- height="15"
+ <scroll_container
+ color="DkGray2"
+ follows="all"
layout="topleft"
- left_pad="5"
- name="LabelCreatorName"
- top_delta="6"
- width="140">
- </text>
- <button
- follows="top|right"
- height="16"
- image_selected="Inspector_I"
- image_unselected="Inspector_I"
- layout="topleft"
- right="-5"
- name="BtnCreator"
- top_delta="-6"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="5"
- name="LabelOwnerTitle"
- 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|top"
- font="SansSerifSmall"
- height="15"
- layout="topleft"
- left_pad="5"
- name="LabelOwnerName"
- top_delta="6"
- width="140">
- </text>
- <button
- follows="top|right"
- height="16"
- image_selected="Inspector_I"
- image_unselected="Inspector_I"
- layout="topleft"
- right="-5"
- name="BtnOwner"
- top_delta="-3"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="5"
- name="LabelAcquiredTitle"
-top_pad="10"
- width="78">
- Acquired:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="23"
- layout="topleft"
- left_delta="78"
- name="LabelAcquiredDate"
- top_delta="0"
- width="222">
- </text>
- <panel
- border="false"
- follows="left|top|right"
+ left="9"
+ name="item_profile_scroll"
+ opaque="true"
+ height="493"
+ width="313"
+ top="45">
+ <panel
+ follows="left|top|right"
+ height="390"
+ help_topic=""
+ label=""
+ layout="topleft"
+ left="0"
+ name="item_profile"
+ top="0"
+ width="295">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="5"
+ name="LabelItemNameTitle"
+ 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="LabelItemName"
+ top_delta="0"
+ width="210" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="5"
+ name="LabelItemDescTitle"
+ top_pad="10"
+ width="78">
+ Description:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="23"
+ layout="topleft"
+ left_delta="78"
+ max_length="127"
+ name="LabelItemDesc"
+ top_delta="-5"
+ width="210" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="5"
+ name="LabelCreatorTitle"
+ top_pad="10"
+ width="78">
+ Creator:
+ </text>
+ <avatar_icon
+ follows="top|left"
+ height="20"
+ default_icon_name="Generic_Person"
layout="topleft"
- mouse_opaque="false"
- name="perms_inv"
- left="0"
- top_pad="25"
- height="155"
- width="313">
- <text
- type="string"
- length="1"
- left="10"
- top_pad="13"
- text_color="EmphasisColor"
- height="15"
+ left_pad="0"
+ top_delta="-6"
+ mouse_opaque="true"
+ width="20" />
+ <text
+ type="string"
+ follows="left|right|top"
+ font="SansSerifSmall"
+ height="15"
+ layout="topleft"
+ left_pad="5"
+ name="LabelCreatorName"
+ top_delta="6"
+ width="140">
+ </text>
+ <button
+ follows="top|right"
+ height="16"
+ image_selected="Inspector_I"
+ image_unselected="Inspector_I"
+ layout="topleft"
+ right="-5"
+ name="BtnCreator"
+ top_delta="-6"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="5"
+ name="LabelOwnerTitle"
+ 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|top"
+ font="SansSerifSmall"
+ height="15"
+ layout="topleft"
+ left_pad="5"
+ name="LabelOwnerName"
+ top_delta="6"
+ width="140">
+ </text>
+ <button
+ follows="top|right"
+ height="16"
+ image_selected="Inspector_I"
+ image_unselected="Inspector_I"
+ layout="topleft"
+ right="-5"
+ name="BtnOwner"
+ top_delta="-3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="5"
+ name="LabelAcquiredTitle"
+ top_pad="10"
+ width="78">
+ Acquired:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="23"
+ layout="topleft"
+ left_delta="78"
+ name="LabelAcquiredDate"
+ top_delta="0"
+ width="210">
+ </text>
+ <panel
+ border="false"
follows="left|top|right"
layout="topleft"
- name="perm_modify"
- width="200">
- You can:
+ mouse_opaque="false"
+ name="perms_inv"
+ left="0"
+ top_pad="25"
+ height="155"
+ width="313">
+ <text
+ type="string"
+ length="1"
+ left="10"
+ top_pad="13"
+ text_color="EmphasisColor"
+ height="15"
+ follows="left|top|right"
+ layout="topleft"
+ name="perm_modify"
+ width="200">
+ You can:
+ </text>
+ <check_box
+ height="18"
+ label="Modify"
+ layout="topleft"
+ left="20"
+ name="CheckOwnerModify"
+ top_pad="0"
+ width="90" />
+ <check_box
+ height="18"
+ label="Copy"
+ layout="topleft"
+ left_pad="0"
+ name="CheckOwnerCopy"
+ width="90" />
+ <check_box
+ height="18"
+ label="Transfer"
+ layout="topleft"
+ left_pad="0"
+ name="CheckOwnerTransfer"
+ width="106" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="AnyoneLabel"
+ top_pad="8"
+ width="100">
+ Anyone:
</text>
- <check_box
- height="18"
- label="Modify"
- layout="topleft"
- left="20"
- name="CheckOwnerModify"
- top_pad="0"
- width="90" />
- <check_box
- height="18"
- label="Copy"
- layout="topleft"
- left_pad="0"
- name="CheckOwnerCopy"
- width="90" />
- <check_box
- height="18"
- label="Transfer"
- layout="topleft"
- left_pad="0"
- name="CheckOwnerTransfer"
- width="106" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="10"
- name="AnyoneLabel"
- top_pad="8"
- width="100">
- Anyone:
- </text>
- <check_box
- height="18"
- label="Copy"
- layout="topleft"
- left_pad="0"
- name="CheckEveryoneCopy"
- top_delta="-2"
- 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="0"
- top_delta="-2"
- name="CheckShareWithGroup"
- 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="CheckNextOwnerModify"
- width="90" />
- <check_box
- height="18"
- label="Copy"
- layout="topleft"
- left_pad="0"
- name="CheckNextOwnerCopy"
- width="90" />
- <check_box
- height="18"
- label="Transfer"
- layout="topleft"
- left_pad="0"
- name="CheckNextOwnerTransfer"
- tool_tip="Next owner can give away or resell this object"
- width="106" />
- </panel>
- <check_box
- height="18"
- label="For Sale"
- layout="topleft"
- left="20"
- name="CheckPurchase"
- top_pad="20"
- width="100" />
- <combo_box
- height="23"
- left_pad="0"
- layout="topleft"
- follows="left|top"
- name="combobox sale copy"
- width="170">
- <combo_box.item
- label="Copy"
- name="Copy"
- value="Copy" />
- <combo_box.item
- label="Original"
- name="Original"
- value="Original" />
- </combo_box>
- <spinner
- follows="left|top"
- decimal_digits="0"
- increment="1"
- control_name="Edit Cost"
- name="Edit Cost"
- label="Price: L$"
- label_width="75"
- left="120"
- width="170"
- min_val="0"
- height="23"
- max_val="999999999"
- top_pad="10"/>
- </panel>
+ <check_box
+ height="18"
+ label="Copy"
+ layout="topleft"
+ left_pad="0"
+ name="CheckEveryoneCopy"
+ top_delta="-2"
+ 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="0"
+ top_delta="-2"
+ name="CheckShareWithGroup"
+ 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="CheckNextOwnerModify"
+ width="90" />
+ <check_box
+ height="18"
+ label="Copy"
+ layout="topleft"
+ left_pad="0"
+ name="CheckNextOwnerCopy"
+ width="90" />
+ <check_box
+ height="18"
+ label="Transfer"
+ layout="topleft"
+ left_pad="0"
+ name="CheckNextOwnerTransfer"
+ tool_tip="Next owner can give away or resell this object"
+ width="106" />
+ </panel>
+ <check_box
+ height="18"
+ label="For Sale"
+ layout="topleft"
+ left="20"
+ name="CheckPurchase"
+ top_pad="20"
+ width="100" />
+ <combo_box
+ height="23"
+ left_pad="0"
+ layout="topleft"
+ follows="left|top"
+ name="combobox sale copy"
+ width="170">
+ <combo_box.item
+ label="Copy"
+ name="Copy"
+ value="Copy" />
+ <combo_box.item
+ label="Original"
+ name="Original"
+ value="Original" />
+ </combo_box>
+ <spinner
+ follows="left|top"
+ decimal_digits="0"
+ increment="1"
+ control_name="Edit Cost"
+ name="Edit Cost"
+ label="Price: L$"
+ label_width="75"
+ left="120"
+ width="170"
+ min_val="0"
+ height="23"
+ max_val="999999999"
+ top_pad="10"/>
+ </panel>
+ </scroll_container>
<panel
height="30"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 72639f08ee..6b3fd9ff9e 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2225,7 +2225,7 @@ Clears (deletes) the media and all params from the given face.
<!-- panel picks -->
<string name="NoPicksClassifiedsText">You haven't created any Picks or Classifieds. Click the Plus button below to create a Pick or Classified.</string>
- <string name="NoAvatarPicksClassifiedsText">User has no picks or classfields</string>
+ <string name="NoAvatarPicksClassifiedsText">User has no picks or classifieds</string>
<string name="PicksClassifiedsLoadingText">Loading...</string>
<!-- Multi Preview Floater -->
@@ -3029,7 +3029,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
Ad-hoc Conference
</string>
<string name="conference-title-incoming">
- [AGENT_NAME] Conference
+ Conference with [AGENT_NAME]
</string>
<string name="inventory_item_offered-im">
Inventory item offered
@@ -3039,6 +3039,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
</string>
+ <string name="no_session_message">
+ (IM Session Doesn't Exist)
+ </string>
<string name="only_user_message">
You are the only user in this session.
</string>
diff --git a/indra/newview/skins/default/xui/es/floater_about_land.xml b/indra/newview/skins/default/xui/es/floater_about_land.xml
index c672f68c5c..92831cc21c 100644
--- a/indra/newview/skins/default/xui/es/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_about_land.xml
@@ -221,60 +221,60 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
<text name="Simulator primitive usage:">
Uso de primitivas:
</text>
- <text left="204" name="objects_available" width="250">
+ <text name="objects_available">
[COUNT] de un máx. de [MAX] ([AVAILABLE] disponibles)
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Prims que admite la parcela:
</text>
- <text left="204" name="object_contrib_text" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Prims en la parcela:
</text>
- <text left="204" name="total_objects_text" width="48">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text left="14" name="Owned by parcel owner:" width="180">
+ <text name="Owned by parcel owner:">
Del propietario de la parcela:
</text>
- <text left="204" name="owner_objects_text" width="48">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/>
- <button label="Devolver" name="ReturnOwner..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/>
- <text left="14" name="Set to group:" width="180">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOwner"/>
+ <button label="Devolver" name="ReturnOwner..." tool_tip="Devolver los objetos a sus propietarios."/>
+ <text name="Set to group:">
Del grupo:
</text>
- <text left="204" name="group_objects_text" width="48">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" right="-135" width="60"/>
- <button label="Devolver" name="ReturnGroup..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/>
- <text left="14" name="Owned by others:" width="128">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowGroup"/>
+ <button label="Devolver" name="ReturnGroup..." tool_tip="Devolver los objetos a sus propietarios."/>
+ <text name="Owned by others:">
Propiedad de otros:
</text>
- <text left="204" name="other_objects_text" width="48">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/>
- <button label="Devolver" name="ReturnOther..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/>
- <text left="14" name="Selected / sat upon:" width="193">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOther"/>
+ <button label="Devolver" name="ReturnOther..." tool_tip="Devolver los objetos a sus propietarios."/>
+ <text name="Selected / sat upon:">
Seleccionados / con gente sentada:
</text>
- <text left="204" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Devolución automát. de objetos de otros (en min., 0 la desactiva):
</text>
- <line_editor name="clean other time" right="-20"/>
- <text name="Object Owners:" width="150">
+ <line_editor name="clean other time"/>
+ <text name="Object Owners:">
Propietarios de los objetos:
</text>
- <button label="Actualizar la lista" label_selected="Actualizar la lista" left="158" name="Refresh List" tool_tip="Refresh Object List"/>
- <button label="Devolver los objetos" left="270" name="Return objects..." width="164"/>
+ <button label="Actualizar la lista" label_selected="Actualizar la lista" name="Refresh List" tool_tip="Refresh Object List"/>
+ <button label="Devolver los objetos" name="Return objects..."/>
<name_list name="owner list">
<name_list.columns label="Tipo" name="type"/>
<name_list.columns label="Nombre" name="name"/>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
index a2ed7bc8c7..22f967afe6 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
@@ -71,7 +71,7 @@
<combo_box.item name="Hungarian" label="Magyar (Húngaro)" />
<combo_box.item name="Dutch" label="Nederlands (Neerlandés)" />
<combo_box.item name="Polish" label="Polski (Polaco)" />
- <combo_box.item name="Portugese" label="Portugués (Portugués)" />
+ <combo_box.item name="Portugese" label="Português (Portugués)" />
<combo_box.item name="Russian" label="Русский (Ruso)" />
<combo_box.item name="Turkish" label="Türkçe (Turco)" />
<combo_box.item name="Ukrainian" label="Українська (Ucraniano)" />
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
index ca157314aa..20109cf2c5 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -13,7 +13,7 @@
<combo_box.item label="Italiano - Beta" name="Italian"/>
<combo_box.item label="Nederlands (Neerlandés) - Beta" name="Dutch"/>
<combo_box.item label="Polski (Polaco) - Beta" name="Polish"/>
- <combo_box.item label="Portugués (Portugués) - Beta" name="Portugese"/>
+ <combo_box.item label="Português (Portugués) - Beta" name="Portugese"/>
<combo_box.item label="日本語 (Japonés) - Beta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 9f5f1f99e7..a6404bf14c 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -1120,6 +1120,9 @@
<string name="InvFolder Favorite">
Favoritos
</string>
+ <string name="InvFolder favorite">
+ Favoritos
+ </string>
<string name="InvFolder Current Outfit">
Vestuario actual
</string>
@@ -1657,7 +1660,7 @@
Script nuevo
</string>
<string name="BusyModeResponseDefault">
- El Residente al que has enviado un mensaje ha solicitado que no se le moleste porque está en modo ocupado. Podrá ver tu mensaje más adelante, ya que éste aparecerá en su panel de MI.
+ El Residente al que has enviado un mensaje ha solicitado que no se le moleste porque está en modo ocupado. Podrá ver tu mensaje más adelante, ya que éste aparecerá en su panel de MI.
</string>
<string name="NoOutfits">
Todavía no tienes vestuario. Intenta con [secondlife:///app/search/all/ Buscar]
@@ -3799,7 +3802,7 @@ Denuncia de infracción
PM
</string>
<string name="LocalEstimateUSD">
- [AMOUNT] dólares estadounidenses
+ [AMOUNT] US$
</string>
<string name="Membership">
Membresía
diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml
index 5263de4532..b0ef1cf8df 100644
--- a/indra/newview/skins/default/xui/fr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml
@@ -225,55 +225,55 @@ ou divisé.
<text name="Simulator primitive usage:">
Utilisation des primitives :
</text>
- <text left="214" name="objects_available" width="230">
+ <text name="objects_available">
[COUNT] sur [MAX] ([AVAILABLE] disponibles)
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Prims max. sur la parcelle :
</text>
- <text left="214" name="object_contrib_text" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Prims sur la parcelle :
</text>
- <text left="214" name="total_objects_text" width="48">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text left="14" name="Owned by parcel owner:" width="180">
+ <text name="Owned by parcel owner:">
Appartenant au propriétaire :
</text>
- <text left="214" name="owner_objects_text" width="48">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="Afficher" label_selected="Afficher" name="ShowOwner" right="-135" width="60"/>
- <button label="Retour" label_selected="Renvoyer..." name="ReturnOwner..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/>
- <text left="14" name="Set to group:" width="180">
+ <button label="Afficher" label_selected="Afficher" name="ShowOwner"/>
+ <button label="Retour" label_selected="Renvoyer..." name="ReturnOwner..." tool_tip="Renvoyer les objets à leurs propriétaires."/>
+ <text name="Set to group:">
Données au groupe :
</text>
- <text left="214" name="group_objects_text" width="48">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="Afficher" label_selected="Afficher" name="ShowGroup" right="-135" width="60"/>
- <button label="Retour" label_selected="Renvoyer..." name="ReturnGroup..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/>
- <text left="14" name="Owned by others:" width="128">
+ <button label="Afficher" label_selected="Afficher" name="ShowGroup" />
+ <button label="Retour" label_selected="Renvoyer..." name="ReturnGroup..." tool_tip="Renvoyer les objets à leurs propriétaires."/>
+ <text name="Owned by others:">
Appartenant à d&apos;autres :
</text>
- <text left="214" name="other_objects_text" width="48">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="Afficher" label_selected="Afficher" name="ShowOther" right="-135" width="60"/>
- <button label="Retour" label_selected="Renvoyer..." name="ReturnOther..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/>
- <text left="14" name="Selected / sat upon:" width="220">
+ <button label="Afficher" label_selected="Afficher" name="ShowOther"/>
+ <button label="Retour" label_selected="Renvoyer..." name="ReturnOther..." tool_tip="Renvoyer les objets à leurs propriétaires."/>
+ <text name="Selected / sat upon:">
Sélectionnées/où quelqu&apos;un est assis :
</text>
- <text left_delta="214" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Renvoi automatique des objets d&apos;autres résidents (minutes, 0 pour désactiver) :
</text>
- <line_editor name="clean other time" right="-6" width="36"/>
+ <line_editor name="clean other time"/>
<text name="Object Owners:">
Propriétaires :
</text>
@@ -281,10 +281,9 @@ ou divisé.
<button label="Renvoi des objets" label_selected="Renvoyer les objets..." name="Return objects..."/>
<name_list label="Plus récents" name="owner list">
<name_list.columns label="Type" name="type"/>
- <name_list.columns name="online_status"/>
- <name_list.columns label="Nom" name="name" width="100"/>
- <name_list.columns label="Nombre" name="count" width="100"/>
- <name_list.columns label="Plus récents" name="mostrecent" width="120"/>
+ <name_list.columns label="Nom" name="name"/>
+ <name_list.columns label="Nombre" name="count"/>
+ <name_list.columns label="Plus récents" name="mostrecent"/>
</name_list>
</panel>
<panel label="OPTIONS" name="land_options_panel">
@@ -343,9 +342,9 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche.
Options du terrain :
</text>
<check_box label="Sécurisé (pas de dégâts)" name="check safe" tool_tip="Si cette option est cochée, le terrain est sécurisé et il n&apos;y pas de risques de dommages causés par des combats. Si elle est décochée, des dommages causés par les combats peuvent avoir lieu."/>
- <check_box bottom="-140" label="Pas de bousculades" left="14" name="PushRestrictCheck" tool_tip="Empêche l&apos;utilisation de scripts causant des bousculades. Cette option est utile pour empêcher les comportements abusifs sur votre terrain."/>
- <check_box bottom="-160" label="Afficher le lieu dans la recherche (30 L$/semaine)" name="ShowDirectoryCheck" tool_tip="Afficher la parcelle dans les résultats de recherche"/>
- <combo_box bottom="-160" left="286" name="land category with adult" width="146">
+ <check_box label="Pas de bousculades" name="PushRestrictCheck" tool_tip="Empêche l&apos;utilisation de scripts causant des bousculades. Cette option est utile pour empêcher les comportements abusifs sur votre terrain."/>
+ <check_box label="Afficher le lieu dans la recherche (30 L$/semaine)" name="ShowDirectoryCheck" tool_tip="Afficher la parcelle dans les résultats de recherche"/>
+ <combo_box name="land category with adult">
<combo_box.item label="Toutes catégories" name="item0"/>
<combo_box.item label="Appartenant aux Lindens" name="item1"/>
<combo_box.item label="Adult" name="item2"/>
@@ -360,7 +359,7 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche.
<combo_box.item label="Shopping" name="item11"/>
<combo_box.item label="Autre" name="item12"/>
</combo_box>
- <combo_box bottom="-160" left="286" name="land category" width="146">
+ <combo_box name="land category">
<combo_box.item label="Toutes catégories" name="item0"/>
<combo_box.item label="Appartenant aux Lindens" name="item1"/>
<combo_box.item label="Art et Culture" name="item3"/>
@@ -374,20 +373,20 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche.
<combo_box.item label="Shopping" name="item11"/>
<combo_box.item label="Autre" name="item12"/>
</combo_box>
- <check_box bottom="-180" label="Contenu Modéré" name="MatureCheck" tool_tip=""/>
- <text bottom="-200" name="Snapshot:">
+ <check_box label="Contenu Modéré" name="MatureCheck" tool_tip=""/>
+ <text name="Snapshot:">
Photo :
</text>
- <texture_picker bottom="-319" label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image"/>
+ <texture_picker label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image"/>
<text name="landing_point">
Lieu d&apos;arrivée : [LANDING]
</text>
<button label="Définir" label_selected="Définir" name="Set" tool_tip="Définit le point d&apos;arrivée des visiteurs. Définit l&apos;emplacement de votre avatar sur ce terrain."/>
<button label="Annuler" label_selected="Annuler" name="Clear" tool_tip="Effacer le lieu d&apos;arrivée"/>
- <text bottom="-343" name="Teleport Routing: ">
+ <text name="Teleport Routing: ">
Règles de téléportation :
</text>
- <combo_box bottom="-343" left="140" name="landing type" tool_tip="Règles de téléportation - Choisissez les règles de téléportation sur votre terrain" width="140">
+ <combo_box name="landing type" tool_tip="Règles de téléportation - Choisissez les règles de téléportation sur votre terrain" width="140">
<combo_box.item label="Bloqué" name="Blocked"/>
<combo_box.item label="Lieu d&apos;arrivée fixe" name="LandingPoint"/>
<combo_box.item label="Lieu d&apos;arrivée libre" name="Anywhere"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
index 15ed86460d..ed1107f5e6 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
@@ -71,7 +71,7 @@
<combo_box.item name="Hungarian" label="Magyar (Hongrois)" />
<combo_box.item name="Dutch" label="Nederlands (Néerlandais)" />
<combo_box.item name="Polish" label="Polski (Polonais)" />
- <combo_box.item name="Portugese" label="Portugués (Portugais)" />
+ <combo_box.item name="Portugese" label="Português (Portugais)" />
<combo_box.item name="Russian" label="Русский (Russe)" />
<combo_box.item name="Turkish" label="Türkçe (Turc)" />
<combo_box.item name="Ukrainian" label="Українська (Ukrainien)" />
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index 3245132972..20d5f754ce 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -13,7 +13,7 @@
<combo_box.item label="Italiano (Italien) - Bêta" name="Italian"/>
<combo_box.item label="Nederlands (Néerlandais) - Bêta" name="Dutch"/>
<combo_box.item label="Polski (Polonais) - Bêta" name="Polish"/>
- <combo_box.item label="Portugués (Portugais) - Bêta" name="Portugese"/>
+ <combo_box.item label="Português (Portugais) - Bêta" name="Portugese"/>
<combo_box.item label="日本語 (Japonais) - Bêta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index f221e42e9a..159281f97f 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -1147,6 +1147,9 @@
<string name="InvFolder Favorite">
Favoris
</string>
+ <string name="InvFolder favorite">
+ Favoris
+ </string>
<string name="InvFolder Current Outfit">
Tenue actuelle
</string>
diff --git a/indra/newview/skins/default/xui/it/floater_about_land.xml b/indra/newview/skins/default/xui/it/floater_about_land.xml
index af83a38746..d6834fa70a 100644
--- a/indra/newview/skins/default/xui/it/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_about_land.xml
@@ -224,60 +224,60 @@ o suddivisa.
<text name="Simulator primitive usage:">
Uso delle primitive:
</text>
- <text left="214" name="objects_available" width="230">
+ <text name="objects_available">
[COUNT] dei [MAX] ([AVAILABLE] dsponibili)
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Oggetti che il terreno supporta:
</text>
- <text left="214" name="object_contrib_text" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Oggetti sul terreno:
</text>
- <text left="214" name="total_objects_text" width="48">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text left="14" name="Owned by parcel owner:" width="180">
+ <text name="Owned by parcel owner:">
Posseduti dal proprietario:
</text>
- <text left="214" name="owner_objects_text" width="48">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="Mostra" label_selected="Mostra" name="ShowOwner" right="-135" width="60"/>
- <button label="Restituisci" name="ReturnOwner..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/>
- <text left="14" name="Set to group:" width="180">
+ <button label="Mostra" label_selected="Mostra" name="ShowOwner"/>
+ <button label="Restituisci" name="ReturnOwner..." tool_tip="Restituisci gli oggetti ai loro proprietari."/>
+ <text name="Set to group:">
Imposta al gruppo:
</text>
- <text left="214" name="group_objects_text" width="48">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="Mostra" label_selected="Mostra" name="ShowGroup" right="-135" width="60"/>
- <button label="Restituisci" name="ReturnGroup..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/>
- <text left="14" name="Owned by others:" width="180">
+ <button label="Mostra" label_selected="Mostra" name="ShowGroup"/>
+ <button label="Restituisci" name="ReturnGroup..." tool_tip="Restituisci gli oggetti ai loro proprietari."/>
+ <text name="Owned by others:">
Posseduti da altri:
</text>
- <text left="214" name="other_objects_text" width="48">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="Mostra" label_selected="Mostra" name="ShowOther" right="-135" width="60"/>
- <button label="Restituisci" name="ReturnOther..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/>
- <text left="14" name="Selected / sat upon:" width="193">
+ <button label="Mostra" label_selected="Mostra" name="ShowOther"/>
+ <button label="Restituisci" name="ReturnOther..." tool_tip="Restituisci gli oggetti ai loro proprietari."/>
+ <text name="Selected / sat upon:">
Selezionati / sui quali sei sopra:
</text>
- <text left="214" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Restituzione automatica degli oggetti di altri residenti (minuti, 0 per disattivarla):
</text>
- <line_editor name="clean other time" right="-20"/>
- <text name="Object Owners:" width="150">
+ <line_editor name="clean other time"/>
+ <text name="Object Owners:">
Proprietari degli oggetti:
</text>
- <button label="Aggiorna Elenco" label_selected="Aggiorna Elenco" left="158" name="Refresh List" tool_tip="Refresh Object List"/>
- <button label="Restituisci oggetti..." label_selected="Restituisci oggetti..." left="270" name="Return objects..." width="164"/>
+ <button label="Aggiorna Elenco" label_selected="Aggiorna Elenco" name="Refresh List" tool_tip="Refresh Object List"/>
+ <button label="Restituisci oggetti..." label_selected="Restituisci oggetti..." name="Return objects..."/>
<name_list name="owner list">
<name_list.columns label="Tipo" name="type"/>
<name_list.columns label="Nome" name="name"/>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
index 48f19c0c27..d28ed41698 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
@@ -71,7 +71,7 @@
<combo_box.item name="Hungarian" label="Magyar (Ungherese)" />
<combo_box.item name="Dutch" label="Nederlands (Olandese)" />
<combo_box.item name="Polish" label="Polski (Polacco)" />
- <combo_box.item name="Portugese" label="Portugués (Portoghese)" />
+ <combo_box.item name="Portugese" label="Português (Portoghese)" />
<combo_box.item name="Russian" label="Русский (Russo)" />
<combo_box.item name="Turkish" label="Türkçe (Turco)" />
<combo_box.item name="Ukrainian" label="Українська (Ukraino)" />
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_general.xml b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
index e8c826609c..60c4ed5211 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
@@ -13,7 +13,7 @@
<combo_box.item label="Italiano - Beta" name="Italian"/>
<combo_box.item label="Nederlands (Olandese) - Beta" name="Dutch"/>
<combo_box.item label="Polski (Polacco) - Beta" name="Polish"/>
- <combo_box.item label="Portugués (Portoghese) - Beta" name="Portugese"/>
+ <combo_box.item label="Português (Portoghese) - Beta" name="Portugese"/>
<combo_box.item label="日本語 (Giapponese) - Beta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index fb479b4653..fa465ee9c2 100644
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -1126,6 +1126,9 @@
<string name="InvFolder Favorite">
Preferiti
</string>
+ <string name="InvFolder favorite">
+ Preferiti
+ </string>
<string name="InvFolder Current Outfit">
Abbigliamento attuale
</string>
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index 2f5065c05f..2de9e781d4 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -109,7 +109,7 @@
<text name="For Sale: Price L$[PRICE].">
価格: L$ [PRICE] (L$ [PRICE_PER_SQM] / 平方メートル)
</text>
- <button label="土地を売る" label_selected="土地を販売..." name="Sell Land..." width="100"/>
+ <button label="土地を売る" label_selected="土地を販売..." name="Sell Land..."/>
<text name="For sale to">
販売先:[BUYER]
</text>
@@ -119,7 +119,7 @@
<text name="Selling with no objects in parcel.">
オブジェクトは販売しない
</text>
- <button label="土地販売の取り消し" label_selected="土地販売の取り消し" name="Cancel Land Sale" width="100"/>
+ <button label="土地販売の取り消し" label_selected="土地販売の取り消し" name="Cancel Land Sale"/>
<text name="Claimed:">
取得日時:
</text>
@@ -210,72 +210,72 @@
</text>
</panel>
<panel label="オブジェクト" name="land_objects_panel">
- <panel.string left="200" name="objects_available_text">
+ <panel.string name="objects_available_text">
[MAX] の内 [COUNT]([AVAILABLE] 利用可能)
</panel.string>
- <panel.string left="200" name="objects_deleted_text">
+ <panel.string name="objects_deleted_text">
[MAX] の内 [COUNT]([DELETED] を削除)
</panel.string>
<text name="parcel_object_bonus">
オブジェクトボーナス: [BONUS]
</text>
- <text name="Simulator primitive usage:" width="500">
+ <text name="Simulator primitive usage:">
プリム使用状況:
</text>
- <text left="200" name="objects_available">
+ <text name="objects_available">
[MAX] の内 [COUNT] ([AVAILABLE] 利用可能)
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
区画でサポートされるプリム数:
</text>
- <text left="200" name="object_contrib_text">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
区画上のプリム数:
</text>
- <text left="200" name="total_objects_text">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text name="Owned by parcel owner:" width="300">
+ <text name="Owned by parcel owner:">
区画所有者の所有物:
</text>
- <text left="200" name="owner_objects_text">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="表示" label_selected="表示" name="ShowOwner" right="-145"/>
- <button label="返却" label_selected="返却..." name="ReturnOwner..." right="-15" tool_tip="オブジェクトを所有者に返却します"/>
+ <button label="表示" label_selected="表示" name="ShowOwner"/>
+ <button label="返却" label_selected="返却..." name="ReturnOwner..." tool_tip="オブジェクトを所有者に返却します"/>
<text name="Set to group:">
グループに設定:
</text>
- <text left="200" name="group_objects_text">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="表示" label_selected="表示" name="ShowGroup" right="-145"/>
- <button label="返却" label_selected="返却..." name="ReturnGroup..." right="-15" tool_tip="オブジェクトを所有者に返却します"/>
+ <button label="表示" label_selected="表示" name="ShowGroup"/>
+ <button label="返却" label_selected="返却..." name="ReturnGroup..." tool_tip="オブジェクトを所有者に返却します"/>
<text name="Owned by others:">
他人の所有物:
</text>
- <text left="200" name="other_objects_text">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="表示" label_selected="表示" name="ShowOther" right="-145"/>
- <button label="返却" label_selected="返却..." name="ReturnOther..." right="-15" tool_tip="オブジェクトを所有者に返却します"/>
+ <button label="表示" label_selected="表示" name="ShowOther"/>
+ <button label="返却" label_selected="返却..." name="ReturnOther..." tool_tip="オブジェクトを所有者に返却します"/>
<text name="Selected / sat upon:">
選択済み・決定済み:
</text>
- <text left="200" name="selected_objects_text">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
他人のオブジェクトを自動返却(分単位、0 で自動返却なし):
</text>
- <line_editor left_delta="5" name="clean other time" right="-80"/>
- <text name="Object Owners:" width="150">
+ <line_editor left_delta="5" name="clean other time"/>
+ <text name="Object Owners:">
オブジェクトの所有者:
</text>
- <button label="リスト更新" label_selected="リスト更新" left="146" name="Refresh List" tool_tip="オブジェクトのリストを更新します"/>
- <button label="オブジェクトを返却する" label_selected="オブジェクトの返却..." left="256" name="Return objects..."/>
+ <button label="リスト更新" label_selected="リスト更新" name="Refresh List" tool_tip="オブジェクトのリストを更新します"/>
+ <button label="オブジェクトを返却する" label_selected="オブジェクトの返却..." name="Return objects..."/>
<name_list label="カウント" name="owner list">
<name_list.columns label="タイプ" name="type"/>
<name_list.columns name="online_status"/>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index b68b68a4f8..dd59065a9d 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -1147,6 +1147,9 @@
<string name="InvFolder Favorite">
お気に入り
</string>
+ <string name="InvFolder favorite">
+ お気に入り
+ </string>
<string name="InvFolder Current Outfit">
着用中のアウトフィット
</string>
diff --git a/indra/newview/skins/default/xui/nl/floater_about_land.xml b/indra/newview/skins/default/xui/nl/floater_about_land.xml
index 7b8f1b42ab..4271ad5b82 100644
--- a/indra/newview/skins/default/xui/nl/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/nl/floater_about_land.xml
@@ -147,31 +147,31 @@
<text name="region_name_lbl">
Naam:
</text>
- <text name="region_name_text" left="114">
+ <text name="region_name_text">
leyla
</text>
<text name="region_landtype_lbl">
Type:
</text>
- <text name="region_landtype_text" left="114">
+ <text name="region_landtype_text">
Mainland / Homestead
</text>
<text name="region_maturity_lbl">
Inhoudscategorie:
</text>
- <text name="region_maturity_text" left="114">
+ <text name="region_maturity_text">
Adult
</text>
<text name="resellable_lbl">
Doorverkopen:
</text>
- <text name="resellable_clause" left="114">
+ <text name="resellable_clause">
Land in deze regio mag niet worden doorverkocht.
</text>
<text name="changeable_lbl">
Opsplitsen:
</text>
- <text name="changeable_clause" left="114" width="340">
+ <text name="changeable_clause">
Land in deze regio mag niet worden samengevoegd/opgesplitst.
</text>
<panel.string name="can_resell">
@@ -196,7 +196,7 @@ of opgedeeld.
<text name="Simulator primitive usage:">
Simulator primitieven gebruik:
</text>
- <text name="objects_available" left="214" width="230">
+ <text name="objects_available">
[COUNT] van [MAX] ([AVAILABLE] beschikbaar)
</text>
<panel.string name="objects_available_text">
@@ -205,59 +205,59 @@ of opgedeeld.
<panel.string name="objects_deleted_text">
[COUNT] van [MAX] ([DELETED] zullen worden verwijderd)
</panel.string>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Primitieven ondersteund door perceel:
</text>
- <text name="object_contrib_text" left="214" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Primitieven op perceel:
</text>
- <text name="total_objects_text" left="214" width="48">
+ <text name="total_objects_text" >
[COUNT]
</text>
- <text name="Owned by parcel owner:" left="14" width="180" >
+ <text name="Owned by parcel owner:" >
Eigendom van perceeleigenaar:
</text>
- <text name="owner_objects_text" left="214" width="48">
+ <text name="owner_objects_text" >
[COUNT]
</text>
- <button label="Toon" label_selected="Toon" name="ShowOwner" right="-135" width="60"/>
- <button label="Retourneren" name="ReturnOwner..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/>
- <text name="Set to group:" left="14" width="180">
+ <button label="Toon" label_selected="Toon" name="ShowOwner"/>
+ <button label="Retourneren" name="ReturnOwner..." tool_tip="Retourneer objecten naar hun eigenaren."/>
+ <text name="Set to group:" >
Groep toewijzen:
</text>
- <text name="group_objects_text" left="214" width="48">
+ <text name="group_objects_text" >
[COUNT]
</text>
- <button label="Toon" label_selected="Toon" name="ShowGroup" right="-135" width="60"/>
- <button label="Retourneren" name="ReturnGroup..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/>
- <text name="Owned by others:" left="14" width="128">
+ <button label="Toon" label_selected="Toon" name="ShowGroup"/>
+ <button label="Retourneren" name="ReturnGroup..." tool_tip="Retourneer objecten naar hun eigenaren."/>
+ <text name="Owned by others:">
Eigendom van anderen:
</text>
- <text name="other_objects_text" left="214" width="48">
+ <text name="other_objects_text" >
[COUNT]
</text>
- <button label="Toon" label_selected="Toon" name="ShowOther" right="-135" width="60"/>
- <button label="Retourneren" name="ReturnOther..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/>
- <text name="Selected / sat upon:" left="14" width="193">
+ <button label="Toon" label_selected="Toon" name="ShowOther"/>
+ <button label="Retourneren" name="ReturnOther..." tool_tip="Retourneer objecten naar hun eigenaren."/>
+ <text name="Selected / sat upon:">
Geselecteerd/Er op gezeten
</text>
- <text name="selected_objects_text" left="214" width="48">
+ <text name="selected_objects_text" >
[COUNT]
</text>
- <text name="Autoreturn" left="4" width="412" height="32" bottom="-196">
+ <text name="Autoreturn">
Objecten van andere inwoners automatisch retourneren (minuten):
(0 om uit te schakelen)
</text>
- <line_editor name="clean other time" right="-50" bottom="-179"/>
- <text name="Object Owners:" bottom="-213">
+ <line_editor name="clean other time"/>
+ <text name="Object Owners:">
Objecteigenaren:
</text>
- <button label="Ververs lijst" label_selected="Ververs lijst" name="Refresh List" bottom="-213"/>
- <button label="Retourneer objecten" name="Return objects..." width="164" bottom="-213"/>
- <name_list name="owner list" height="104">
+ <button label="Ververs lijst" label_selected="Ververs lijst" name="Refresh List"/>
+ <button label="Retourneer objecten" name="Return objects..."/>
+ <name_list name="owner list">
<column label="Type" name="type"/>
<column label="Naam" name="name"/>
<column label="Aantal" name="count"/>
@@ -271,20 +271,20 @@ of opgedeeld.
<check_box label="Terrein bewerken" name="edit land check" tool_tip="Indien aangevinkt, kan iedereen uw terrein bewerken. Het is het beste om dit uit te laten staan, omdat u zelf altijd uw eigen land kunt bewerken."/>
<check_box label="Maak landmarkering" name="check landmark"/>
<check_box label="Vliegen" name="check fly" tool_tip="Indien aangevinkt, kunnen inwoners op uw land vliegen. Indien niet aangevinkt, kunnen ze alleen het land binnenvliegen of eroverheen vliegen."/>
- <text name="allow_label2" left="162">
+ <text name="allow_label2">
Maak objecten:
</text>
- <check_box label="Alle inwoners" name="edit objects check" left="275"/>
+ <check_box label="Alle inwoners" name="edit objects check"/>
<check_box label="Groep" name="edit group objects check"/>
- <text name="allow_label3" left="162">
+ <text name="allow_label3">
Objecten binnenlaten:
</text>
- <check_box label="Alle inwoners" name="all object entry check" left="275"/>
+ <check_box label="Alle inwoners" name="all object entry check"/>
<check_box label="Groep" name="group object entry check"/>
- <text name="allow_label4" left="162">
+ <text name="allow_label4">
Scripts uitvoeren:
</text>
- <check_box label="Alle inwoners" name="check other scripts" left="275"/>
+ <check_box label="Alle inwoners" name="check other scripts"/>
<check_box label="Groep" name="check group scripts"/>
<text name="land_options_label">
Landopties:
@@ -379,8 +379,8 @@ of opgedeeld.
<panel.string name="landing_point_none">
(none)
</panel.string>
- <button width="70" label="Instellen" label_selected="Instellen" name="Set" tool_tip="Stelt het landingspunt in waar bezoekers arriveren. Wordt ingesteld op uw avatar&apos;s positie binnen dit perceel."/>
- <button width="80" left="311" label="Opschonen" label_selected="Opschonen" name="Clear" tool_tip="Landingspunt leegmaken"/>
+ <button label="Instellen" label_selected="Instellen" name="Set" tool_tip="Stelt het landingspunt in waar bezoekers arriveren. Wordt ingesteld op uw avatar&apos;s positie binnen dit perceel."/>
+ <button label="Opschonen" label_selected="Opschonen" name="Clear" tool_tip="Landingspunt leegmaken"/>
<text name="Teleport Routing: ">
Teleport routering:
</text>
@@ -473,8 +473,8 @@ hebt geklikt.)
<combo_box.item name="Group" label="Groep"
/>
</combo_box>
- <spinner label="Prijs in L$:" name="PriceSpin" label_width="168" width="228" />
- <spinner label="Toegangsuren" name="HoursSpin" label_width="168" width="228" />
+ <spinner label="Prijs in L$:" name="PriceSpin" label_width="168" />
+ <spinner label="Toegangsuren" name="HoursSpin" label_width="168" />
<text label="Altijd toestaan" name="AllowedText">
Toegestane inwoners
</text>
diff --git a/indra/newview/skins/default/xui/nl/panel_preferences_general.xml b/indra/newview/skins/default/xui/nl/panel_preferences_general.xml
index 9d9010a349..7be570b27f 100644
--- a/indra/newview/skins/default/xui/nl/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/nl/panel_preferences_general.xml
@@ -78,7 +78,7 @@
<combo_box.item name="Hungarian" label="Magyar (Hongaars) - Bèta"/>
<combo_box.item name="Dutch" label="Nederlands - Bèta"/>
<combo_box.item name="Polish" label="Polski (Pools) - Bèta"/>
- <combo_box.item name="Portugese" label="Portugués (Portugees) - Bèta"/>
+ <combo_box.item name="Portugese" label="Português (Portugees) - Bèta"/>
<combo_box.item name="Russian" label="Русский (Russisch) - Bèta"/>
<combo_box.item name="Turkish" label="Türkçe (Turks) - Bèta"/>
<combo_box.item name="Ukrainian" label="Українська (Oekraïens) - Bèta"/>
diff --git a/indra/newview/skins/default/xui/nl/strings.xml b/indra/newview/skins/default/xui/nl/strings.xml
index 25071b5460..1ee26c3f24 100644
--- a/indra/newview/skins/default/xui/nl/strings.xml
+++ b/indra/newview/skins/default/xui/nl/strings.xml
@@ -912,6 +912,9 @@
<string name="InvFolder Favorite">
Favoriten
</string>
+ <string name="InvFolder favorite">
+ Favoriten
+ </string>
<string name="InvFolder Current Outfit">
Huidige Uitrusting
</string>
diff --git a/indra/newview/skins/default/xui/pl/floater_about_land.xml b/indra/newview/skins/default/xui/pl/floater_about_land.xml
index c68e1c72ce..0974518a1f 100644
--- a/indra/newview/skins/default/xui/pl/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml
@@ -223,7 +223,7 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
<text name="Simulator primitive usage:">
Ilość używanych primów:
</text>
- <text name="objects_available" width="230">
+ <text name="objects_available">
[COUNT] z [MAX] ([AVAILABLE] jest dostępne)
</text>
<text name="Primitives parcel supports:">
@@ -271,11 +271,11 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
<text name="Autoreturn">
Zwracaj obiekty innych Rezydentów (minut, 0 = wyłącz):
</text>
- <text name="Object Owners:" width="108">
+ <text name="Object Owners:">
Właściciel obiektów:
</text>
- <button label="Odśwież listę" label_selected="Odśwież listę" left="112" name="Refresh List" tool_tip="Refresh Object List"/>
- <button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." left="224" name="Return objects..."/>
+ <button label="Odśwież listę" label_selected="Odśwież listę" name="Refresh List" tool_tip="Refresh Object List"/>
+ <button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." name="Return objects..."/>
<name_list name="owner list">
<name_list.columns label="Typ" name="type"/>
<name_list.columns name="online_status"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
index b9ba148ce7..e980d71ce4 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
@@ -71,7 +71,7 @@
<combo_box.item name="Hungarian" label="Magyar (Węgierski)" />
<combo_box.item name="Dutch" label="Nederlands (Niderlandzki)" />
<combo_box.item name="Polish" label="Polski" />
- <combo_box.item name="Portugese" label="Portugués (Portugalski)" />
+ <combo_box.item name="Portugese" label="Português (Portugalski)" />
<combo_box.item name="Russian" label="Русский (Rosyjski)" />
<combo_box.item name="Turkish" label="Türkçe (Turecki)" />
<combo_box.item name="Ukrainian" label="Українська (Ukraiński)" />
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
index 69686bcdbc..65ea349aec 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
@@ -13,7 +13,7 @@
<combo_box.item label="Italiano (Włoski) - Beta" name="Italian"/>
<combo_box.item label="Nederlands (Niderlandzki) - Beta" name="Dutch"/>
<combo_box.item label="Polski - Beta" name="Polish"/>
- <combo_box.item label="Portugués (Portugalski) - Beta" name="Portugese"/>
+ <combo_box.item label="Português (Portugalski) - Beta" name="Portugese"/>
<combo_box.item label="日本語 (Japoński) - Beta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml
index e2689720bf..f90e357373 100644
--- a/indra/newview/skins/default/xui/pl/strings.xml
+++ b/indra/newview/skins/default/xui/pl/strings.xml
@@ -1114,6 +1114,12 @@
<string name="InvFolder Gestures">
Gesturki
</string>
+ <string name="InvFolder Favorite">
+ Ulubione
+ </string>
+ <string name="InvFolder favorite">
+ Ulubione
+ </string>
<string name="InvFolder Current Outfit">
Obecny strój
</string>
diff --git a/indra/newview/skins/default/xui/pt/floater_about_land.xml b/indra/newview/skins/default/xui/pt/floater_about_land.xml
index 1767a31496..a6b255d432 100644
--- a/indra/newview/skins/default/xui/pt/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml
@@ -221,60 +221,60 @@ Vá para o menu Mundo &gt; Sobre o terreno ou selecione outro lote para mostrar
<text name="Simulator primitive usage:">
Uso de prims:
</text>
- <text left="214" name="objects_available" width="230">
+ <text name="objects_available">
[COUNT] de [MAX] ([AVAILABLE] disponíveis)
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Prims suportados pelo lote:
</text>
- <text left="214" name="object_contrib_text" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Prims no lote:
</text>
- <text left="214" name="total_objects_text" width="48">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text left="14" name="Owned by parcel owner:" width="180">
+ <text name="Owned by parcel owner:">
Pertencentes ao dono do lote:
</text>
- <text left="214" name="owner_objects_text" width="48">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/>
- <button label="Devolver" name="ReturnOwner..." right="-10" tool_tip="Devolver objetos a seus donos." width="119"/>
- <text left="14" name="Set to group:" width="180">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOwner"/>
+ <button label="Devolver" name="ReturnOwner..." tool_tip="Devolver objetos a seus donos."/>
+ <text name="Set to group:">
Reservado para o grupo:
</text>
- <text left="214" name="group_objects_text" width="48">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" right="-135" width="60"/>
- <button label="Devolver" name="ReturnGroup..." right="-10" tool_tip="Devolver objetos a seus donos." width="119"/>
- <text left="14" name="Owned by others:" width="128">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowGroup"/>
+ <button label="Devolver" name="ReturnGroup..." tool_tip="Devolver objetos a seus donos."/>
+ <text name="Owned by others:">
Propriedade de outros:
</text>
- <text left="214" name="other_objects_text" width="48">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/>
- <button label="Devolver" name="ReturnOther..." right="-10" tool_tip="Devolver objetos a seus donos." width="119"/>
- <text left="14" name="Selected / sat upon:" width="193">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOther"/>
+ <button label="Devolver" name="ReturnOther..." tool_tip="Devolver objetos a seus donos."/>
+ <text name="Selected / sat upon:">
Selecionado/Sentado:
</text>
- <text left="214" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Devolver objetos de outros residentes (p/ desligar tecle 0)
</text>
- <line_editor name="clean other time" right="-10"/>
+ <line_editor name="clean other time"/>
<text name="Object Owners:">
Donos dos objetos:
</text>
- <button label="Atualizar lista" label_selected="Atualizar lista" left="118" name="Refresh List" tool_tip="Refresh Object List"/>
- <button label="Devolver objetos..." label_selected="Devolver objetos..." left="230" name="Return objects..."/>
+ <button label="Atualizar lista" label_selected="Atualizar lista" name="Refresh List" tool_tip="Refresh Object List"/>
+ <button label="Devolver objetos..." label_selected="Devolver objetos..." name="Return objects..."/>
<name_list name="owner list">
<name_list.columns label="Tipo" name="type"/>
<name_list.columns label="Nome" name="name"/>
@@ -340,7 +340,7 @@ Apenas lotes maiores podem ser listados na busca.
<check_box label="Seguro (sem danos)" name="check safe" tool_tip="Se ativado, ajusta o terreno para Seguro, impedindo lutas com danos. Se não ativado, lutas com danos é habilitado."/>
<check_box label="Proibido empurrar" name="PushRestrictCheck" tool_tip="Evita scripts que empurram. Ativar essa opção ajuda a prevenir comportamentos desordeiros no seu terreno."/>
<check_box label="Mostrar terreno nos resultados de busca (L$30/semana)" name="ShowDirectoryCheck" tool_tip="Permitir que as pessoas vejam este terreno nos resultados de busca"/>
- <combo_box left="265" name="land category with adult" width="155">
+ <combo_box name="land category with adult">
<combo_box.item label="Qualquer categoria" name="item0"/>
<combo_box.item label="Locação Linden" name="item1"/>
<combo_box.item label="Adulto" name="item2"/>
@@ -355,7 +355,7 @@ Apenas lotes maiores podem ser listados na busca.
<combo_box.item label="Compras" name="item11"/>
<combo_box.item label="Outros" name="item12"/>
</combo_box>
- <combo_box left="265" name="land category" width="155">
+ <combo_box name="land category">
<combo_box.item label="Qualquer categoria" name="item0"/>
<combo_box.item label="Locação Linden" name="item1"/>
<combo_box.item label="Artes e cultura" name="item3"/>
@@ -382,7 +382,7 @@ Apenas lotes maiores podem ser listados na busca.
<text name="Teleport Routing: ">
Rota de teletransporte:
</text>
- <combo_box left="140" name="landing type" tool_tip="Rota de Teletransporte -- Selecione como tratar os teletransportes no seu lote." width="160">
+ <combo_box name="landing type" tool_tip="Rota de Teletransporte -- Selecione como tratar os teletransportes no seu lote." width="160">
<combo_box.item label="Bloqueado" name="Blocked"/>
<combo_box.item label="Ponto de aterrissagem" name="LandingPoint"/>
<combo_box.item label="Qualquer lugar" name="Anywhere"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
index 306487939e..9560a3b418 100644
--- a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
@@ -52,8 +52,8 @@
Duração do Ciclo:
</text>
<spinner label="Hora" name="WLLengthOfDayHour"/>
- <spinner label="Minuto" name="WLLengthOfDayMin"/>
- <spinner label="Segundo" name="WLLengthOfDaySec"/>
+ <spinner label="Min." name="WLLengthOfDayMin"/>
+ <spinner label="Seg." name="WLLengthOfDaySec"/>
<text name="DayCycleText3">
Visualizar
</text>
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
index 4bf2bda248..b6ecc9347b 100644
--- a/indra/newview/skins/default/xui/pt/strings.xml
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -1120,6 +1120,9 @@
<string name="InvFolder Favorite">
Favoritos
</string>
+ <string name="InvFolder favorite">
+ Favoritos
+ </string>
<string name="InvFolder Current Outfit">
Look atual
</string>
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 08ba8c13b1..949fa3cc1c 100644
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -310,6 +310,7 @@ class WindowsManifest(ViewerManifest):
self.path(src="licenses-win32.txt", dst="licenses.txt")
self.path("featuretable.txt")
+ self.path("featuretable_xp.txt")
# For use in crash reporting (generates minidumps)
self.path("dbghelp.dll")