diff options
Diffstat (limited to 'indra')
371 files changed, 2759 insertions, 2197 deletions
diff --git a/indra/llcharacter/lleditingmotion.cpp b/indra/llcharacter/lleditingmotion.cpp index 381d19e614..57554bdc35 100644 --- a/indra/llcharacter/lleditingmotion.cpp +++ b/indra/llcharacter/lleditingmotion.cpp @@ -221,7 +221,7 @@ BOOL LLEditingMotion::onUpdate(F32 time, U8* joint_mask) if (!target.isFinite()) { llerrs << "Non finite target in editing motion with target distance of " << target_dist << - " and focus point " << focus_pt << " and pointAtPt: " << *pointAtPt << llendl; + " and focus point " << focus_pt << llendl; } mTarget.setPosition( target + mParentJoint.getPosition()); diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index 9ead183a9e..4481d334b2 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -50,6 +50,7 @@ set(llcommon_SOURCE_FILES lleventdispatcher.cpp lleventfilter.cpp llevents.cpp + lleventtimer.cpp llfasttimer_class.cpp llfile.cpp llfindlocale.cpp @@ -164,7 +165,6 @@ set(llcommon_HEADER_FILES llhttpstatuscodes.h llindexedqueue.h llinstancetracker.h - llinstancetracker.h llkeythrottle.h lllazy.h lllistenerwrapper.h diff --git a/indra/llcommon/llapp.cpp b/indra/llcommon/llapp.cpp index 968b92d1e7..6b2d1b7c20 100644 --- a/indra/llcommon/llapp.cpp +++ b/indra/llcommon/llapp.cpp @@ -41,7 +41,7 @@ #include "lllivefile.h" #include "llmemory.h" #include "llstl.h" // for DeletePointer() -#include "lltimer.h" +#include "lleventtimer.h" // // Signal handling diff --git a/indra/llcommon/lleventtimer.cpp b/indra/llcommon/lleventtimer.cpp new file mode 100644 index 0000000000..d44e7ec1e6 --- /dev/null +++ b/indra/llcommon/lleventtimer.cpp @@ -0,0 +1,95 @@ +/** + * @file lleventtimer.cpp + * @brief Cross-platform objects for doing timing + * + * $LicenseInfo:firstyear=2000&license=viewergpl$ + * + * Copyright (c) 2000-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#include "linden_common.h" + +#include "lleventtimer.h" + +#include "u64.h" + + +////////////////////////////////////////////////////////////////////////////// +// +// LLEventTimer Implementation +// +////////////////////////////////////////////////////////////////////////////// + +LLEventTimer::LLEventTimer(F32 period) +: mEventTimer() +{ + mPeriod = period; +} + +LLEventTimer::LLEventTimer(const LLDate& time) +: mEventTimer() +{ + mPeriod = (F32)(time.secondsSinceEpoch() - LLDate::now().secondsSinceEpoch()); +} + + +LLEventTimer::~LLEventTimer() +{ +} + +//static +void LLEventTimer::updateClass() +{ + std::list<LLEventTimer*> completed_timers; + + { + LLInstanceTrackerScopedGuard guard; + for (instance_iter iter = guard.beginInstances(); iter != guard.endInstances(); ) + { + LLEventTimer& timer = *iter++; + F32 et = timer.mEventTimer.getElapsedTimeF32(); + if (timer.mEventTimer.getStarted() && et > timer.mPeriod) { + timer.mEventTimer.reset(); + if ( timer.tick() ) + { + completed_timers.push_back( &timer ); + } + } + } + } + + if ( completed_timers.size() > 0 ) + { + for (std::list<LLEventTimer*>::iterator completed_iter = completed_timers.begin(); + completed_iter != completed_timers.end(); + completed_iter++ ) + { + delete *completed_iter; + } + } +} + + diff --git a/indra/llcommon/lleventtimer.h b/indra/llcommon/lleventtimer.h new file mode 100644 index 0000000000..5181cce52d --- /dev/null +++ b/indra/llcommon/lleventtimer.h @@ -0,0 +1,60 @@ +/** + * @file lleventtimer.h + * @brief Cross-platform objects for doing timing + * + * $LicenseInfo:firstyear=2000&license=viewergpl$ + * + * Copyright (c) 2000-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#ifndef LL_EVENTTIMER_H +#define LL_EVENTTIMER_H + +#include "stdtypes.h" +#include "lldate.h" +#include "llinstancetracker.h" +#include "lltimer.h" + +// class for scheduling a function to be called at a given frequency (approximate, inprecise) +class LL_COMMON_API LLEventTimer : protected LLInstanceTracker<LLEventTimer> +{ +public: + LLEventTimer(F32 period); // period is the amount of time between each call to tick() in seconds + LLEventTimer(const LLDate& time); + virtual ~LLEventTimer(); + + //function to be called at the supplied frequency + // Normally return FALSE; TRUE will delete the timer after the function returns. + virtual BOOL tick() = 0; + + static void updateClass(); + +protected: + LLTimer mEventTimer; + F32 mPeriod; +}; + +#endif //LL_EVENTTIMER_H diff --git a/indra/llcommon/llfasttimer_class.cpp b/indra/llcommon/llfasttimer_class.cpp index 6d8d81e114..2e5edb1f3b 100644 --- a/indra/llcommon/llfasttimer_class.cpp +++ b/indra/llcommon/llfasttimer_class.cpp @@ -218,9 +218,10 @@ LLFastTimer::DeclareTimer::DeclareTimer(const std::string& name) // static void LLFastTimer::DeclareTimer::updateCachedPointers() { + DeclareTimer::LLInstanceTrackerScopedGuard guard; // propagate frame state pointers to timer declarations - for (DeclareTimer::instance_iter it = DeclareTimer::beginInstances(); - it != DeclareTimer::endInstances(); + for (DeclareTimer::instance_iter it = guard.beginInstances(); + it != guard.endInstances(); ++it) { // update cached pointer @@ -371,20 +372,23 @@ void LLFastTimer::NamedTimer::buildHierarchy() if (sCurFrameIndex < 0 ) return; // set up initial tree - for (instance_iter it = NamedTimer::beginInstances(); - it != endInstances(); - ++it) { - NamedTimer& timer = *it; - if (&timer == NamedTimerFactory::instance().getRootTimer()) continue; - - // bootstrap tree construction by attaching to last timer to be on stack - // when this timer was called - if (timer.getFrameState().mLastCaller && timer.mParent == NamedTimerFactory::instance().getRootTimer()) + NamedTimer::LLInstanceTrackerScopedGuard guard; + for (instance_iter it = guard.beginInstances(); + it != guard.endInstances(); + ++it) { - timer.setParent(timer.getFrameState().mLastCaller->mTimer); - // no need to push up tree on first use, flag can be set spuriously - timer.getFrameState().mMoveUpTree = false; + NamedTimer& timer = *it; + if (&timer == NamedTimerFactory::instance().getRootTimer()) continue; + + // bootstrap tree construction by attaching to last timer to be on stack + // when this timer was called + if (timer.getFrameState().mLastCaller && timer.mParent == NamedTimerFactory::instance().getRootTimer()) + { + timer.setParent(timer.getFrameState().mLastCaller->mTimer); + // no need to push up tree on first use, flag can be set spuriously + timer.getFrameState().mMoveUpTree = false; + } } } @@ -486,18 +490,21 @@ void LLFastTimer::NamedTimer::resetFrame() F64 total_time = 0; LLSD sd; - for (NamedTimer::instance_iter it = NamedTimer::beginInstances(); - it != NamedTimer::endInstances(); - ++it) { - NamedTimer& timer = *it; - FrameState& info = timer.getFrameState(); - sd[timer.getName()]["Time"] = (LLSD::Real) (info.mSelfTimeCounter*iclock_freq); - sd[timer.getName()]["Calls"] = (LLSD::Integer) info.mCalls; - - // computing total time here because getting the root timer's getCountHistory - // doesn't work correctly on the first frame - total_time = total_time + info.mSelfTimeCounter * iclock_freq; + NamedTimer::LLInstanceTrackerScopedGuard guard; + for (NamedTimer::instance_iter it = guard.beginInstances(); + it != guard.endInstances(); + ++it) + { + NamedTimer& timer = *it; + FrameState& info = timer.getFrameState(); + sd[timer.getName()]["Time"] = (LLSD::Real) (info.mSelfTimeCounter*iclock_freq); + sd[timer.getName()]["Calls"] = (LLSD::Integer) info.mCalls; + + // computing total time here because getting the root timer's getCountHistory + // doesn't work correctly on the first frame + total_time = total_time + info.mSelfTimeCounter * iclock_freq; + } } sd["Total"]["Time"] = (LLSD::Real) total_time; @@ -531,21 +538,24 @@ void LLFastTimer::NamedTimer::resetFrame() DeclareTimer::updateCachedPointers(); // reset for next frame - for (NamedTimer::instance_iter it = NamedTimer::beginInstances(); - it != NamedTimer::endInstances(); - ++it) { - NamedTimer& timer = *it; - - FrameState& info = timer.getFrameState(); - info.mSelfTimeCounter = 0; - info.mCalls = 0; - info.mLastCaller = NULL; - info.mMoveUpTree = false; - // update parent pointer in timer state struct - if (timer.mParent) + NamedTimer::LLInstanceTrackerScopedGuard guard; + for (NamedTimer::instance_iter it = guard.beginInstances(); + it != guard.endInstances(); + ++it) { - info.mParent = &timer.mParent->getFrameState(); + NamedTimer& timer = *it; + + FrameState& info = timer.getFrameState(); + info.mSelfTimeCounter = 0; + info.mCalls = 0; + info.mLastCaller = NULL; + info.mMoveUpTree = false; + // update parent pointer in timer state struct + if (timer.mParent) + { + info.mParent = &timer.mParent->getFrameState(); + } } } @@ -575,20 +585,23 @@ void LLFastTimer::NamedTimer::reset() } // reset all history - for (NamedTimer::instance_iter it = NamedTimer::beginInstances(); - it != NamedTimer::endInstances(); - ++it) { - NamedTimer& timer = *it; - if (&timer != NamedTimerFactory::instance().getRootTimer()) + NamedTimer::LLInstanceTrackerScopedGuard guard; + for (NamedTimer::instance_iter it = guard.beginInstances(); + it != guard.endInstances(); + ++it) { - timer.setParent(NamedTimerFactory::instance().getRootTimer()); + NamedTimer& timer = *it; + if (&timer != NamedTimerFactory::instance().getRootTimer()) + { + timer.setParent(NamedTimerFactory::instance().getRootTimer()); + } + + timer.mCountAverage = 0; + timer.mCallAverage = 0; + memset(timer.mCountHistory, 0, sizeof(U32) * HISTORY_NUM); + memset(timer.mCallHistory, 0, sizeof(U32) * HISTORY_NUM); } - - timer.mCountAverage = 0; - timer.mCallAverage = 0; - memset(timer.mCountHistory, 0, sizeof(U32) * HISTORY_NUM); - memset(timer.mCallHistory, 0, sizeof(U32) * HISTORY_NUM); } sLastFrameIndex = 0; diff --git a/indra/llcommon/llinstancetracker.cpp b/indra/llcommon/llinstancetracker.cpp new file mode 100644 index 0000000000..c962cb5be1 --- /dev/null +++ b/indra/llcommon/llinstancetracker.cpp @@ -0,0 +1,20 @@ +/** + * @file lllinstancetracker.cpp + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + * Copyright (c) 2009, Linden Research, Inc. + * $/LicenseInfo$ + */ + +// Precompiled header +#include "linden_common.h" +// associated header +#include "llinstancetracker.h" +// STL headers +// std headers +// external library headers +// other Linden headers + +// llinstancetracker.h is presently header-only. This file exists only because our CMake +// test macro ADD_BUILD_TEST requires it. +int dummy = 0; diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h index 11fe523651..9df7998273 100644 --- a/indra/llcommon/llinstancetracker.h +++ b/indra/llcommon/llinstancetracker.h @@ -98,7 +98,10 @@ private: mKey = key; getMap_()[key] = static_cast<T*>(this); } - void remove_() { getMap_().erase(mKey); } + void remove_() + { + getMap_().erase(mKey); + } static InstanceMap& getMap_() { @@ -129,31 +132,65 @@ public: /// for completeness of analogy with the generic implementation static T* getInstance(T* k) { return k; } - static key_iter beginKeys() { return getSet_().begin(); } - static key_iter endKeys() { return getSet_().end(); } - static instance_iter beginInstances() { return instance_iter(getSet_().begin()); } - static instance_iter endInstances() { return instance_iter(getSet_().end()); } static S32 instanceCount() { return getSet_().size(); } + // Instantiate this to get access to iterators for this type. It's a 'guard' in the sense + // that it treats deletes of this type as errors as long as there is an instance of + // this class alive in scope somewhere (i.e. deleting while iterating is bad). + class LLInstanceTrackerScopedGuard + { + public: + LLInstanceTrackerScopedGuard() + { + ++sIterationNestDepth; + } + + ~LLInstanceTrackerScopedGuard() + { + --sIterationNestDepth; + } + + static instance_iter beginInstances() { return instance_iter(getSet_().begin()); } + static instance_iter endInstances() { return instance_iter(getSet_().end()); } + static key_iter beginKeys() { return getSet_().begin(); } + static key_iter endKeys() { return getSet_().end(); } + }; + protected: - LLInstanceTracker() { getSet_().insert(static_cast<T*>(this)); } - virtual ~LLInstanceTracker() { getSet_().erase(static_cast<T*>(this)); } + LLInstanceTracker() + { + // it's safe but unpredictable to create instances of this type while all instances are being iterated over. I hate unpredictable. This assert will probably be turned on early in the next development cycle. + //llassert(sIterationNestDepth == 0); + getSet_().insert(static_cast<T*>(this)); + } + virtual ~LLInstanceTracker() + { + // it's unsafe to delete instances of this type while all instances are being iterated over. + llassert(sIterationNestDepth == 0); + getSet_().erase(static_cast<T*>(this)); + } - LLInstanceTracker(const LLInstanceTracker& other) { getSet_().insert(static_cast<T*>(this)); } + LLInstanceTracker(const LLInstanceTracker& other) + { + //llassert(sIterationNestDepth == 0); + getSet_().insert(static_cast<T*>(this)); + } - static InstanceSet& getSet_() // called after getReady() but before go() - { - if (! sInstances) - { - sInstances = new InstanceSet; - } - return *sInstances; - } + static InstanceSet& getSet_() + { + if (! sInstances) + { + sInstances = new InstanceSet; + } + return *sInstances; + } static InstanceSet* sInstances; + static S32 sIterationNestDepth; }; template <typename T, typename KEY> typename LLInstanceTracker<T, KEY>::InstanceMap* LLInstanceTracker<T, KEY>::sInstances = NULL; template <typename T> typename LLInstanceTracker<T, T*>::InstanceSet* LLInstanceTracker<T, T*>::sInstances = NULL; +template <typename T> S32 LLInstanceTracker<T, T*>::sIterationNestDepth = 0; #endif diff --git a/indra/llcommon/lllivefile.cpp b/indra/llcommon/lllivefile.cpp index effda6c49c..5ca90d82ba 100644 --- a/indra/llcommon/lllivefile.cpp +++ b/indra/llcommon/lllivefile.cpp @@ -33,7 +33,7 @@ #include "lllivefile.h" #include "llframetimer.h" -#include "lltimer.h" +#include "lleventtimer.h" const F32 DEFAULT_CONFIG_FILE_REFRESH = 5.0f; diff --git a/indra/llcommon/lltimer.cpp b/indra/llcommon/lltimer.cpp index 21e165ebc9..25b768079b 100644 --- a/indra/llcommon/lltimer.cpp +++ b/indra/llcommon/lltimer.cpp @@ -555,60 +555,3 @@ void secondsToTimecodeString(F32 current_time, std::string& tcstring) } -////////////////////////////////////////////////////////////////////////////// -// -// LLEventTimer Implementation -// -////////////////////////////////////////////////////////////////////////////// - -LLEventTimer::LLEventTimer(F32 period) -: mEventTimer() -{ - mPeriod = period; - mBusy = false; -} - -LLEventTimer::LLEventTimer(const LLDate& time) -: mEventTimer() -{ - mPeriod = (F32)(time.secondsSinceEpoch() - LLDate::now().secondsSinceEpoch()); - mBusy = false; -} - - -LLEventTimer::~LLEventTimer() -{ - llassert(!mBusy); // this LLEventTimer was destroyed from within its own tick() function - bad. if you want tick() to cause destruction of its own timer, make it return true. -} - -//static -void LLEventTimer::updateClass() -{ - std::list<LLEventTimer*> completed_timers; - for (instance_iter iter = beginInstances(); iter != endInstances(); ) - { - LLEventTimer& timer = *iter++; - F32 et = timer.mEventTimer.getElapsedTimeF32(); - if (timer.mEventTimer.getStarted() && et > timer.mPeriod) { - timer.mEventTimer.reset(); - timer.mBusy = true; - if ( timer.tick() ) - { - completed_timers.push_back( &timer ); - } - timer.mBusy = false; - } - } - - if ( completed_timers.size() > 0 ) - { - for (std::list<LLEventTimer*>::iterator completed_iter = completed_timers.begin(); - completed_iter != completed_timers.end(); - completed_iter++ ) - { - delete *completed_iter; - } - } -} - - diff --git a/indra/llcommon/lltimer.h b/indra/llcommon/lltimer.h index 4d995d5bba..baba95bfa1 100644 --- a/indra/llcommon/lltimer.h +++ b/indra/llcommon/lltimer.h @@ -39,8 +39,6 @@ #include <limits.h> #include "stdtypes.h" -#include "lldate.h" -#include "llinstancetracker.h" #include <string> #include <list> @@ -171,26 +169,6 @@ LL_COMMON_API struct tm* utc_to_pacific_time(time_t utc_time, BOOL pacific_dayli LL_COMMON_API void microsecondsToTimecodeString(U64 current_time, std::string& tcstring); LL_COMMON_API void secondsToTimecodeString(F32 current_time, std::string& tcstring); -// class for scheduling a function to be called at a given frequency (approximate, inprecise) -class LL_COMMON_API LLEventTimer : protected LLInstanceTracker<LLEventTimer> -{ -public: - LLEventTimer(F32 period); // period is the amount of time between each call to tick() in seconds - LLEventTimer(const LLDate& time); - virtual ~LLEventTimer(); - - //function to be called at the supplied frequency - // Normally return FALSE; TRUE will delete the timer after the function returns. - virtual BOOL tick() = 0; - - static void updateClass(); - -protected: - LLTimer mEventTimer; - F32 mPeriod; - bool mBusy; -}; - U64 LL_COMMON_API totalTime(); // Returns current system time in microseconds #endif diff --git a/indra/llcommon/tests/llinstancetracker_test.cpp b/indra/llcommon/tests/llinstancetracker_test.cpp index 7415f2d33b..4bb3ec2922 100644 --- a/indra/llcommon/tests/llinstancetracker_test.cpp +++ b/indra/llcommon/tests/llinstancetracker_test.cpp @@ -138,23 +138,29 @@ namespace tut keys.insert(&one); keys.insert(&two); keys.insert(&three); - for (Unkeyed::key_iter ki(Unkeyed::beginKeys()), kend(Unkeyed::endKeys()); - ki != kend; ++ki) - { - ensure_equals("spurious key", keys.erase(*ki), 1); - } + { + Unkeyed::LLInstanceTrackerScopedGuard guard; + for (Unkeyed::key_iter ki(guard.beginKeys()), kend(guard.endKeys()); + ki != kend; ++ki) + { + ensure_equals("spurious key", keys.erase(*ki), 1); + } + } ensure_equals("unreported key", keys.size(), 0); KeySet instances; instances.insert(&one); instances.insert(&two); instances.insert(&three); - for (Unkeyed::instance_iter ii(Unkeyed::beginInstances()), iend(Unkeyed::endInstances()); - ii != iend; ++ii) - { - Unkeyed& ref = *ii; - ensure_equals("spurious instance", instances.erase(&ref), 1); - } + { + Unkeyed::LLInstanceTrackerScopedGuard guard; + for (Unkeyed::instance_iter ii(guard.beginInstances()), iend(guard.endInstances()); + ii != iend; ++ii) + { + Unkeyed& ref = *ii; + ensure_equals("spurious instance", instances.erase(&ref), 1); + } + } ensure_equals("unreported instance", instances.size(), 0); } } // namespace tut diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp index e02be6c8c1..5649b4cab7 100644 --- a/indra/llimage/llimage.cpp +++ b/indra/llimage/llimage.cpp @@ -676,9 +676,6 @@ void LLImageRaw::copy(LLImageRaw* src) LLImageRaw* dst = this; // Just for clarity. - llassert( (3 == src->getComponents()) || (4 == src->getComponents()) ); - llassert( (3 == dst->getComponents()) || (4 == dst->getComponents()) ); - if( (src->getWidth() == dst->getWidth()) && (src->getHeight() == dst->getHeight()) ) { // No scaling needed diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index df4c618ac1..192c6157a8 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -3822,6 +3822,7 @@ BOOL LLVolume::cleanupTriangleData( const S32 num_input_vertices, // Generate the vertex mapping and the list of vertices without // duplicates. This will crash if there are no vertices. + llassert(num_input_vertices > 0); // check for no vertices! S32 *vertex_mapping = new S32[num_input_vertices]; LLVector3 *new_vertices = new LLVector3[num_input_vertices]; LLVertexIndexPair *prev_pairp = NULL; diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index 91c796a9e6..6a2449cf4b 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -471,7 +471,7 @@ void LLPluginClassMedia::mouseEvent(EMouseEventType type, int button, int x, int sendMessage(message); } -bool LLPluginClassMedia::keyEvent(EKeyEventType type, int key_code, MASK modifiers) +bool LLPluginClassMedia::keyEvent(EKeyEventType type, int key_code, MASK modifiers, LLSD native_key_data) { bool result = true; @@ -528,6 +528,7 @@ bool LLPluginClassMedia::keyEvent(EKeyEventType type, int key_code, MASK modifie message.setValueS32("key", key_code); message.setValue("modifiers", translateModifiers(modifiers)); + message.setValueLLSD("native_key_data", native_key_data); sendMessage(message); } @@ -546,12 +547,13 @@ void LLPluginClassMedia::scrollEvent(int x, int y, MASK modifiers) sendMessage(message); } -bool LLPluginClassMedia::textInput(const std::string &text, MASK modifiers) +bool LLPluginClassMedia::textInput(const std::string &text, MASK modifiers, LLSD native_key_data) { LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "text_event"); message.setValue("text", text); message.setValue("modifiers", translateModifiers(modifiers)); + message.setValueLLSD("native_key_data", native_key_data); sendMessage(message); @@ -682,13 +684,13 @@ LLPluginClassMedia::ETargetType getTargetTypeFromLLQtWebkit(int target_type) // so that we don't expose the llqtwebkit header in viewer code switch (target_type) { - case LinkTargetType::LTT_TARGET_NONE: + case LLQtWebKit::LTT_TARGET_NONE: return LLPluginClassMedia::TARGET_NONE; - case LinkTargetType::LTT_TARGET_BLANK: + case LLQtWebKit::LTT_TARGET_BLANK: return LLPluginClassMedia::TARGET_BLANK; - case LinkTargetType::LTT_TARGET_EXTERNAL: + case LLQtWebKit::LTT_TARGET_EXTERNAL: return LLPluginClassMedia::TARGET_EXTERNAL; default: diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index ebb9099576..58e91fa0b4 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -114,12 +114,12 @@ public: KEY_EVENT_REPEAT }EKeyEventType; - bool keyEvent(EKeyEventType type, int key_code, MASK modifiers); + bool keyEvent(EKeyEventType type, int key_code, MASK modifiers, LLSD native_key_data); void scrollEvent(int x, int y, MASK modifiers); // Text may be unicode (utf8 encoded) - bool textInput(const std::string &text, MASK modifiers); + bool textInput(const std::string &text, MASK modifiers, LLSD native_key_data); void loadURI(const std::string &uri); diff --git a/indra/llplugin/llpluginmessagepipe.cpp b/indra/llplugin/llpluginmessagepipe.cpp index cc193fca42..1d7ddc5592 100644 --- a/indra/llplugin/llpluginmessagepipe.cpp +++ b/indra/llplugin/llpluginmessagepipe.cpp @@ -304,7 +304,14 @@ void LLPluginMessagePipe::processInput(void) while((delim = mInput.find(MESSAGE_DELIMITER, start)) != std::string::npos) { // Let the owner process this message - mOwner->receiveMessageRaw(mInput.substr(start, delim - start)); + if (mOwner) + { + mOwner->receiveMessageRaw(mInput.substr(start, delim - start)); + } + else + { + LL_WARNS("Plugin") << "!mOwner" << LL_ENDL; + } start = delim + 1; } diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp index 0f3254d78d..52b5a319ec 100644 --- a/indra/llplugin/llpluginprocesschild.cpp +++ b/indra/llplugin/llpluginprocesschild.cpp @@ -278,14 +278,21 @@ bool LLPluginProcessChild::isDone(void) void LLPluginProcessChild::sendMessageToPlugin(const LLPluginMessage &message) { - std::string buffer = message.generate(); - - LL_DEBUGS("Plugin") << "Sending to plugin: " << buffer << LL_ENDL; - LLTimer elapsed; - - mInstance->sendMessage(buffer); - - mCPUElapsed += elapsed.getElapsedTimeF64(); + if (mInstance) + { + std::string buffer = message.generate(); + + LL_DEBUGS("Plugin") << "Sending to plugin: " << buffer << LL_ENDL; + LLTimer elapsed; + + mInstance->sendMessage(buffer); + + mCPUElapsed += elapsed.getElapsedTimeF64(); + } + else + { + LL_WARNS("Plugin") << "mInstance == NULL" << LL_ENDL; + } } void LLPluginProcessChild::sendMessageToParent(const LLPluginMessage &message) diff --git a/indra/llrender/llfontfreetype.cpp b/indra/llrender/llfontfreetype.cpp index 59e7d890f4..22fad792da 100644 --- a/indra/llrender/llfontfreetype.cpp +++ b/indra/llrender/llfontfreetype.cpp @@ -504,8 +504,13 @@ void LLFontFreetype::resetBitmapCache() mCharGlyphInfoMap.clear(); mFontBitmapCachep->reset(); - // Add the empty glyph - addGlyphFromFont(this, 0, 0); + // Adding default glyph is skipped for fallback fonts here as well as in loadFace(). + // This if was added as fix for EXT-4971. + if(!mIsFallback) + { + // Add the empty glyph + addGlyphFromFont(this, 0, 0); + } } void LLFontFreetype::destroyGL() diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index 14b77925f2..1d4dc35cee 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -81,10 +81,9 @@ LLButton::Params::Params() image_pressed_selected("image_pressed_selected"), image_overlay("image_overlay"), image_overlay_alignment("image_overlay_alignment", std::string("center")), - image_left_pad("image_left_pad"), - image_right_pad("image_right_pad"), image_top_pad("image_top_pad"), image_bottom_pad("image_bottom_pad"), + imgoverlay_label_space("imgoverlay_label_space", 1), label_color("label_color"), label_color_selected("label_color_selected"), // requires is_toggle true label_color_disabled("label_color_disabled"), @@ -144,10 +143,9 @@ LLButton::LLButton(const LLButton::Params& p) mImageOverlay(p.image_overlay()), mImageOverlayColor(p.image_overlay_color()), mImageOverlayAlignment(LLFontGL::hAlignFromName(p.image_overlay_alignment)), - mImageOverlayLeftPad(p.image_left_pad), - mImageOverlayRightPad(p.image_right_pad), mImageOverlayTopPad(p.image_top_pad), mImageOverlayBottomPad(p.image_bottom_pad), + mImgOverlayLabelSpace(p.imgoverlay_label_space), mIsToggle(p.is_toggle), mScaleImage(p.scale_image), mDropShadowedText(p.label_shadow), @@ -783,9 +781,9 @@ void LLButton::draw() switch(mImageOverlayAlignment) { case LLFontGL::LEFT: - text_left += overlay_width + 1; + text_left += overlay_width + mImgOverlayLabelSpace; mImageOverlay->draw( - mImageOverlayLeftPad, + mLeftHPad, center_y - (overlay_height / 2), overlay_width, overlay_height, @@ -800,9 +798,9 @@ void LLButton::draw() overlay_color); break; case LLFontGL::RIGHT: - text_right -= overlay_width + 1; + text_right -= overlay_width + mImgOverlayLabelSpace; mImageOverlay->draw( - getRect().getWidth() - mImageOverlayRightPad - overlay_width, + getRect().getWidth() - mRightHPad - overlay_width, center_y - (overlay_height / 2), overlay_width, overlay_height, diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h index 8e5f19602f..8f35db1007 100644 --- a/indra/llui/llbutton.h +++ b/indra/llui/llbutton.h @@ -107,11 +107,14 @@ public: Optional<S32> pad_bottom; // under text label //image overlay paddings - Optional<S32> image_left_pad; - Optional<S32> image_right_pad; Optional<S32> image_top_pad; Optional<S32> image_bottom_pad; + /** + * Space between image_overlay and label + */ + Optional<S32> imgoverlay_label_space; + // callbacks Optional<CommitCallbackParam> click_callback, // alias -> commit_callback mouse_down_callback, @@ -192,10 +195,6 @@ public: void setLeftHPad( S32 pad ) { mLeftHPad = pad; } void setRightHPad( S32 pad ) { mRightHPad = pad; } - void setImageOverlayLeftPad( S32 pad ) { mImageOverlayLeftPad = pad; } - S32 getImageOverlayLeftPad() const { return mImageOverlayLeftPad; } - void setImageOverlayRightPad( S32 pad ) { mImageOverlayRightPad = pad; } - S32 getImageOverlayRightPad() const { return mImageOverlayRightPad; } void setImageOverlayTopPad( S32 pad ) { mImageOverlayTopPad = pad; } S32 getImageOverlayTopPad() const { return mImageOverlayTopPad; } void setImageOverlayBottomPad( S32 pad ) { mImageOverlayBottomPad = pad; } @@ -328,11 +327,14 @@ private: S32 mRightHPad; S32 mBottomVPad; // under text label - S32 mImageOverlayLeftPad; - S32 mImageOverlayRightPad; S32 mImageOverlayTopPad; S32 mImageOverlayBottomPad; + /* + * Space between image_overlay and label + */ + S32 mImgOverlayLabelSpace; + F32 mHoverGlowStrength; F32 mCurGlowStrength; diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp index 1aaba88c49..dc79550eb4 100644 --- a/indra/llui/lllayoutstack.cpp +++ b/indra/llui/lllayoutstack.cpp @@ -816,7 +816,10 @@ void LLLayoutStack::calcMinExtents() //static void LLLayoutStack::updateClass() { - for (LLLayoutStack::instance_iter it = beginInstances(); it != endInstances(); ++it) + LLInstanceTrackerScopedGuard guard; + for (LLLayoutStack::instance_iter it = guard.beginInstances(); + it != guard.endInstances(); + ++it) { it->updateLayout(); } diff --git a/indra/llui/llmultifloater.cpp b/indra/llui/llmultifloater.cpp index 78738c826d..33d47a3f0e 100644 --- a/indra/llui/llmultifloater.cpp +++ b/indra/llui/llmultifloater.cpp @@ -92,14 +92,6 @@ void LLMultiFloater::draw() } else { - for (S32 i = 0; i < mTabContainer->getTabCount(); i++) - { - LLFloater* floaterp = (LLFloater*)mTabContainer->getPanelByIndex(i); - if (floaterp->getShortTitle() != mTabContainer->getPanelTitle(i)) - { - mTabContainer->setPanelTitle(i, floaterp->getShortTitle()); - } - } LLFloater::draw(); } } diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index 19408989a5..fe699cfa01 100644 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -119,6 +119,7 @@ protected: LLCustomButtonIconCtrl(const Params& p): LLButton(p), mIcon(NULL), + mIconAlignment(LLFontGL::HCENTER), mIconCtrlPad(p.icon_ctrl_pad) {} @@ -212,7 +213,8 @@ LLTabContainer::Params::Params() middle_tab("middle_tab"), last_tab("last_tab"), use_custom_icon_ctrl("use_custom_icon_ctrl", false), - tab_icon_ctrl_pad("tab_icon_ctrl_pad", 0) + tab_icon_ctrl_pad("tab_icon_ctrl_pad", 0), + use_ellipses("use_ellipses") { name(std::string("tab_container")); mouse_opaque = false; @@ -249,7 +251,8 @@ LLTabContainer::LLTabContainer(const LLTabContainer::Params& p) mMiddleTabParams(p.middle_tab), mLastTabParams(p.last_tab), mCustomIconCtrlUsed(p.use_custom_icon_ctrl), - mTabIconCtrlPad(p.tab_icon_ctrl_pad) + mTabIconCtrlPad(p.tab_icon_ctrl_pad), + mUseTabEllipses(p.use_ellipses) { static LLUICachedControl<S32> tabcntr_vert_tab_min_width ("UITabCntrVertTabMinWidth", 0); @@ -1485,8 +1488,8 @@ BOOL LLTabContainer::setTab(S32 which) { LLTabTuple* tuple = *iter; BOOL is_selected = ( tuple == selected_tuple ); - tuple->mButton->setUseEllipses(TRUE); - tuple->mButton->setHAlign(LLFontGL::LEFT); + tuple->mButton->setUseEllipses(mUseTabEllipses); + tuple->mButton->setHAlign(mFontHalign); tuple->mTabPanel->setVisible( is_selected ); // tuple->mTabPanel->setFocus(is_selected); // not clear that we want to do this here. tuple->mButton->setToggleState( is_selected ); @@ -1628,15 +1631,11 @@ void LLTabContainer::setTabImage(LLPanel* child, LLIconCtrl* icon) void LLTabContainer::reshapeTuple(LLTabTuple* tuple) { static LLUICachedControl<S32> tab_padding ("UITabPadding", 0); - static LLUICachedControl<S32> image_left_padding ("UIButtonImageLeftPadding", 4); - static LLUICachedControl<S32> image_right_padding ("UIButtonImageRightPadding", 4); static LLUICachedControl<S32> image_top_padding ("UIButtonImageTopPadding", 2); static LLUICachedControl<S32> image_bottom_padding ("UIButtonImageBottomPadding", 2); if (!mIsVertical) { - tuple->mButton->setImageOverlayLeftPad(image_left_padding); - tuple->mButton->setImageOverlayRightPad(image_right_padding); tuple->mButton->setImageOverlayTopPad(image_top_padding); tuple->mButton->setImageOverlayBottomPad(image_bottom_padding); diff --git a/indra/llui/lltabcontainer.h b/indra/llui/lltabcontainer.h index 4b5d45fb73..50ec2679f6 100644 --- a/indra/llui/lltabcontainer.h +++ b/indra/llui/lltabcontainer.h @@ -93,6 +93,16 @@ public: last_tab; /** + * Tab label horizontal alignment + */ + Optional<LLFontGL::HAlign> font_halign; + + /** + * Tab label ellipses + */ + Optional<bool> use_ellipses; + + /** * Use LLCustomButtonIconCtrl or LLButton in LLTabTuple */ Optional<bool> use_custom_icon_ctrl; @@ -294,6 +304,7 @@ private: bool mCustomIconCtrlUsed; S32 mTabIconCtrlPad; + bool mUseTabEllipses; }; #endif // LL_TABCONTAINER_H diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 2b1e2b8226..b84e6f45fb 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -1137,6 +1137,7 @@ void LLTextBase::reflow() line_list_t::iterator iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), start_index, line_end_compare()); line_start_index = iter->mDocIndexStart; line_count = iter->mLineNum; + cur_top = iter->mRect.mTop; getSegmentAndOffset(iter->mDocIndexStart, &seg_iter, &seg_offset); mLineInfoList.erase(iter, mLineInfoList.end()); } @@ -1574,8 +1575,10 @@ void LLTextBase::appendText(const std::string &new_text, bool prepend_newline, c { LLStyle::Params icon; icon.image = image; - // HACK: fix spacing of images and remove the fixed char spacing - appendAndHighlightText(" ", prepend_newline, part, icon); + // Text will be replaced during rendering with the icon, + // but string cannot be empty or the segment won't be + // added (or drawn). + appendAndHighlightText(" ", prepend_newline, part, icon); prepend_newline = false; } } @@ -2296,14 +2299,21 @@ F32 LLNormalTextSegment::draw(S32 start, S32 end, S32 selection_start, S32 selec { if ( mStyle->isImage() && (start >= 0) && (end <= mEnd - mStart)) { + // ...for images, only render the image, not the underlying text, + // which is only a placeholder space LLColor4 color = LLColor4::white % mEditor.getDrawContext().mAlpha; LLUIImagePtr image = mStyle->getImage(); S32 style_image_height = image->getHeight(); S32 style_image_width = image->getWidth(); - // Center the image vertically - S32 image_bottom = draw_rect.getCenterY() - (style_image_height/2); + // Text is drawn from the top of the draw_rect downward + S32 text_center = draw_rect.mTop - (mFontHeight / 2); + // Align image to center of text + S32 image_bottom = text_center - (style_image_height / 2); image->draw(draw_rect.mLeft, image_bottom, style_image_width, style_image_height, color); + + const S32 IMAGE_HPAD = 3; + return draw_rect.mLeft + style_image_width + IMAGE_HPAD; } return drawClippedSegment( getStart() + start, getStart() + end, selection_start, selection_end, draw_rect); diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index ad9f066539..ce5f1bd082 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -737,7 +737,7 @@ BOOL LLTextEditor::handleRightMouseDown(S32 x, S32 y, MASK mask) } if (!LLTextBase::handleRightMouseDown(x, y, mask)) { - if(getChowContextMenu()) + if(getShowContextMenu()) { showContextMenu(x, y); } diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h index 00c6a8b68a..71d937b2c4 100644 --- a/indra/llui/lltexteditor.h +++ b/indra/llui/lltexteditor.h @@ -204,7 +204,7 @@ public: void getSelectedSegments(segment_vec_t& segments) const; void setShowContextMenu(bool show) { mShowContextMenu = show; } - bool getChowContextMenu() const { return mShowContextMenu; } + bool getShowContextMenu() const { return mShowContextMenu; } protected: void showContextMenu(S32 x, S32 y); diff --git a/indra/llui/lluicolortable.cpp b/indra/llui/lluicolortable.cpp index 9be33483d0..1b64ef3abe 100644 --- a/indra/llui/lluicolortable.cpp +++ b/indra/llui/lluicolortable.cpp @@ -56,7 +56,7 @@ LLUIColorTable::Params::Params() { } -void LLUIColorTable::insertFromParams(const Params& p) +void LLUIColorTable::insertFromParams(const Params& p, string_color_map_t& table) { // this map will contain all color references after the following loop typedef std::map<std::string, std::string> string_string_map_t; @@ -69,14 +69,7 @@ void LLUIColorTable::insertFromParams(const Params& p) ColorEntryParams color_entry = *it; if(color_entry.color.value.isChosen()) { - if(mUserSetColors.find(color_entry.name)!=mUserSetColors.end()) - { - setColor(color_entry.name, color_entry.color.value); - } - else - { - setColor(color_entry.name, color_entry.color.value, mLoadedColors); - } + setColor(color_entry.name, color_entry.color.value, table); } else { @@ -220,16 +213,16 @@ bool LLUIColorTable::loadFromSettings() bool result = false; std::string default_filename = gDirUtilp->getExpandedFilename(LL_PATH_DEFAULT_SKIN, "colors.xml"); - result |= loadFromFilename(default_filename); + result |= loadFromFilename(default_filename, mLoadedColors); std::string current_filename = gDirUtilp->getExpandedFilename(LL_PATH_TOP_SKIN, "colors.xml"); if(current_filename != default_filename) { - result |= loadFromFilename(current_filename); + result |= loadFromFilename(current_filename, mLoadedColors); } std::string user_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "colors.xml"); - loadFromFilename(user_filename); + loadFromFilename(user_filename, mUserSetColors); return result; } @@ -299,7 +292,7 @@ void LLUIColorTable::setColor(const std::string& name, const LLColor4& color, st } } -bool LLUIColorTable::loadFromFilename(const std::string& filename) +bool LLUIColorTable::loadFromFilename(const std::string& filename, string_color_map_t& table) { LLXMLNodePtr root; @@ -320,7 +313,7 @@ bool LLUIColorTable::loadFromFilename(const std::string& filename) if(params.validateBlock()) { - insertFromParams(params); + insertFromParams(params, table); } else { @@ -330,3 +323,11 @@ bool LLUIColorTable::loadFromFilename(const std::string& filename) return true; } + +void LLUIColorTable::insertFromParams(const Params& p) +{ + insertFromParams(p, mUserSetColors); +} + +// EOF + diff --git a/indra/llui/lluicolortable.h b/indra/llui/lluicolortable.h index c87695f456..d401e5e724 100644 --- a/indra/llui/lluicolortable.h +++ b/indra/llui/lluicolortable.h @@ -45,6 +45,10 @@ class LLUIColor; class LLUIColorTable : public LLSingleton<LLUIColorTable> { LOG_CLASS(LLUIColorTable); + + // consider using sorted vector, can be much faster + typedef std::map<std::string, LLUIColor> string_color_map_t; + public: struct ColorParams : LLInitParam::Choice<ColorParams> { @@ -91,10 +95,9 @@ public: void saveUserSettings() const; private: - bool loadFromFilename(const std::string& filename); + bool loadFromFilename(const std::string& filename, string_color_map_t& table); - // consider using sorted vector, can be much faster - typedef std::map<std::string, LLUIColor> string_color_map_t; + void insertFromParams(const Params& p, string_color_map_t& table); void clearTable(string_color_map_t& table); void setColor(const std::string& name, const LLColor4& color, string_color_map_t& table); diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index f1b08c380b..63e627ceb5 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -1720,6 +1720,7 @@ LLView* LLView::findChildView(const std::string& name, BOOL recurse) const for ( child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it) { LLView* childp = *child_it; + llassert(childp); if (childp->getName() == name) { return childp; @@ -1731,6 +1732,7 @@ LLView* LLView::findChildView(const std::string& name, BOOL recurse) const for ( child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it) { LLView* childp = *child_it; + llassert(childp); LLView* viewp = childp->findChildView(name, recurse); if ( viewp ) { diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index 77c6fa57b6..bf3233f386 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -113,6 +113,7 @@ if (WINDOWS) ) list(APPEND llwindow_LINK_LIBRARIES comdlg32 # Common Dialogs for ChooseColor + ole32 ) endif (WINDOWS) diff --git a/indra/llwindow/lldragdropwin32.cpp b/indra/llwindow/lldragdropwin32.cpp index 9b80fe0a84..b85960be10 100644 --- a/indra/llwindow/lldragdropwin32.cpp +++ b/indra/llwindow/lldragdropwin32.cpp @@ -50,7 +50,8 @@ class LLDragDropWin32Target: LLDragDropWin32Target( HWND hWnd ) : mRefCount( 1 ), mAppWindowHandle( hWnd ), - mAllowDrop( false) + mAllowDrop(false), + mIsSlurl(false) { }; diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h index 127dbf45e0..55b221e716 100644 --- a/indra/llwindow/llwindow.h +++ b/indra/llwindow/llwindow.h @@ -37,6 +37,7 @@ #include "llcoord.h" #include "llstring.h" #include "llcursortypes.h" +#include "llsd.h" class LLSplashScreen; class LLPreeditor; @@ -162,6 +163,9 @@ public: virtual void spawnWebBrowser(const std::string& escaped_url) {}; static std::vector<std::string> getDynamicFallbackFontList(); + + // Provide native key event data + virtual LLSD getNativeKeyData() { return LLSD::emptyMap(); } protected: LLWindow(LLWindowCallbacks* callbacks, BOOL fullscreen, U32 flags); diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 9ccd4c7f97..ad97bc45fc 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -260,6 +260,7 @@ LLWindowMacOSX::LLWindowMacOSX(LLWindowCallbacks* callbacks, mTSMScriptCode = 0; mTSMLangCode = 0; mPreeditor = NULL; + mRawKeyEvent = NULL; mFSAASamples = fsaa_samples; mForceRebuild = FALSE; @@ -2140,10 +2141,11 @@ OSStatus LLWindowMacOSX::eventHandler (EventHandlerCallRef myHandler, EventRef e { UInt32 modifiers = 0; + // First, process the raw event. { - EventRef rawEvent; - + EventRef rawEvent = NULL; + // Get the original event and extract the modifier keys, so we can ignore command-key events. if (GetEventParameter(event, kEventParamTextInputSendKeyboardEvent, typeEventRef, NULL, sizeof(rawEvent), NULL, &rawEvent) == noErr) { @@ -2152,6 +2154,9 @@ OSStatus LLWindowMacOSX::eventHandler (EventHandlerCallRef myHandler, EventRef e // and call this function recursively to handle the raw key event. eventHandler (myHandler, rawEvent); + + // save the raw event until we're done processing the unicode input as well. + mRawKeyEvent = rawEvent; } } @@ -2202,6 +2207,7 @@ OSStatus LLWindowMacOSX::eventHandler (EventHandlerCallRef myHandler, EventRef e delete[] buffer; } + mRawKeyEvent = NULL; result = err; } break; @@ -2276,6 +2282,9 @@ OSStatus LLWindowMacOSX::eventHandler (EventHandlerCallRef myHandler, EventRef e GetEventParameter (event, kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode); GetEventParameter (event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers); + // save the raw event so getNativeKeyData can use it. + mRawKeyEvent = event; + // printf("key event, key code = 0x%08x, char code = 0x%02x (%c), modifiers = 0x%08x\n", keyCode, charCode, (char)charCode, modifiers); // fflush(stdout); @@ -2371,6 +2380,8 @@ OSStatus LLWindowMacOSX::eventHandler (EventHandlerCallRef myHandler, EventRef e result = eventNotHandledErr; break; } + + mRawKeyEvent = NULL; } break; @@ -3211,6 +3222,60 @@ void LLWindowMacOSX::spawnWebBrowser(const std::string& escaped_url) } } +LLSD LLWindowMacOSX::getNativeKeyData() +{ + LLSD result = LLSD::emptyMap(); + + if(mRawKeyEvent) + { + char char_code = 0; + UInt32 key_code = 0; + UInt32 modifiers = 0; + UInt32 keyboard_type = 0; + + GetEventParameter (mRawKeyEvent, kEventParamKeyMacCharCodes, typeChar, NULL, sizeof(char), NULL, &char_code); + GetEventParameter (mRawKeyEvent, kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &key_code); + GetEventParameter (mRawKeyEvent, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers); + GetEventParameter (mRawKeyEvent, kEventParamKeyboardType, typeUInt32, NULL, sizeof(UInt32), NULL, &keyboard_type); + + result["char_code"] = (S32)char_code; + result["key_code"] = (S32)key_code; + result["modifiers"] = (S32)modifiers; + result["keyboard_type"] = (S32)keyboard_type; + +#if 0 + // This causes trouble for control characters -- apparently character codes less than 32 (escape, control-A, etc) + // cause llsd serialization to create XML that the llsd deserializer won't parse! + std::string unicode; + OSStatus err = noErr; + EventParamType actualType = typeUTF8Text; + UInt32 actualSize = 0; + char *buffer = NULL; + + err = GetEventParameter (mRawKeyEvent, kEventParamKeyUnicodes, typeUTF8Text, &actualType, 0, &actualSize, NULL); + if(err == noErr) + { + // allocate a buffer and get the actual data. + buffer = new char[actualSize]; + err = GetEventParameter (mRawKeyEvent, kEventParamKeyUnicodes, typeUTF8Text, &actualType, actualSize, &actualSize, buffer); + if(err == noErr) + { + unicode.assign(buffer, actualSize); + } + delete[] buffer; + } + + result["unicode"] = unicode; +#endif + + } + + + lldebugs << "native key data is: " << result << llendl; + + return result; +} + BOOL LLWindowMacOSX::dialogColorPicker( F32 *r, F32 *g, F32 *b) { diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h index 377f10b6d4..7c6b324029 100644 --- a/indra/llwindow/llwindowmacosx.h +++ b/indra/llwindow/llwindowmacosx.h @@ -120,6 +120,10 @@ public: static std::vector<std::string> getDynamicFallbackFontList(); + // Provide native key event data + /*virtual*/ LLSD getNativeKeyData(); + + protected: LLWindowMacOSX(LLWindowCallbacks* callbacks, const std::string& title, const std::string& name, int x, int y, int width, int height, U32 flags, @@ -218,6 +222,7 @@ protected: friend class LLWindowManager; static WindowRef sMediaWindow; + EventRef mRawKeyEvent; }; diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index f9c3694459..7cd06c9c37 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -251,6 +251,10 @@ LLWindowSDL::LLWindowSDL(LLWindowCallbacks* callbacks, #if LL_X11 mFlashing = FALSE; #endif // LL_X11 + + mKeyScanCode = 0; + mKeyVirtualKey = 0; + mKeyModifiers = KMOD_NONE; } static SDL_Surface *Load_BMP_Resource(const char *basename) @@ -1651,24 +1655,32 @@ void LLWindowSDL::gatherInput() } case SDL_KEYDOWN: - gKeyboard->handleKeyDown(event.key.keysym.sym, event.key.keysym.mod); - // part of the fix for SL-13243 - if (SDLCheckGrabbyKeys(event.key.keysym.sym, TRUE) != 0) - SDLReallyCaptureInput(TRUE); - - if (event.key.keysym.unicode) - { - handleUnicodeUTF16(event.key.keysym.unicode, - gKeyboard->currentMask(FALSE)); - } + mKeyScanCode = event.key.keysym.scancode; + mKeyVirtualKey = event.key.keysym.unicode; + mKeyModifiers = event.key.keysym.mod; + + gKeyboard->handleKeyDown(event.key.keysym.sym, event.key.keysym.mod); + // part of the fix for SL-13243 + if (SDLCheckGrabbyKeys(event.key.keysym.sym, TRUE) != 0) + SDLReallyCaptureInput(TRUE); + + if (event.key.keysym.unicode) + { + handleUnicodeUTF16(event.key.keysym.unicode, + gKeyboard->currentMask(FALSE)); + } break; case SDL_KEYUP: - if (SDLCheckGrabbyKeys(event.key.keysym.sym, FALSE) == 0) - SDLReallyCaptureInput(FALSE); // part of the fix for SL-13243 + mKeyScanCode = event.key.keysym.scancode; + mKeyVirtualKey = event.key.keysym.unicode; + mKeyModifiers = event.key.keysym.mod; - gKeyboard->handleKeyUp(event.key.keysym.sym, event.key.keysym.mod); - break; + if (SDLCheckGrabbyKeys(event.key.keysym.sym, FALSE) == 0) + SDLReallyCaptureInput(FALSE); // part of the fix for SL-13243 + + gKeyboard->handleKeyUp(event.key.keysym.sym, event.key.keysym.mod); + break; case SDL_MOUSEBUTTONDOWN: { @@ -2224,6 +2236,39 @@ static void color_changed_callback(GtkWidget *widget, gtk_color_selection_get_current_color(colorsel, colorp); } + +/* + Make the raw keyboard data available - used to poke through to LLQtWebKit so + that Qt/Webkit has access to the virtual keycodes etc. that it needs +*/ +LLSD LLWindowSDL::getNativeKeyData() +{ + LLSD result = LLSD::emptyMap(); + + U32 modifiers = 0; // pretend-native modifiers... oh what a tangled web we weave! + + // we go through so many levels of device abstraction that I can't really guess + // what a plugin under GDK under Qt under SL under SDL under X11 considers + // a 'native' modifier mask. this has been sort of reverse-engineered... they *appear* + // to match GDK consts, but that may be co-incidence. + modifiers |= (mKeyModifiers & KMOD_LSHIFT) ? 0x0001 : 0; + modifiers |= (mKeyModifiers & KMOD_RSHIFT) ? 0x0001 : 0;// munge these into the same shift + modifiers |= (mKeyModifiers & KMOD_CAPS) ? 0x0002 : 0; + modifiers |= (mKeyModifiers & KMOD_LCTRL) ? 0x0004 : 0; + modifiers |= (mKeyModifiers & KMOD_RCTRL) ? 0x0004 : 0;// munge these into the same ctrl + modifiers |= (mKeyModifiers & KMOD_LALT) ? 0x0008 : 0;// untested + modifiers |= (mKeyModifiers & KMOD_RALT) ? 0x0008 : 0;// untested + // *todo: test ALTs - I don't have a case for testing these. Do you? + // *todo: NUM? - I don't care enough right now (and it's not a GDK modifier). + + result["scan_code"] = (S32)mKeyScanCode; + result["virtual_key"] = (S32)mKeyVirtualKey; + result["modifiers"] = (S32)modifiers; + + return result; +} + + BOOL LLWindowSDL::dialogColorPicker( F32 *r, F32 *g, F32 *b) { BOOL rtn = FALSE; diff --git a/indra/llwindow/llwindowsdl.h b/indra/llwindow/llwindowsdl.h index 0ba1c861da..e6bdd46a77 100644 --- a/indra/llwindow/llwindowsdl.h +++ b/indra/llwindow/llwindowsdl.h @@ -102,7 +102,7 @@ public: /*virtual*/ void gatherInput(); /*virtual*/ void swapBuffers(); - /*virtual*/ void delayInputProcessing() { }; + /*virtual*/ void delayInputProcessing() { }; // handy coordinate space conversion routines /*virtual*/ BOOL convertCoords(LLCoordScreen from, LLCoordWindow *to); @@ -155,12 +155,13 @@ protected: BOOL ignore_pixel_depth, U32 fsaa_samples); ~LLWindowSDL(); + /*virtual*/ BOOL isValid(); + /*virtual*/ LLSD getNativeKeyData(); + void initCursors(); void quitCursors(); - BOOL isValid(); void moveWindow(const LLCoordScreen& position,const LLCoordScreen& size); - // Changes display resolution. Returns true if successful BOOL setDisplayResolution(S32 width, S32 height, S32 bits, S32 refresh); @@ -204,12 +205,16 @@ protected: friend class LLWindowManager; -#if LL_X11 private: +#if LL_X11 void x11_set_urgent(BOOL urgent); BOOL mFlashing; LLTimer mFlashTimer; #endif //LL_X11 + + U32 mKeyScanCode; + U32 mKeyVirtualKey; + SDLMod mKeyModifiers; }; diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 57a4921d92..c80392ad45 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -378,6 +378,9 @@ LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks, mMousePositionModified = FALSE; mInputProcessingPaused = FALSE; mPreeditor = NULL; + mKeyCharCode = 0; + mKeyScanCode = 0; + mKeyVirtualKey = 0; mhDC = NULL; mhRC = NULL; @@ -1872,6 +1875,10 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_ // allow system keys, such as ALT-F4 to be processed by Windows eat_keystroke = FALSE; case WM_KEYDOWN: + window_imp->mKeyCharCode = 0; // don't know until wm_char comes in next + window_imp->mKeyScanCode = ( l_param >> 16 ) & 0xff; + window_imp->mKeyVirtualKey = w_param; + window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_KEYDOWN"); { if (gDebugWindowProc) @@ -1891,6 +1898,9 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_ eat_keystroke = FALSE; case WM_KEYUP: { + window_imp->mKeyScanCode = ( l_param >> 16 ) & 0xff; + window_imp->mKeyVirtualKey = w_param; + window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_KEYUP"); LLFastTimer t2(FTM_KEYHANDLER); @@ -1976,6 +1986,8 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_ break; case WM_CHAR: + window_imp->mKeyCharCode = w_param; + // Should really use WM_UNICHAR eventually, but it requires a specific Windows version and I need // to figure out how that works. - Doug // @@ -3051,6 +3063,19 @@ void LLWindowWin32::spawnWebBrowser(const std::string& escaped_url ) */ } +/* + Make the raw keyboard data available - used to poke through to LLQtWebKit so + that Qt/Webkit has access to the virtual keycodes etc. that it needs +*/ +LLSD LLWindowWin32::getNativeKeyData() +{ + LLSD result = LLSD::emptyMap(); + + result["scan_code"] = (S32)mKeyScanCode; + result["virtual_key"] = (S32)mKeyVirtualKey; + + return result; +} BOOL LLWindowWin32::dialogColorPicker( F32 *r, F32 *g, F32 *b ) { diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h index 6aca31b63e..9d57735772 100644 --- a/indra/llwindow/llwindowwin32.h +++ b/indra/llwindow/llwindowwin32.h @@ -132,7 +132,7 @@ protected: HCURSOR loadColorCursor(LPCTSTR name); BOOL isValid(); void moveWindow(const LLCoordScreen& position,const LLCoordScreen& size); - + LLSD getNativeKeyData(); // Changes display resolution. Returns true if successful BOOL setDisplayResolution(S32 width, S32 height, S32 bits, S32 refresh); @@ -211,6 +211,10 @@ protected: LLDragDropWin32* mDragDrop; + U32 mKeyCharCode; + U32 mKeyScanCode; + U32 mKeyVirtualKey; + friend class LLWindowManager; }; diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index b607d2f66a..688d3bcd3d 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -43,21 +43,15 @@ #include "llpluginmessageclasses.h" #include "media_plugin_base.h" -#if LL_LINUX -extern "C" { -# include <glib.h> -} -#endif // LL_LINUX - #if LL_WINDOWS -# include <direct.h> +#include <direct.h> #else -# include <unistd.h> -# include <stdlib.h> +#include <unistd.h> +#include <stdlib.h> #endif #if LL_WINDOWS - // *NOTE:Mani - This captures the module handle for the dll. This is used below + // *NOTE:Mani - This captures the module handle fo rthe dll. This is used below // to get the path to this dll for webkit initialization. // I don't know how/if this can be done with apr... namespace { HMODULE gModuleHandle;}; @@ -118,16 +112,6 @@ private: // void update(int milliseconds) { -#if LL_LINUX - // pump glib generously, as Linux browser plugins are on the - // glib main loop, even if the browser itself isn't - ugh - //*TODO: shouldn't this be transparent if Qt was compiled with - // glib mainloop integration? investigate. - GMainContext *mainc = g_main_context_default(); - while(g_main_context_iteration(mainc, FALSE)); -#endif // LL_LINUX - - // pump qt LLQtWebKit::getInstance()->pump( milliseconds ); checkEditState(); @@ -486,92 +470,96 @@ private: return (LLQtWebKit::EKeyboardModifier)result; } - //////////////////////////////////////////////////////////////////////////////// // - void keyEvent(LLQtWebKit::EKeyEvent key_event, int key, LLQtWebKit::EKeyboardModifier modifiers) + void deserializeKeyboardData( LLSD native_key_data, uint32_t& native_scan_code, uint32_t& native_virtual_key, uint32_t& native_modifiers ) { - int llqt_key; + native_scan_code = 0; + native_virtual_key = 0; + native_modifiers = 0; + if( native_key_data.isMap() ) + { +#if LL_DARWIN + native_scan_code = (uint32_t)(native_key_data["char_code"].asInteger()); + native_virtual_key = (uint32_t)(native_key_data["key_code"].asInteger()); + native_modifiers = (uint32_t)(native_key_data["modifiers"].asInteger()); +#elif LL_WINDOWS + native_scan_code = (uint32_t)(native_key_data["scan_code"].asInteger()); + native_virtual_key = (uint32_t)(native_key_data["virtual_key"].asInteger()); + // TODO: I don't think we need to do anything with native modifiers here -- please verify +#elif LL_LINUX + native_scan_code = (uint32_t)(native_key_data["scan_code"].asInteger()); + native_virtual_key = (uint32_t)(native_key_data["virtual_key"].asInteger()); + native_modifiers = (uint32_t)(native_key_data["modifiers"].asInteger()); +#else + // Add other platforms here as needed +#endif + }; + }; + + //////////////////////////////////////////////////////////////////////////////// + // + void keyEvent(LLQtWebKit::EKeyEvent key_event, int key, LLQtWebKit::EKeyboardModifier modifiers, LLSD native_key_data = LLSD::emptyMap()) + { // The incoming values for 'key' will be the ones from indra_constants.h - // the outgoing values are the ones from llqtwebkit.h + std::string utf8_text; + if(key < KEY_SPECIAL) + { + // Low-ascii characters need to get passed through. + utf8_text = (char)key; + } + + // Any special-case handling we want to do for particular keys... switch((KEY)key) { - // This is the list that the llqtwebkit implementation actually maps into Qt keys. -// case KEY_XXX: llqt_key = LL_DOM_VK_CANCEL; break; -// case KEY_XXX: llqt_key = LL_DOM_VK_HELP; break; - case KEY_BACKSPACE: llqt_key = LL_DOM_VK_BACK_SPACE; break; - case KEY_TAB: llqt_key = LL_DOM_VK_TAB; break; -// case KEY_XXX: llqt_key = LL_DOM_VK_CLEAR; break; - case KEY_RETURN: llqt_key = LL_DOM_VK_RETURN; break; - case KEY_PAD_RETURN: llqt_key = LL_DOM_VK_ENTER; break; - case KEY_SHIFT: llqt_key = LL_DOM_VK_SHIFT; break; - case KEY_CONTROL: llqt_key = LL_DOM_VK_CONTROL; break; - case KEY_ALT: llqt_key = LL_DOM_VK_ALT; break; -// case KEY_XXX: llqt_key = LL_DOM_VK_PAUSE; break; - case KEY_CAPSLOCK: llqt_key = LL_DOM_VK_CAPS_LOCK; break; - case KEY_ESCAPE: llqt_key = LL_DOM_VK_ESCAPE; break; - case KEY_PAGE_UP: llqt_key = LL_DOM_VK_PAGE_UP; break; - case KEY_PAGE_DOWN: llqt_key = LL_DOM_VK_PAGE_DOWN; break; - case KEY_END: llqt_key = LL_DOM_VK_END; break; - case KEY_HOME: llqt_key = LL_DOM_VK_HOME; break; - case KEY_LEFT: llqt_key = LL_DOM_VK_LEFT; break; - case KEY_UP: llqt_key = LL_DOM_VK_UP; break; - case KEY_RIGHT: llqt_key = LL_DOM_VK_RIGHT; break; - case KEY_DOWN: llqt_key = LL_DOM_VK_DOWN; break; -// case KEY_XXX: llqt_key = LL_DOM_VK_PRINTSCREEN; break; - case KEY_INSERT: llqt_key = LL_DOM_VK_INSERT; break; - case KEY_DELETE: llqt_key = LL_DOM_VK_DELETE; break; -// case KEY_XXX: llqt_key = LL_DOM_VK_CONTEXT_MENU; break; + // ASCII codes for some standard keys + case LLQtWebKit::KEY_BACKSPACE: utf8_text = (char)8; break; + case LLQtWebKit::KEY_TAB: utf8_text = (char)9; break; + case LLQtWebKit::KEY_RETURN: utf8_text = (char)13; break; + case LLQtWebKit::KEY_PAD_RETURN: utf8_text = (char)13; break; + case LLQtWebKit::KEY_ESCAPE: utf8_text = (char)27; break; - default: - if(key < KEY_SPECIAL) - { - // Pass the incoming key through -- it should be regular ASCII, which should be correct for webkit. - llqt_key = key; - } - else - { - // Don't pass through untranslated special keys -- they'll be all wrong. - llqt_key = 0; - } + default: break; } -// std::cerr << "keypress, original code = 0x" << std::hex << key << ", converted code = 0x" << std::hex << llqt_key << std::dec << std::endl; +// std::cerr << "key event " << (int)key_event << ", native_key_data = " << native_key_data << std::endl; - if(llqt_key != 0) - { - LLQtWebKit::getInstance()->keyEvent( mBrowserWindowId, key_event, llqt_key, modifiers); - } + uint32_t native_scan_code = 0; + uint32_t native_virtual_key = 0; + uint32_t native_modifiers = 0; + deserializeKeyboardData( native_key_data, native_scan_code, native_virtual_key, native_modifiers ); + + LLQtWebKit::getInstance()->keyboardEvent( mBrowserWindowId, key_event, (uint32_t)key, utf8_text.c_str(), modifiers, native_scan_code, native_virtual_key, native_modifiers); checkEditState(); }; //////////////////////////////////////////////////////////////////////////////// // - void unicodeInput( const std::string &utf8str, LLQtWebKit::EKeyboardModifier modifiers) - { - LLWString wstr = utf8str_to_wstring(utf8str); + void unicodeInput( const std::string &utf8str, LLQtWebKit::EKeyboardModifier modifiers, LLSD native_key_data = LLSD::emptyMap()) + { + uint32_t key = LLQtWebKit::KEY_NONE; - unsigned int i; - for(i=0; i < wstr.size(); i++) +// std::cerr << "unicode input, native_key_data = " << native_key_data << std::endl; + + if(utf8str.size() == 1) { -// std::cerr << "unicode input, code = 0x" << std::hex << (unsigned long)(wstr[i]) << std::dec << std::endl; - - if(wstr[i] == 32) - { - // For some reason, the webkit plugin really wants the space bar to come in through the key-event path, not the unicode path. - LLQtWebKit::getInstance()->keyEvent( mBrowserWindowId, LLQtWebKit::KE_KEY_DOWN, 32, modifiers); - LLQtWebKit::getInstance()->keyEvent( mBrowserWindowId, LLQtWebKit::KE_KEY_UP, 32, modifiers); - } - else - { - LLQtWebKit::getInstance()->unicodeInput(mBrowserWindowId, wstr[i], modifiers); - } + // The only way a utf8 string can be one byte long is if it's actually a single 7-bit ascii character. + // In this case, use it as the key value. + key = utf8str[0]; } + uint32_t native_scan_code = 0; + uint32_t native_virtual_key = 0; + uint32_t native_modifiers = 0; + deserializeKeyboardData( native_key_data, native_scan_code, native_virtual_key, native_modifiers ); + + LLQtWebKit::getInstance()->keyboardEvent( mBrowserWindowId, LLQtWebKit::KE_KEY_DOWN, (uint32_t)key, utf8str.c_str(), modifiers, native_scan_code, native_virtual_key, native_modifiers); + LLQtWebKit::getInstance()->keyboardEvent( mBrowserWindowId, LLQtWebKit::KE_KEY_UP, (uint32_t)key, utf8str.c_str(), modifiers, native_scan_code, native_virtual_key, native_modifiers); + checkEditState(); }; @@ -871,6 +859,7 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) std::string event = message_in.getValue("event"); S32 key = message_in.getValueS32("key"); std::string modifiers = message_in.getValue("modifiers"); + LLSD native_key_data = message_in.getValueLLSD("native_key_data"); // Treat unknown events as key-up for safety. LLQtWebKit::EKeyEvent key_event = LLQtWebKit::KE_KEY_UP; @@ -883,14 +872,15 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) key_event = LLQtWebKit::KE_KEY_REPEAT; } - keyEvent(key_event, key, decodeModifiers(modifiers)); + keyEvent(key_event, key, decodeModifiers(modifiers), native_key_data); } else if(message_name == "text_event") { std::string text = message_in.getValue("text"); std::string modifiers = message_in.getValue("modifiers"); + LLSD native_key_data = message_in.getValueLLSD("native_key_data"); - unicodeInput(text, decodeModifiers(modifiers)); + unicodeInput(text, decodeModifiers(modifiers), native_key_data); } if(message_name == "edit_cut") { diff --git a/indra/newview/app_settings/ignorable_dialogs.xml b/indra/newview/app_settings/ignorable_dialogs.xml index e825f13e82..d0e1f62a84 100644 --- a/indra/newview/app_settings/ignorable_dialogs.xml +++ b/indra/newview/app_settings/ignorable_dialogs.xml @@ -177,17 +177,6 @@ <key>Value</key> <integer>1</integer> </map> - <key>FirstStreamingMedia</key> - <map> - <key>Comment</key> - <string>Enables FirstStreamingMedia warning dialog</string> - <key>Persist</key> - <integer>1</integer> - <key>Type</key> - <string>Boolean</string> - <key>Value</key> - <integer>1</integer> - </map> <key>FirstTeleport</key> <map> <key>Comment</key> diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 923ba44906..db4e0b5afd 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4633,6 +4633,17 @@ <key>Value</key> <integer>410</integer> </map> + <key>MePanelOpened</key> + <map> + <key>Comment</key> + <string>Indicates that Me Panel was opened at least once after Viewer was installed</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <real>0</real> + </map> <key>MigrateCacheDirectory</key> <map> <key>Comment</key> @@ -9938,28 +9949,6 @@ <key>Value</key> <integer>15</integer> </map> - <key>UIButtonImageLeftPadding</key> - <map> - <key>Comment</key> - <string>Button Overlay Image Left Padding</string> - <key>Persist</key> - <integer>1</integer> - <key>Type</key> - <string>S32</string> - <key>Value</key> - <integer>4</integer> - </map> - <key>UIButtonImageRightPadding</key> - <map> - <key>Comment</key> - <string>Button Overlay Image Right Padding</string> - <key>Persist</key> - <integer>1</integer> - <key>Type</key> - <string>S32</string> - <key>Value</key> - <integer>4</integer> - </map> <key>UIButtonImageTopPadding</key> <map> <key>Comment</key> diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 2354323a66..59f61dfdfb 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -956,6 +956,7 @@ void LLAgent::sendMessage() if (!mRegionp) { llerrs << "No region for agent yet!" << llendl; + return; } gMessageSystem->sendMessage(mRegionp->getHost()); } @@ -4482,7 +4483,9 @@ void LLAgent::setCameraPosAndFocusGlobal(const LLVector3d& camera_pos, const LLV { const F64 ANIM_METERS_PER_SECOND = 10.0; const F64 MIN_ANIM_SECONDS = 0.5; + const F64 MAX_ANIM_SECONDS = 10.0; F64 anim_duration = llmax( MIN_ANIM_SECONDS, sqrt(focus_delta_squared) / ANIM_METERS_PER_SECOND ); + anim_duration = llmin( anim_duration, MAX_ANIM_SECONDS ); setAnimationDuration( (F32)anim_duration ); } diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 7cbd7e46a9..6620780b27 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -310,21 +310,24 @@ void LLAgentWearables::addWearabletoAgentInventoryDone(const S32 type, return; LLUUID old_item_id = getWearableItemID((EWearableType)type,index); + if (wearable) { wearable->setItemID(item_id); - } - if (old_item_id.notNull()) - { - gInventory.addChangedMask(LLInventoryObserver::LABEL, old_item_id); - setWearable((EWearableType)type,index,wearable); - } - else - { - pushWearable((EWearableType)type,wearable); + if (old_item_id.notNull()) + { + gInventory.addChangedMask(LLInventoryObserver::LABEL, old_item_id); + setWearable((EWearableType)type,index,wearable); + } + else + { + pushWearable((EWearableType)type,wearable); + } } + gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id); + LLViewerInventoryItem* item = gInventory.getItem(item_id); if (item && wearable) { @@ -1412,7 +1415,7 @@ LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name) new_folder_name); LLPointer<LLInventoryCallback> cb = new LLShowCreatedOutfit(folder_id); - LLAppearanceManager::instance().shallowCopyCategory(LLAppearanceManager::instance().getCOF(),folder_id, cb); + LLAppearanceManager::instance().shallowCopyCategoryContents(LLAppearanceManager::instance().getCOF(),folder_id, cb); LLAppearanceManager::instance().createBaseOutfitLink(folder_id, cb); return folder_id; @@ -1618,8 +1621,10 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it } if (new_wearable) + { new_wearable->setItemID(new_item->getUUID()); - setWearable(type,0,new_wearable); + setWearable(type,0,new_wearable); + } } std::vector<LLWearable*> wearables_being_removed; @@ -2329,7 +2334,7 @@ void LLLibraryOutfitsFetch::libraryDone(void) LLUUID folder_id = gInventory.createNewCategory(mImportedClothingID, LLFolderType::FT_NONE, iter->second); - LLAppearanceManager::getInstance()->shallowCopyCategory(iter->first, folder_id, copy_waiter); + LLAppearanceManager::getInstance()->shallowCopyCategoryContents(iter->first, folder_id, copy_waiter); } } else diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 326fc41c1e..0cceba6cb0 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -48,6 +48,31 @@ #include "llviewerregion.h" #include "llwearablelist.h" +LLUUID findDescendentCategoryIDByName(const LLUUID& parent_id,const std::string& name) +{ + LLInventoryModel::cat_array_t cat_array; + LLInventoryModel::item_array_t item_array; + LLNameCategoryCollector has_name(name); + gInventory.collectDescendentsIf(parent_id, + cat_array, + item_array, + LLInventoryModel::EXCLUDE_TRASH, + has_name); + if (0 == cat_array.count()) + return LLUUID(); + else + { + LLViewerInventoryCategory *cat = cat_array.get(0); + if (cat) + return cat->getUUID(); + else + { + llwarns << "null cat" << llendl; + return LLUUID(); + } + } +} + // support for secondlife:///app/appearance SLapps class LLAppearanceHandler : public LLCommandHandler { @@ -519,9 +544,33 @@ void LLAppearanceManager::changeOutfit(bool proceed, const LLUUID& category, boo LLAppearanceManager::instance().updateCOF(category,append); } +// Create a copy of src_id + contents as a subfolder of dst_id. void LLAppearanceManager::shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id, LLPointer<LLInventoryCallback> cb) { + LLInventoryCategory *src_cat = gInventory.getCategory(src_id); + if (!src_cat) + { + llwarns << "folder not found for src " << src_id.asString() << llendl; + return; + } + LLUUID parent_id = dst_id; + if(parent_id.isNull()) + { + parent_id = gInventory.getRootFolderID(); + } + LLUUID subfolder_id = gInventory.createNewCategory( parent_id, + LLFolderType::FT_NONE, + src_cat->getName()); + shallowCopyCategoryContents(src_id, subfolder_id, cb); + + gInventory.notifyObservers(); +} + +// Copy contents of src_id to dst_id. +void LLAppearanceManager::shallowCopyCategoryContents(const LLUUID& src_id, const LLUUID& dst_id, + LLPointer<LLInventoryCallback> cb) +{ LLInventoryModel::cat_array_t cats; LLInventoryModel::item_array_t items; gInventory.collectDescendents(src_id, cats, items, diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 38d1e01d08..5fdff45735 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -35,6 +35,8 @@ #include "llsingleton.h" #include "llinventorymodel.h" +#include "llinventoryobserver.h" +#include "llviewerinventory.h" #include "llcallbacklist.h" class LLWearable; @@ -54,10 +56,14 @@ public: void wearOutfitByName(const std::string& name); void changeOutfit(bool proceed, const LLUUID& category, bool append); - // Copy all items in a category. + // Copy all items and the src category itself. void shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id, LLPointer<LLInventoryCallback> cb); + // Copy all items in a category. + void shallowCopyCategoryContents(const LLUUID& src_id, const LLUUID& dst_id, + LLPointer<LLInventoryCallback> cb); + // Find the Current Outfit folder. const LLUUID getCOF() const; @@ -144,6 +150,8 @@ public: #define SUPPORT_ENSEMBLES 0 +LLUUID findDescendentCategoryIDByName(const LLUUID& parent_id,const std::string& name); + // Shim class and template function to allow arbitrary boost::bind // expressions to be run as one-time idle callbacks. template <typename T> @@ -212,4 +220,103 @@ void doOnIdleRepeating(T callable) gIdleCallbacks.addFunction(&OnIdleCallbackRepeating<T>::onIdle,cb_functor); } +template <class T> +class CallAfterCategoryFetchStage2: public LLInventoryFetchObserver +{ +public: + CallAfterCategoryFetchStage2(T callable): + mCallable(callable) + { + } + ~CallAfterCategoryFetchStage2() + { + } + virtual void done() + { + gInventory.removeObserver(this); + doOnIdle(mCallable); + delete this; + } +protected: + T mCallable; +}; + +template <class T> +class CallAfterCategoryFetchStage1: public LLInventoryFetchDescendentsObserver +{ +public: + CallAfterCategoryFetchStage1(T callable): + mCallable(callable) + { + } + ~CallAfterCategoryFetchStage1() + { + } + virtual void done() + { + // What we do here is get the complete information on the items in + // the library, and set up an observer that will wait for that to + // happen. + LLInventoryModel::cat_array_t cat_array; + LLInventoryModel::item_array_t item_array; + gInventory.collectDescendents(mCompleteFolders.front(), + cat_array, + item_array, + LLInventoryModel::EXCLUDE_TRASH); + S32 count = item_array.count(); + if(!count) + { + llwarns << "Nothing fetched in category " << mCompleteFolders.front() + << llendl; + //dec_busy_count(); + gInventory.removeObserver(this); + delete this; + return; + } + + CallAfterCategoryFetchStage2<T> *stage2 = new CallAfterCategoryFetchStage2<T>(mCallable); + LLInventoryFetchObserver::item_ref_t ids; + for(S32 i = 0; i < count; ++i) + { + ids.push_back(item_array.get(i)->getUUID()); + } + + gInventory.removeObserver(this); + + // do the fetch + stage2->fetchItems(ids); + if(stage2->isEverythingComplete()) + { + // everything is already here - call done. + stage2->done(); + } + else + { + // it's all on it's way - add an observer, and the inventory + // will call done for us when everything is here. + gInventory.addObserver(stage2); + } + delete this; + } +protected: + T mCallable; +}; + +template <class T> +void callAfterCategoryFetch(const LLUUID& cat_id, T callable) +{ + CallAfterCategoryFetchStage1<T> *stage1 = new CallAfterCategoryFetchStage1<T>(callable); + LLInventoryFetchDescendentsObserver::folder_ref_t folders; + folders.push_back(cat_id); + stage1->fetchDescendents(folders); + if (stage1->isEverythingComplete()) + { + stage1->done(); + } + else + { + gInventory.addObserver(stage1); + } +} + #endif diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index a3720769a1..00a9e4d745 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -40,6 +40,7 @@ #include "lluictrlfactory.h" #include "lltexteditor.h" #include "llerrorcontrol.h" +#include "lleventtimer.h" #include "llviewertexturelist.h" #include "llgroupmgr.h" #include "llagent.h" @@ -1678,7 +1679,7 @@ bool LLAppViewer::initThreads() // Image decoding LLAppViewer::sImageDecodeThread = new LLImageDecodeThread(enable_threads && true); LLAppViewer::sTextureCache = new LLTextureCache(enable_threads && true); - LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(), sImageDecodeThread, enable_threads && false); + LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(), sImageDecodeThread, enable_threads && true); LLImage::initClass(); if (LLFastTimer::sLog || LLFastTimer::sMetricLog) @@ -1932,7 +1933,6 @@ bool LLAppViewer::initConfiguration() // LLFirstUse::addConfigVariable("FirstSandbox"); // LLFirstUse::addConfigVariable("FirstFlexible"); // LLFirstUse::addConfigVariable("FirstDebugMenus"); -// LLFirstUse::addConfigVariable("FirstStreamingMedia"); // LLFirstUse::addConfigVariable("FirstSculptedPrim"); // LLFirstUse::addConfigVariable("FirstVoice"); // LLFirstUse::addConfigVariable("FirstMedia"); @@ -3004,7 +3004,7 @@ bool LLAppViewer::initCache() // Purge cache if it belongs to an old version else { - static const S32 cache_version = 5; + static const S32 cache_version = 6; if (gSavedSettings.getS32("LocalCacheVersion") != cache_version) { mPurgeCache = true; diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index a011c5ebfd..a915b7fa50 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -36,6 +36,7 @@ #include "llallocator.h" #include "llcontrol.h" #include "llsys.h" // for LLOSInfo +#include "lltimer.h" class LLCommandLineParser; class LLFrameTimer; diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index bd987eac77..1d75374930 100644 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -181,7 +181,12 @@ void LLAvatarActions::startIM(const LLUUID& id) return; std::string name; - gCacheName->getFullName(id, name); + if (!gCacheName->getFullName(id, name)) + { + gCacheName->get(id, FALSE, boost::bind(&LLAvatarActions::startIM, id)); + return; + } + LLUUID session_id = gIMMgr->addSession(name, IM_NOTHING_SPECIAL, id); if (session_id != LLUUID::null) { diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index d405c1bbc1..0aaaa8e705 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -303,8 +303,8 @@ void LLCallFloater::updateSession() refreshParticipantList(); updateAgentModeratorState(); - //show floater for voice calls - if (!is_local_chat) + //show floater for voice calls & only in CONNECTED to voice channel state + if (!is_local_chat && LLVoiceChannel::STATE_CONNECTED == voice_channel->getState()) { LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); bool show_me = !(im_floater && im_floater->getVisible()); @@ -678,8 +678,7 @@ void LLCallFloater::resetVoiceRemoveTimers() void LLCallFloater::removeVoiceRemoveTimer(const LLUUID& voice_speaker_id) { - bool delete_it = true; - mSpeakerDelayRemover->unsetActionTimer(voice_speaker_id, delete_it); + mSpeakerDelayRemover->unsetActionTimer(voice_speaker_id); } bool LLCallFloater::validateSpeaker(const LLUUID& speaker_id) diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp index d988770f90..996139fccc 100644 --- a/indra/newview/llcallingcard.cpp +++ b/indra/newview/llcallingcard.cpp @@ -56,6 +56,7 @@ #include "llnotifications.h" #include "llnotificationsutil.h" #include "llresmgr.h" +#include "llslurl.h" #include "llimview.h" #include "llviewercontrol.h" #include "llviewernetwork.h" @@ -689,13 +690,8 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online) setBuddyOnline(agent_id,online); if(chat_notify) { - std::string first, last; - if(gCacheName->getName(agent_id, first, last)) - { - notify = TRUE; - args["FIRST"] = first; - args["LAST"] = last; - } + notify = TRUE; + args["NAME_SLURL"] = LLSLURL::buildCommand("agent", agent_id, "about"); } } else diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 3aea70d1b4..13a5df353d 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -116,7 +116,7 @@ public: //*TODO remake it using mouse enter/leave and static LLHandle<LLIconCtrl> to add/remove as a child BOOL handleToolTip(S32 x, S32 y, MASK mask) { - LLViewerTextEditor* name = getChild<LLViewerTextEditor>("user_name"); + LLTextBase* name = getChild<LLTextBase>("user_name"); if (name && name->parentPointInView(x, y) && mAvatarID.notNull() && SYSTEM_FROM != mFrom) { @@ -289,7 +289,12 @@ public: if(!chat.mFromID.isNull()) { - icon->setValue(chat.mFromID); + if(mSourceType != CHAT_SOURCE_AGENT) + icon->setValue(LLSD("OBJECT_Icon")); + else + icon->setValue(chat.mFromID); + + } else if (userName->getValue().asString()==LLTrans::getString("SECOND_LIFE")) { @@ -444,6 +449,7 @@ LLChatHistory::LLChatHistory(const LLChatHistory::Params& p) editor_params.rect = getLocalRect(); editor_params.follows.flags = FOLLOWS_ALL; editor_params.enabled = false; // read only + editor_params.show_context_menu = "true"; mEditor = LLUICtrlFactory::create<LLTextEditor>(editor_params, this); } diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp index f772aea4bd..e164aa8fc4 100644 --- a/indra/newview/llchatitemscontainerctrl.cpp +++ b/indra/newview/llchatitemscontainerctrl.cpp @@ -321,7 +321,10 @@ void LLNearbyChatToastPanel::draw() if(icon) { icon->setDrawTooltip(mSourceType == CHAT_SOURCE_AGENT); - icon->setValue(mFromID); + if(mSourceType == CHAT_SOURCE_AGENT) + icon->setValue(mFromID); + else + icon->setValue(LLSD("OBJECT_Icon")); } mIsDirty = false; } diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 18bd7b725f..8efa814a2e 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -36,6 +36,7 @@ #include "llagent.h" #include "llavataractions.h" #include "llbottomtray.h" +#include "lleventtimer.h" #include "llgroupactions.h" #include "lliconctrl.h" #include "llimfloater.h" @@ -1158,10 +1159,10 @@ void im_chiclet_callback(LLChicletPanel* panel, const LLSD& data){ void object_chiclet_callback(const LLSD& data) { - LLUUID object_id = data["object_id"]; + LLUUID notification_id = data["notification_id"]; bool new_message = data["new_message"]; - std::list<LLChiclet*> chiclets = LLIMChiclet::sFindChicletsSignal(object_id); + std::list<LLChiclet*> chiclets = LLIMChiclet::sFindChicletsSignal(notification_id); std::list<LLChiclet *>::iterator iter; for (iter = chiclets.begin(); iter != chiclets.end(); iter++) { @@ -1893,12 +1894,8 @@ void LLScriptChiclet::setSessionId(const LLUUID& session_id) setShowNewMessagesIcon( getSessionId() != session_id ); LLIMChiclet::setSessionId(session_id); - LLUUID notification_id = LLScriptFloaterManager::getInstance()->findNotificationId(session_id); - LLNotificationPtr notification = LLNotifications::getInstance()->find(notification_id); - if(notification) - { - setToolTip(notification->getSubstitutions()["TITLE"].asString()); - } + + setToolTip(LLScriptFloaterManager::getObjectName(session_id)); } void LLScriptChiclet::setCounter(S32 counter) @@ -1947,13 +1944,10 @@ void LLInvOfferChiclet::setSessionId(const LLUUID& session_id) { setShowNewMessagesIcon( getSessionId() != session_id ); + setToolTip(LLScriptFloaterManager::getObjectName(session_id)); + LLIMChiclet::setSessionId(session_id); - LLUUID notification_id = LLScriptFloaterManager::getInstance()->findNotificationId(session_id); - LLNotificationPtr notification = LLNotifications::getInstance()->find(notification_id); - if(notification) - { - setToolTip(notification->getSubstitutions()["TITLE"].asString()); - } + LLNotificationPtr notification = LLNotifications::getInstance()->find(session_id); if ( notification && notification->getName() == INVENTORY_USER_OFFER ) { diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index d60330024a..9fbc3408d7 100644 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -1049,9 +1049,13 @@ LLSpatialBridge::LLSpatialBridge(LLDrawable* root, BOOL render_by_group, U32 dat llassert(mDrawable); llassert(mDrawable->getRegion()); - llassert(mDrawable->getRegion()->getSpatialPartition(mPartitionType)); + LLSpatialPartition *part = mDrawable->getRegion()->getSpatialPartition(mPartitionType); + llassert(part); - mDrawable->getRegion()->getSpatialPartition(mPartitionType)->put(this); + if (part) + { + part->put(this); + } } LLSpatialBridge::~LLSpatialBridge() @@ -1367,10 +1371,14 @@ BOOL LLSpatialBridge::updateMove() { llassert(mDrawable); llassert(mDrawable->getRegion()); - llassert(mDrawable->getRegion()->getSpatialPartition(mPartitionType)); + LLSpatialPartition* part = mDrawable->getRegion()->getSpatialPartition(mPartitionType); + llassert(part); mOctree->balance(); - mDrawable->getRegion()->getSpatialPartition(mPartitionType)->move(this, getSpatialGroup(), TRUE); + if (part) + { + part->move(this, getSpatialGroup(), TRUE); + } return TRUE; } diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index 6d77361414..7be6e82251 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -180,6 +180,7 @@ void LLDrawPoolAlpha::render(S32 pass) if (LLPipeline::sFastAlpha && !deferred_render) { + LLGLDisable blend_disable(GL_BLEND); gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.33f); if (mVertexShaderLevel > 0) { diff --git a/indra/newview/lldriverparam.cpp b/indra/newview/lldriverparam.cpp index 8ebfa471f3..830e975e8a 100644 --- a/indra/newview/lldriverparam.cpp +++ b/indra/newview/lldriverparam.cpp @@ -432,6 +432,12 @@ const LLVector3* LLDriverParam::getNextDistortion(U32 *index, LLPolyMesh **poly_ } } + llassert(driven); + if (!driven) + { + return NULL; // shouldn't happen, but... + } + // We're already in the middle of a param's distortions, so get the next one. const LLVector3* v = driven->mParam->getNextDistortion( index, poly_mesh ); if( (!v) && (iter != mDriven.end()) ) diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp index eca9f8aba2..cc4e1a1868 100644 --- a/indra/newview/lleventpoll.cpp +++ b/indra/newview/lleventpoll.cpp @@ -39,7 +39,7 @@ #include "llhttpclient.h" #include "llhttpstatuscodes.h" #include "llsdserialize.h" -#include "lltimer.h" +#include "lleventtimer.h" #include "llviewerregion.h" #include "message.h" #include "lltrans.h" diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 965ac1cad0..c0a3eb1316 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -301,7 +301,8 @@ void LLFace::switchTexture(LLViewerTexture* new_texture) if(!new_texture) { - llerrs << "Can not switch to a null texture." << llendl ; + llerrs << "Can not switch to a null texture." << llendl; + return; } new_texture->addTextureStats(mTexture->getMaxVirtualSize()) ; @@ -1040,17 +1041,20 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, if (rebuild_color) { - GLfloat alpha[4] = - { - 0.00f, - 0.25f, - 0.5f, - 0.75f - }; - - if (getPoolType() != LLDrawPool::POOL_ALPHA && (LLPipeline::sRenderDeferred || (LLPipeline::sRenderBump && tep->getShiny()))) + if (tep) { - color.mV[3] = U8 (alpha[tep->getShiny()] * 255); + GLfloat alpha[4] = + { + 0.00f, + 0.25f, + 0.5f, + 0.75f + }; + + if (getPoolType() != LLDrawPool::POOL_ALPHA && (LLPipeline::sRenderDeferred || (LLPipeline::sRenderBump && tep->getShiny()))) + { + color.mV[3] = U8 (alpha[tep->getShiny()] * 255); + } } } @@ -1323,6 +1327,21 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, return TRUE; } +//check if the face has a media +BOOL LLFace::hasMedia() const +{ + if(mHasMedia) + { + return TRUE ; + } + if(mTexture.notNull()) + { + return mTexture->hasParcelMedia() ; //if has a parcel media + } + + return FALSE ; //no media. +} + const F32 LEAST_IMPORTANCE = 0.05f ; const F32 LEAST_IMPORTANCE_FOR_LARGE_IMAGE = 0.3f ; @@ -1332,7 +1351,7 @@ F32 LLFace::getTextureVirtualSize() F32 cos_angle_to_view_dir; mPixelArea = calcPixelArea(cos_angle_to_view_dir, radius); - if (mPixelArea <= 0) + if (mPixelArea < 0.0001f) { return 0.f; } @@ -1377,14 +1396,38 @@ F32 LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius) { //get area of circle around face LLVector3 center = getPositionAgent(); - LLVector3 size = (mExtents[1] - mExtents[0]) * 0.5f; - + LLVector3 size = (mExtents[1] - mExtents[0]) * 0.5f; LLViewerCamera* camera = LLViewerCamera::getInstance(); + + //if has media, check if the face is out of the view frustum. + BOOL has_media = hasMedia() ; + if(has_media && !camera->AABBInFrustum(center, size)) + { + mImportanceToCamera = 0.f ; + return 0.f ; + } + + F32 size_squared = size.lengthSquared() ; LLVector3 lookAt = center - camera->getOrigin(); F32 dist = lookAt.normVec() ; + cos_angle_to_view_dir = lookAt * camera->getXAxis() ; + if(has_media) + { + if(cos_angle_to_view_dir > camera->getCosHalfFov()) //the center is within the view frustum + { + cos_angle_to_view_dir = 1.0f ; + } + else + { + if(dist * dist * (lookAt - camera->getXAxis()).lengthSquared() < size_squared) + { + cos_angle_to_view_dir = 1.0f ; + } + } + } //get area of circle around node - F32 app_angle = atanf(size.length()/dist); + F32 app_angle = atanf(fsqrtf(size_squared) / dist); radius = app_angle*LLDrawable::sCurPixelAngle; F32 face_area = radius*radius * 3.14159f; @@ -1394,8 +1437,7 @@ F32 LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius) mImportanceToCamera = 1.0f ; } else - { - cos_angle_to_view_dir = lookAt * camera->getXAxis() ; + { mImportanceToCamera = LLFace::calcImportanceToCamera(cos_angle_to_view_dir, dist) ; } diff --git a/indra/newview/llface.h b/indra/newview/llface.h index e12b64a2f2..bf658dc00c 100644 --- a/indra/newview/llface.h +++ b/indra/newview/llface.h @@ -194,6 +194,9 @@ public: F32 getTextureVirtualSize() ; F32 getImportanceToCamera()const {return mImportanceToCamera ;} + void setHasMedia(bool has_media) { mHasMedia = has_media ;} + BOOL hasMedia() const ; + //for atlas LLTextureAtlasSlot* getAtlasInfo() ; void setAtlasInUse(BOOL flag); @@ -262,7 +265,7 @@ private: //based on the distance from the face to the view point and the angle from the face center to the view direction. F32 mImportanceToCamera ; F32 mBoundingSphereRadius ; - + bool mHasMedia ; //atlas LLPointer<LLTextureAtlasSlot> mAtlasInfop ; diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp index ccc5cab85a..4e2633d750 100644 --- a/indra/newview/llfloaterfriends.cpp +++ b/indra/newview/llfloaterfriends.cpp @@ -58,7 +58,7 @@ #include "llmenucommands.h" #include "llviewercontrol.h" #include "llviewermessage.h" -#include "lltimer.h" +#include "lleventtimer.h" #include "lltextbox.h" #include "llvoiceclient.h" diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp index 7388f7ea3f..62ec17f89a 100644 --- a/indra/newview/llfloatermediasettings.cpp +++ b/indra/newview/llfloatermediasettings.cpp @@ -207,7 +207,7 @@ void LLFloaterMediaSettings::commitFields() if (hasFocus()) { LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus()); - if (cur_focus->acceptsTextInput()) + if (cur_focus && cur_focus->acceptsTextInput()) { cur_focus->onCommit(); }; diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 9d9fbacee3..43111d76f7 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -110,8 +110,6 @@ const F32 MAX_USER_FAR_CLIP = 512.f; const F32 MIN_USER_FAR_CLIP = 64.f; -const S32 ASPECT_RATIO_STR_LEN = 100; - class LLVoiceSetKeyDialog : public LLModalDialog { public: @@ -283,7 +281,6 @@ void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator) } // static std::string LLFloaterPreference::sSkin = ""; -F32 LLFloaterPreference::sAspectRatio = 0.0; ////////////////////////////////////////////// // LLFloaterPreference @@ -324,11 +321,9 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.VertexShaderEnable", boost::bind(&LLFloaterPreference::onVertexShaderEnable, this)); mCommitCallbackRegistrar.add("Pref.WindowedMod", boost::bind(&LLFloaterPreference::onCommitWindowedMode, this)); mCommitCallbackRegistrar.add("Pref.UpdateSliderText", boost::bind(&LLFloaterPreference::onUpdateSliderText,this, _1,_2)); - mCommitCallbackRegistrar.add("Pref.AutoDetectAspect", boost::bind(&LLFloaterPreference::onCommitAutoDetectAspect, this)); mCommitCallbackRegistrar.add("Pref.ParcelMediaAutoPlayEnable", boost::bind(&LLFloaterPreference::onCommitParcelMediaAutoPlayEnable, this)); mCommitCallbackRegistrar.add("Pref.MediaEnabled", boost::bind(&LLFloaterPreference::onCommitMediaEnabled, this)); mCommitCallbackRegistrar.add("Pref.MusicEnabled", boost::bind(&LLFloaterPreference::onCommitMusicEnabled, this)); - mCommitCallbackRegistrar.add("Pref.onSelectAspectRatio", boost::bind(&LLFloaterPreference::onKeystrokeAspectRatio, this)); mCommitCallbackRegistrar.add("Pref.QualityPerformance", boost::bind(&LLFloaterPreference::onChangeQuality, this, _2)); mCommitCallbackRegistrar.add("Pref.applyUIColor", boost::bind(&LLFloaterPreference::applyUIColor, this ,_1, _2)); mCommitCallbackRegistrar.add("Pref.getUIColor", boost::bind(&LLFloaterPreference::getUIColor, this ,_1, _2)); @@ -359,12 +354,7 @@ BOOL LLFloaterPreference::postBuild() LLFloaterPreference::~LLFloaterPreference() { // clean up user data - LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio"); LLComboBox* ctrl_window_size = getChild<LLComboBox>("windowsize combo"); - for (S32 i = 0; i < ctrl_aspect_ratio->getItemCount(); i++) - { - ctrl_aspect_ratio->setCurrentByIndex(i); - } for (S32 i = 0; i < ctrl_window_size->getItemCount(); i++) { ctrl_window_size->setCurrentByIndex(i); @@ -514,8 +504,6 @@ void LLFloaterPreference::cancel() LLFloaterReg::hideInstance("pref_voicedevicesettings"); - gSavedSettings.setF32("FullScreenAspectRatio", sAspectRatio); - } void LLFloaterPreference::onOpen(const LLSD& key) @@ -602,7 +590,7 @@ void LLFloaterPreference::onBtnOK() if (hasFocus()) { LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus()); - if (cur_focus->acceptsTextInput()) + if (cur_focus && cur_focus->acceptsTextInput()) { cur_focus->onCommit(); } @@ -635,7 +623,7 @@ void LLFloaterPreference::onBtnApply( ) if (hasFocus()) { LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus()); - if (cur_focus->acceptsTextInput()) + if (cur_focus && cur_focus->acceptsTextInput()) { cur_focus->onCommit(); } @@ -652,7 +640,7 @@ void LLFloaterPreference::onBtnCancel() if (hasFocus()) { LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus()); - if (cur_focus->acceptsTextInput()) + if (cur_focus && cur_focus->acceptsTextInput()) { cur_focus->onCommit(); } @@ -968,37 +956,6 @@ void LLFloaterPreference::disableUnavailableSettings() } } -void LLFloaterPreference::onCommitAutoDetectAspect() -{ - BOOL auto_detect = getChild<LLCheckBoxCtrl>("aspect_auto_detect")->get(); - F32 ratio; - - if (auto_detect) - { - S32 numerator = 0; - S32 denominator = 0; - - // clear any aspect ratio override - gViewerWindow->mWindow->setNativeAspectRatio(0.f); - fractionFromDecimal(gViewerWindow->mWindow->getNativeAspectRatio(), numerator, denominator); - - std::string aspect; - if (numerator != 0) - { - aspect = llformat("%d:%d", numerator, denominator); - } - else - { - aspect = llformat("%.3f", gViewerWindow->mWindow->getNativeAspectRatio()); - } - - getChild<LLComboBox>( "aspect_ratio")->setLabel(aspect); - - ratio = gViewerWindow->mWindow->getNativeAspectRatio(); - gSavedSettings.setF32("FullScreenAspectRatio", ratio); - } -} - void LLFloaterPreference::onCommitParcelMediaAutoPlayEnable() { BOOL autoplay = getChild<LLCheckBoxCtrl>("autoplay_enabled")->get(); @@ -1266,56 +1223,9 @@ void LLFloaterPreference::updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_b } } -void LLFloaterPreference::onKeystrokeAspectRatio() -{ - getChild<LLCheckBoxCtrl>("aspect_auto_detect")->set(FALSE); -} - void LLFloaterPreference::applyResolution() { - LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio"); gGL.flush(); - char aspect_ratio_text[ASPECT_RATIO_STR_LEN]; /*Flawfinder: ignore*/ - if (ctrl_aspect_ratio->getCurrentIndex() == -1) - { - // *Can't pass const char* from c_str() into strtok - strncpy(aspect_ratio_text, ctrl_aspect_ratio->getSimple().c_str(), sizeof(aspect_ratio_text) -1); /*Flawfinder: ignore*/ - aspect_ratio_text[sizeof(aspect_ratio_text) -1] = '\0'; - char *element = strtok(aspect_ratio_text, ":/\\"); - if (!element) - { - sAspectRatio = 0.f; // will be clamped later - } - else - { - LLLocale locale(LLLocale::USER_LOCALE); - sAspectRatio = (F32)atof(element); - } - - // look for denominator - element = strtok(NULL, ":/\\"); - if (element) - { - LLLocale locale(LLLocale::USER_LOCALE); - - F32 denominator = (F32)atof(element); - if (denominator != 0.f) - { - sAspectRatio /= denominator; - } - } - } - else - { - sAspectRatio = (F32)ctrl_aspect_ratio->getValue().asReal(); - } - - // presumably, user entered a non-numeric value if aspect_ratio == 0.f - if (sAspectRatio != 0.f) - { - sAspectRatio = llclamp(sAspectRatio, 0.2f, 5.f); - gSavedSettings.setF32("FullScreenAspectRatio", sAspectRatio); - } // Screen resolution S32 num_resolutions; @@ -1393,48 +1303,6 @@ BOOL LLPanelPreference::postBuild() childSetText("email_address",getString("log_in_to_change") ); // childSetText("busy_response", getString("log_in_to_change")); } - - - if(hasChild("aspect_ratio")) - { - // We used to set up fullscreen resolution and window size - // controls here, see LLFloaterWindowSize::initWindowSizeControls() - - if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio")) - { - LLFloaterPreference::sAspectRatio = gViewerWindow->getDisplayAspectRatio(); - } - else - { - LLFloaterPreference::sAspectRatio = gSavedSettings.getF32("FullScreenAspectRatio"); - } - - getChild<LLComboBox>("aspect_ratio")->setTextEntryCallback(boost::bind(&LLPanelPreference::setControlFalse, this, LLSD("FullScreenAutoDetectAspectRatio") )); - - - S32 numerator = 0; - S32 denominator = 0; - fractionFromDecimal(LLFloaterPreference::sAspectRatio, numerator, denominator); - - LLUIString aspect_ratio_text = getString("aspect_ratio_text"); - if (numerator != 0) - { - aspect_ratio_text.setArg("[NUM]", llformat("%d", numerator)); - aspect_ratio_text.setArg("[DEN]", llformat("%d", denominator)); - } - else - { - aspect_ratio_text = llformat("%.3f", LLFloaterPreference::sAspectRatio); - } - - LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio"); - //mCtrlAspectRatio->setCommitCallback(onSelectAspectRatio, this); - // add default aspect ratios - ctrl_aspect_ratio->add(aspect_ratio_text, &LLFloaterPreference::sAspectRatio, ADD_TOP); - ctrl_aspect_ratio->setCurrentByIndex(0); - - refresh(); - } //////////////////////PanelPrivacy /////////////////// if (hasChild("media_enabled")) diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 0827c7c2b2..93b39d72bc 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -128,10 +128,8 @@ public: void updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box); void onUpdateSliderText(LLUICtrl* ctrl, const LLSD& name); - void onKeystrokeAspectRatio(); // void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator); - void onCommitAutoDetectAspect(); void onCommitParcelMediaAutoPlayEnable(); void onCommitMediaEnabled(); void onCommitMusicEnabled(); @@ -142,7 +140,6 @@ public: void buildPopupLists(); static void refreshSkin(void* data); static void cleanupBadSetting(); - static F32 sAspectRatio; private: static std::string sSkin; bool mGotPersonalInfo; diff --git a/indra/newview/llfloaterscriptlimits.cpp b/indra/newview/llfloaterscriptlimits.cpp index 4194416a01..fdf128945e 100644 --- a/indra/newview/llfloaterscriptlimits.cpp +++ b/indra/newview/llfloaterscriptlimits.cpp @@ -744,13 +744,13 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content) { mParcelMemoryUsed = content["summary"]["used"][0]["amount"].asInteger() / SIZE_OF_ONE_KB; mParcelMemoryMax = content["summary"]["available"][0]["amount"].asInteger() / SIZE_OF_ONE_KB; - mGotParcelMemoryUsed = TRUE; + mGotParcelMemoryUsed = true; } else if(content["summary"]["used"][1]["type"].asString() == std::string("memory")) { mParcelMemoryUsed = content["summary"]["used"][1]["amount"].asInteger() / SIZE_OF_ONE_KB; mParcelMemoryMax = content["summary"]["available"][1]["amount"].asInteger() / SIZE_OF_ONE_KB; - mGotParcelMemoryUsed = TRUE; + mGotParcelMemoryUsed = true; } else { @@ -762,13 +762,13 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content) { mParcelURLsUsed = content["summary"]["used"][0]["amount"].asInteger(); mParcelURLsMax = content["summary"]["available"][0]["amount"].asInteger(); - mGotParcelURLsUsed = TRUE; + mGotParcelURLsUsed = true; } else if(content["summary"]["used"][1]["type"].asString() == std::string("urls")) { mParcelURLsUsed = content["summary"]["used"][1]["amount"].asInteger(); mParcelURLsMax = content["summary"]["available"][1]["amount"].asInteger(); - mGotParcelURLsUsed = TRUE; + mGotParcelURLsUsed = true; } else { @@ -902,10 +902,10 @@ void LLPanelScriptLimitsRegionMemory::clearList() list->operateOnAll(LLCtrlListInterface::OP_DELETE); } - mGotParcelMemoryUsed = FALSE; - mGotParcelMemoryMax = FALSE; - mGotParcelURLsUsed = FALSE; - mGotParcelURLsMax = FALSE; + mGotParcelMemoryUsed = false; + mGotParcelMemoryMax = false; + mGotParcelURLsUsed = false; + mGotParcelURLsMax = false; LLStringUtil::format_map_t args_parcel_memory; std::string msg_empty_string(""); @@ -1208,13 +1208,13 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content) { mAttachmentMemoryUsed = content["summary"]["used"][0]["amount"].asInteger() / SIZE_OF_ONE_KB; mAttachmentMemoryMax = content["summary"]["available"][0]["amount"].asInteger() / SIZE_OF_ONE_KB; - mGotAttachmentMemoryUsed = TRUE; + mGotAttachmentMemoryUsed = true; } else if(content["summary"]["used"][1]["type"].asString() == std::string("memory")) { mAttachmentMemoryUsed = content["summary"]["used"][1]["amount"].asInteger() / SIZE_OF_ONE_KB; mAttachmentMemoryMax = content["summary"]["available"][1]["amount"].asInteger() / SIZE_OF_ONE_KB; - mGotAttachmentMemoryUsed = TRUE; + mGotAttachmentMemoryUsed = true; } else { @@ -1226,13 +1226,13 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content) { mAttachmentURLsUsed = content["summary"]["used"][0]["amount"].asInteger(); mAttachmentURLsMax = content["summary"]["available"][0]["amount"].asInteger(); - mGotAttachmentURLsUsed = TRUE; + mGotAttachmentURLsUsed = true; } else if(content["summary"]["used"][1]["type"].asString() == std::string("urls")) { mAttachmentURLsUsed = content["summary"]["used"][1]["amount"].asInteger(); mAttachmentURLsMax = content["summary"]["available"][1]["amount"].asInteger(); - mGotAttachmentURLsUsed = TRUE; + mGotAttachmentURLsUsed = true; } else { diff --git a/indra/newview/llfloaterscriptlimits.h b/indra/newview/llfloaterscriptlimits.h index 4c1ecc1019..0cba4d72f2 100644 --- a/indra/newview/llfloaterscriptlimits.h +++ b/indra/newview/llfloaterscriptlimits.h @@ -148,8 +148,8 @@ public: : LLPanelScriptLimitsInfo(), LLRemoteParcelInfoObserver(), mParcelId(LLUUID()), - mGotParcelMemoryUsed(FALSE), - mGotParcelMemoryMax(FALSE), + mGotParcelMemoryUsed(false), + mGotParcelMemoryMax(false), mParcelMemoryMax(0), mParcelMemoryUsed(0) {}; @@ -180,16 +180,16 @@ private: LLSD mContent; LLUUID mParcelId; - BOOL mGotParcelMemoryUsed; - BOOL mGotParcelMemoryUsedDetails; - BOOL mGotParcelMemoryMax; + bool mGotParcelMemoryUsed; + bool mGotParcelMemoryUsedDetails; + bool mGotParcelMemoryMax; S32 mParcelMemoryMax; S32 mParcelMemoryUsed; S32 mParcelMemoryUsedDetails; - BOOL mGotParcelURLsUsed; - BOOL mGotParcelURLsUsedDetails; - BOOL mGotParcelURLsMax; + bool mGotParcelURLsUsed; + bool mGotParcelURLsUsedDetails; + bool mGotParcelURLsMax; S32 mParcelURLsMax; S32 mParcelURLsUsed; S32 mParcelURLsUsedDetails; @@ -217,7 +217,21 @@ class LLPanelScriptLimitsAttachment : public LLPanelScriptLimitsInfo public: LLPanelScriptLimitsAttachment() - : LLPanelScriptLimitsInfo() {}; + : LLPanelScriptLimitsInfo(), + mGotAttachmentMemoryUsed(false), + mGotAttachmentMemoryUsedDetails(false), + mGotAttachmentMemoryMax(false), + mAttachmentMemoryMax(0), + mAttachmentMemoryUsed(0), + mAttachmentMemoryUsedDetails(0), + mGotAttachmentURLsUsed(false), + mGotAttachmentURLsUsedDetails(false), + mGotAttachmentURLsMax(false), + mAttachmentURLsMax(0), + mAttachmentURLsUsed(0), + mAttachmentURLsUsedDetails(0) + {}; + ~LLPanelScriptLimitsAttachment() { }; @@ -233,16 +247,16 @@ public: private: - BOOL mGotAttachmentMemoryUsed; - BOOL mGotAttachmentMemoryUsedDetails; - BOOL mGotAttachmentMemoryMax; + bool mGotAttachmentMemoryUsed; + bool mGotAttachmentMemoryUsedDetails; + bool mGotAttachmentMemoryMax; S32 mAttachmentMemoryMax; S32 mAttachmentMemoryUsed; S32 mAttachmentMemoryUsedDetails; - BOOL mGotAttachmentURLsUsed; - BOOL mGotAttachmentURLsUsedDetails; - BOOL mGotAttachmentURLsMax; + bool mGotAttachmentURLsUsed; + bool mGotAttachmentURLsUsedDetails; + bool mGotAttachmentURLsMax; S32 mAttachmentURLsMax; S32 mAttachmentURLsUsed; S32 mAttachmentURLsUsedDetails; diff --git a/indra/newview/llfloateruipreview.cpp b/indra/newview/llfloateruipreview.cpp index c6e12476bd..3e804bef9d 100644 --- a/indra/newview/llfloateruipreview.cpp +++ b/indra/newview/llfloateruipreview.cpp @@ -41,6 +41,7 @@ #include "llfloateruipreview.h" // Own header // Internal utility +#include "lleventtimer.h" #include "llrender.h" #include "llsdutil.h" #include "llxmltree.h" @@ -91,7 +92,6 @@ static std::string get_xui_dir() } // Forward declarations to avoid header dependencies -class LLEventTimer; class LLColor; class LLScrollListCtrl; class LLComboBox; diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index f154de39c9..3946224c0c 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -1339,10 +1339,6 @@ void LLFolderViewFolder::filter( LLInventoryFilter& filter) if (folder->getFiltered() || folder->hasFilteredDescendants(filter.getMinRequiredGeneration())) { mMostFilteredDescendantGeneration = filter_generation; - if (getRoot()->needsAutoSelect() && autoopen_folders) - { - folder->setOpenArrangeRecursively(TRUE); - } } // just skip it, it has already been filtered continue; @@ -2548,8 +2544,12 @@ bool LLInventorySort::operator()(const LLFolderViewItem* const& a, const LLFolde { // *TODO: mantipov: probably it is better to add an appropriate method to LLFolderViewItem // or to LLInvFVBridge - S32 a_sort = (static_cast<const LLItemBridge*>(a->getListener()))->getItem()->getSortField(); - S32 b_sort = (static_cast<const LLItemBridge*>(b->getListener()))->getItem()->getSortField(); + LLViewerInventoryItem* aitem = (static_cast<const LLItemBridge*>(a->getListener()))->getItem(); + LLViewerInventoryItem* bitem = (static_cast<const LLItemBridge*>(b->getListener()))->getItem(); + if (!aitem || !bitem) + return false; + S32 a_sort = aitem->getSortField(); + S32 b_sort = bitem->getSortField(); return a_sort < b_sort; } } diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 34ab541a8e..53cdfcc9b2 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -407,12 +407,7 @@ LLIMFloater* LLIMFloater::show(const LLUUID& session_id) } } - if (floater_container) - { - //selecting the panel resets a chiclet's counter - floater_container->selectFloater(floater); - floater_container->setVisible(TRUE); - } + floater->openFloater(floater->getKey()); } else { diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index b6032f4dfa..32482a065c 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1517,6 +1517,15 @@ void LLCallDialog::draw() } } +// virtual +void LLCallDialog::onOpen(const LLSD& key) +{ + LLDockableFloater::onOpen(key); + + // it should be over the all floaters. EXT-5116 + gFloaterView->bringToFront(this); +} + void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id) { // *NOTE: 12/28/2009: check avaline calls: LLVoiceClient::isParticipantAvatar returns false for them diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 1c7aaa3f1b..21c7626109 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -472,6 +472,7 @@ public: // check timer state /*virtual*/ void draw(); + /*virtual*/ void onOpen(const LLSD& key); protected: // lifetime timer for a notification diff --git a/indra/newview/llinspect.cpp b/indra/newview/llinspect.cpp index c7b651f37c..81cfce53b1 100644 --- a/indra/newview/llinspect.cpp +++ b/indra/newview/llinspect.cpp @@ -32,6 +32,7 @@ #include "llinspect.h" +#include "lltooltip.h" #include "llcontrol.h" // LLCachedControl #include "llui.h" // LLUI::sSettingsGroups #include "llviewermenu.h" @@ -104,6 +105,26 @@ BOOL LLInspect::handleHover(S32 x, S32 y, MASK mask) return LLView::handleHover(x, y, mask); } +BOOL LLInspect::handleToolTip(S32 x, S32 y, MASK mask) +{ + BOOL handled = FALSE; + + + //delegate handling of tooltip to the hovered child + LLView* child_handler = childFromPoint(x,y); + if (child_handler && !child_handler->getToolTip().empty())// show tooltip if a view has non-empty tooltip message + { + //build LLInspector params to get correct tooltip setting, etc. background image + LLInspector::Params params; + params.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>()); + params.message = child_handler->getToolTip(); + //set up delay if there is no visible tooltip at this moment + params.delay_time = LLToolTipMgr::instance().toolTipVisible() ? 0.f : LLUI::sSettingGroups["config"]->getF32( "ToolTipDelay" ); + LLToolTipMgr::instance().show(params); + handled = TRUE; + } + return handled; +} // virtual void LLInspect::onMouseLeave(S32 x, S32 y, MASK mask) { diff --git a/indra/newview/llinspect.h b/indra/newview/llinspect.h index f8c86618d2..6d994a8d7c 100644 --- a/indra/newview/llinspect.h +++ b/indra/newview/llinspect.h @@ -47,6 +47,7 @@ public: /*virtual*/ void draw(); /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask); + /*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask); /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask); /// Start open animation diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index c024304f26..da95eaefca 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -787,7 +787,7 @@ void LLInvFVBridge::changeItemParent(LLInventoryModel* model, const LLUUID& new_parent_id, BOOL restamp) { - if(item->getParentUUID() != new_parent_id) + if (item->getParentUUID() != new_parent_id) { LLInventoryModel::update_list_t update; LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1); @@ -1113,6 +1113,9 @@ void LLItemBridge::restoreItem() void LLItemBridge::restoreToWorld() { + //Similar functionality to the drag and drop rez logic + bool remove_from_inventory = false; + LLViewerInventoryItem* itemp = (LLViewerInventoryItem*)getItem(); if (itemp) { @@ -1125,23 +1128,20 @@ void LLItemBridge::restoreToWorld() msg->nextBlockFast(_PREHASH_InventoryData); itemp->packMessage(msg); msg->sendReliable(gAgent.getRegion()->getHost()); - } - - //Similar functionality to the drag and drop rez logic - BOOL remove_from_inventory = FALSE; - //remove local inventory copy, sim will deal with permissions and removing the item - //from the actual inventory if its a no-copy etc - if(!itemp->getPermissions().allowCopyBy(gAgent.getID())) - { - remove_from_inventory = TRUE; - } - - // Check if it's in the trash. (again similar to the normal rez logic) - const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); - if(gInventory.isObjectDescendentOf(itemp->getUUID(), trash_id)) - { - remove_from_inventory = TRUE; + //remove local inventory copy, sim will deal with permissions and removing the item + //from the actual inventory if its a no-copy etc + if(!itemp->getPermissions().allowCopyBy(gAgent.getID())) + { + remove_from_inventory = true; + } + + // Check if it's in the trash. (again similar to the normal rez logic) + const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); + if(gInventory.isObjectDescendentOf(itemp->getUUID(), trash_id)) + { + remove_from_inventory = true; + } } if(remove_from_inventory) @@ -1527,7 +1527,7 @@ BOOL LLFolderBridge::isUpToDate() const BOOL LLFolderBridge::isItemCopyable() const { - return TRUE; + return FALSE; } BOOL LLFolderBridge::copyToClipboard() const @@ -2232,7 +2232,10 @@ void LLFolderBridge::determineFolderType() { LLInventoryModel* model = getInventoryModel(); LLViewerInventoryCategory* category = model->getCategory(mUUID); - category->determineFolderType(); + if (category) + { + category->determineFolderType(); + } } } @@ -2429,7 +2432,9 @@ void LLFolderBridge::pasteFromClipboard() { // move_inventory_item() is not enough, //we have to update inventory locally too - changeItemParent(model, dynamic_cast<LLViewerInventoryItem*>(item), parent_id, FALSE); + LLViewerInventoryItem* viitem = dynamic_cast<LLViewerInventoryItem*>(item); + llassert(viitem); + changeItemParent(model, viitem, parent_id, FALSE); } else { @@ -2501,11 +2506,13 @@ void LLFolderBridge::folderOptionsMenu() if(!model) return; const LLInventoryCategory* category = model->getCategory(mUUID); + if(!category) return; + LLFolderType::EType type = category->getPreferredType(); - const bool is_system_folder = category && LLFolderType::lookupIsProtectedType(type); + const bool is_system_folder = LLFolderType::lookupIsProtectedType(type); // BAP change once we're no longer treating regular categories as ensembles. - const bool is_ensemble = category && (type == LLFolderType::FT_NONE || - LLFolderType::lookupIsEnsembleType(type)); + const bool is_ensemble = (type == LLFolderType::FT_NONE || + LLFolderType::lookupIsEnsembleType(type)); // calling card related functionality for folders. @@ -3002,7 +3009,6 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, LLViewerObject* object = NULL; if(LLToolDragAndDrop::SOURCE_AGENT == source) { - BOOL is_movable = TRUE; switch( inv_item->getActualType() ) { @@ -3014,11 +3020,18 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, } const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); - BOOL move_is_into_trash = (mUUID == trash_id) || model->isObjectDescendentOf(mUUID, trash_id); + const BOOL move_is_into_trash = (mUUID == trash_id) || model->isObjectDescendentOf(mUUID, trash_id); const LLUUID current_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT); - BOOL move_is_into_current_outfit = (mUUID == current_outfit_id); - BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT); + const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id); + const BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT); + const BOOL move_is_outof_current_outfit = LLAppearanceManager::instance().getIsInCOF(inv_item->getUUID()); + // Can't explicitly drag things out of the COF. + if (move_is_outof_current_outfit) + { + is_movable = FALSE; + } + if(is_movable && move_is_into_trash) { is_movable = inv_item->getIsLinkType() || !get_is_item_worn(inv_item->getUUID()); @@ -3621,9 +3634,13 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags) LLInventoryItem* item = getItem(); BOOL good_card = (item - && (LLUUID::null != item->getCreatorUUID()) - && (item->getCreatorUUID() != gAgent.getID())); - BOOL user_online = (LLAvatarTracker::instance().isBuddyOnline(item->getCreatorUUID())); + && (LLUUID::null != item->getCreatorUUID()) + && (item->getCreatorUUID() != gAgent.getID())); + BOOL user_online = FALSE; + if (item) + { + user_online = (LLAvatarTracker::instance().isBuddyOnline(item->getCreatorUUID())); + } items.push_back(std::string("Send Instant Message Separator")); items.push_back(std::string("Send Instant Message")); items.push_back(std::string("Offer Teleport...")); @@ -3810,7 +3827,12 @@ void LLGestureBridge::performAction(LLFolderView* folder, LLInventoryModel* mode BOOL inform_server = TRUE; BOOL deactivate_similar = FALSE; LLGestureManager::instance().setGestureLoadedCallback(mUUID, boost::bind(&LLGestureBridge::playGesture, mUUID)); - LLGestureManager::instance().activateGestureWithAsset(mUUID, gInventory.getItem(mUUID)->getAssetUUID(), inform_server, deactivate_similar); + LLViewerInventoryItem* item = gInventory.getItem(mUUID); + llassert(item); + if (item) + { + LLGestureManager::instance().activateGestureWithAsset(mUUID, item->getAssetUUID(), inform_server, deactivate_similar); + } } else { @@ -4053,12 +4075,13 @@ void LLObjectBridge::performAction(LLFolderView* folder, LLInventoryModel* model gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); gMessageSystem->addUUIDFast(_PREHASH_ItemID, item->getLinkedUUID()); gMessageSystem->sendReliable( gAgent.getRegion()->getHost()); - } - // this object might have been selected, so let the selection manager know it's gone now - LLViewerObject *found_obj = gObjectList.findObject(item->getLinkedUUID()); - if (found_obj) - { - LLSelectMgr::getInstance()->remove(found_obj); + + // this object might have been selected, so let the selection manager know it's gone now + LLViewerObject *found_obj = gObjectList.findObject(item->getLinkedUUID()); + if (found_obj) + { + LLSelectMgr::getInstance()->remove(found_obj); + } } } else LLItemBridge::performAction(folder, model, action); diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index a6d63e58f5..467255d1a7 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -522,6 +522,11 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id) { folderp->setHidden(TRUE); } + const LLViewerInventoryCategory *cat = dynamic_cast<LLViewerInventoryCategory *>(objectp); + if (cat && getIsHiddenFolderType(cat->getPreferredType())) + { + folderp->setHidden(TRUE); + } } } else @@ -553,6 +558,12 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id) if (itemp) { itemp->addToFolder(parent_folder, mFolders); + + // Don't add children of hidden folders unless this is the panel's root folder. + if (itemp->getHidden() && (id != mStartFolderID)) + { + return; + } } } @@ -954,3 +965,16 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open) return NULL; } + +void LLInventoryPanel::addHideFolderType(LLFolderType::EType folder_type) +{ + if (!getIsHiddenFolderType(folder_type)) + { + mHiddenFolderTypes.push_back(folder_type); + } +} + +BOOL LLInventoryPanel::getIsHiddenFolderType(LLFolderType::EType folder_type) const +{ + return (std::find(mHiddenFolderTypes.begin(), mHiddenFolderTypes.end(), folder_type) != mHiddenFolderTypes.end()); +} diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h index ccff795a51..f312b588b9 100644 --- a/indra/newview/llinventorypanel.h +++ b/indra/newview/llinventorypanel.h @@ -61,6 +61,9 @@ class LLTabContainer; class LLInventoryPanel : public LLPanel { + //-------------------------------------------------------------------- + // Data + //-------------------------------------------------------------------- public: static const std::string DEFAULT_SORT_ORDER; static const std::string RECENTITEMS_SORT_ORDER; @@ -97,13 +100,16 @@ public: {} }; + //-------------------------------------------------------------------- + // Initialization + //-------------------------------------------------------------------- protected: LLInventoryPanel(const Params&); friend class LLUICtrlFactory; - public: virtual ~LLInventoryPanel(); +public: LLInventoryModel* getModel() { return mInventory; } BOOL postBuild(); @@ -187,6 +193,16 @@ protected: const LLInventoryFVBridgeBuilder* mInvFVBridgeBuilder; //-------------------------------------------------------------------- + // Hidden folders + //-------------------------------------------------------------------- +public: + void addHideFolderType(LLFolderType::EType folder_type); +protected: + BOOL getIsHiddenFolderType(LLFolderType::EType folder_type) const; +private: + std::vector<LLFolderType::EType> mHiddenFolderTypes; + + //-------------------------------------------------------------------- // Initialization routines for building up the UI ("views") //-------------------------------------------------------------------- public: diff --git a/indra/newview/lllocaltextureobject.cpp b/indra/newview/lllocaltextureobject.cpp index 69eb5fce2f..116d9bc446 100644 --- a/indra/newview/lllocaltextureobject.cpp +++ b/indra/newview/lllocaltextureobject.cpp @@ -70,6 +70,7 @@ LLLocalTextureObject::LLLocalTextureObject(const LLLocalTextureObject& lto) : if (!original_layer) { llerrs << "could not clone Local Texture Object: unable to extract texlayer!" << llendl; + continue; } LLTexLayer* new_layer = new LLTexLayer(*original_layer); diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index ff713d74ad..f48c96190f 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -489,7 +489,10 @@ void LLLocationInputCtrl::onTextEntry(LLLineEditor* line_editor) */ void LLLocationInputCtrl::setText(const LLStringExplicit& text) { - mTextEntry->setText(text); + if (mTextEntry) + { + mTextEntry->setText(text); + } mHasAutocompletedText = FALSE; } @@ -498,7 +501,9 @@ void LLLocationInputCtrl::setFocus(BOOL b) LLComboBox::setFocus(b); if (mTextEntry && b && !mList->getVisible()) + { mTextEntry->setFocus(TRUE); + } } void LLLocationInputCtrl::handleLoginComplete() @@ -688,8 +693,8 @@ void LLLocationInputCtrl::refreshLocation() { // Is one of our children focused? if (LLUICtrl::hasFocus() || mButton->hasFocus() || mList->hasFocus() || - (mTextEntry && mTextEntry->hasFocus()) || (mAddLandmarkBtn->hasFocus())) - + (mTextEntry && mTextEntry->hasFocus()) || + (mAddLandmarkBtn->hasFocus())) { llwarns << "Location input should not be refreshed when having focus" << llendl; return; diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 3c34d26692..501a137b42 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -982,16 +982,20 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self ) U32 target_type = self->getClickTargetType(); // is there is a target specified for the link? - if (gSavedSettings.getBOOL("UseExternalBrowser") || target_type == LLPluginClassMedia::TARGET_EXTERNAL) + if (target_type == LLPluginClassMedia::TARGET_EXTERNAL || + target_type == LLPluginClassMedia::TARGET_BLANK ) { - LLSD payload; - payload["url"] = url; - payload["target_type"] = LLSD::Integer(target_type); - LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, onClickLinkExternalTarget); - } - else if (target_type == LLPluginClassMedia::TARGET_BLANK) - { - clickLinkWithTarget(url, target_type); + if (gSavedSettings.getBOOL("UseExternalBrowser")) + { + LLSD payload; + payload["url"] = url; + payload["target_type"] = LLSD::Integer(target_type); + LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, onClickLinkExternalTarget); + } + else + { + clickLinkWithTarget(url, target_type); + } } else { const std::string protocol1( "http://" ); @@ -1042,7 +1046,7 @@ bool LLMediaCtrl::onClickLinkExternalTarget(const LLSD& notification, const LLSD // static void LLMediaCtrl::clickLinkWithTarget(const std::string& url, const S32& target_type ) { - if (gSavedSettings.getBOOL("UseExternalBrowser") || target_type == LLPluginClassMedia::TARGET_EXTERNAL) + if (target_type == LLPluginClassMedia::TARGET_EXTERNAL) { // load target in an external browser LLWeb::loadURLExternal(url); diff --git a/indra/newview/llmediadataclient.h b/indra/newview/llmediadataclient.h index 75d32e707b..8dd72cb595 100755 --- a/indra/newview/llmediadataclient.h +++ b/indra/newview/llmediadataclient.h @@ -37,7 +37,7 @@ #include <queue> #include "llrefcount.h" #include "llpointer.h" -#include "lltimer.h" +#include "lleventtimer.h" // Link seam for LLVOVolume diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index d579058c32..114fef8712 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -339,8 +339,7 @@ void LLNameListCtrl::refresh(const LLUUID& id, const std::string& first, LLScrollListItem* item = *iter; if (item->getUUID() == id) { - LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(0); - cell = item->getColumn(mNameColumnIndex); + LLScrollListCell* cell = item->getColumn(mNameColumnIndex); if (cell) { cell->setValue(fullname); @@ -356,8 +355,9 @@ void LLNameListCtrl::refresh(const LLUUID& id, const std::string& first, void LLNameListCtrl::refreshAll(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group) { + LLInstanceTrackerScopedGuard guard; LLInstanceTracker<LLNameListCtrl>::instance_iter it; - for (it = beginInstances(); it != endInstances(); ++it) + for (it = guard.beginInstances(); it != guard.endInstances(); ++it) { LLNameListCtrl& ctrl = *it; ctrl.refresh(id, first, last, is_group); diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp index 469f1c1739..ce4078409a 100644 --- a/indra/newview/llpanelgroup.cpp +++ b/indra/newview/llpanelgroup.cpp @@ -90,6 +90,7 @@ LLPanelGroup::LLPanelGroup() : LLPanel(), LLGroupMgrObserver( LLUUID() ), mSkipRefresh(FALSE), + mButtonJoin(NULL), mShowingNotifyDialog(false) { // Set up the factory callbacks. @@ -159,10 +160,6 @@ BOOL LLPanelGroup::postBuild() button = getChild<LLButton>("btn_chat"); button->setClickedCallback(onBtnGroupChatClicked, this); - button = getChild<LLButton>("btn_join"); - button->setVisible(false); - button->setEnabled(true); - button = getChild<LLButton>("btn_cancel"); button->setVisible(false); button->setEnabled(true); @@ -174,7 +171,7 @@ BOOL LLPanelGroup::postBuild() childSetCommitCallback("back",boost::bind(&LLPanelGroup::onBackBtnClick,this),NULL); childSetCommitCallback("btn_create",boost::bind(&LLPanelGroup::onBtnCreate,this),NULL); - childSetCommitCallback("btn_join",boost::bind(&LLPanelGroup::onBtnJoin,this),NULL); + childSetCommitCallback("btn_cancel",boost::bind(&LLPanelGroup::onBtnCancel,this),NULL); LLPanelGroupTab* panel_general = findChild<LLPanelGroupTab>("group_general_tab_panel"); @@ -188,7 +185,17 @@ BOOL LLPanelGroup::postBuild() if(panel_land) mTabs.push_back(panel_land); if(panel_general) + { panel_general->setupCtrls(this); + button = panel_general->getChild<LLButton>("btn_join"); + button->setVisible(false); + button->setEnabled(true); + + mButtonJoin = button; + mButtonJoin->setCommitCallback(boost::bind(&LLPanelGroup::onBtnJoin,this)); + + mJoinText = panel_general->getChild<LLUICtrl>("join_cost_text"); + } gVoiceClient->addObserver(this); @@ -326,16 +333,13 @@ void LLPanelGroup::update(LLGroupChange gc) { childSetValue("group_name", gdatap->mName); childSetToolTip("group_name",gdatap->mName); - - LLButton* btn_join = getChild<LLButton>("btn_join"); - LLUICtrl* join_text = getChild<LLUICtrl>("join_cost_text"); - + LLGroupData agent_gdatap; bool is_member = gAgent.getGroupData(mID,agent_gdatap); bool join_btn_visible = !is_member && gdatap->mOpenEnrollment; - btn_join->setVisible(join_btn_visible); - join_text->setVisible(join_btn_visible); + mButtonJoin->setVisible(join_btn_visible); + mJoinText->setVisible(join_btn_visible); if(join_btn_visible) { @@ -351,7 +355,7 @@ void LLPanelGroup::update(LLGroupChange gc) { fee_buff = getString("group_join_free", string_args); } - childSetValue("join_cost_text",fee_buff); + mJoinText->setValue(fee_buff); } } } @@ -380,7 +384,7 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id) LLButton* button_apply = findChild<LLButton>("btn_apply"); LLButton* button_refresh = findChild<LLButton>("btn_refresh"); LLButton* button_create = findChild<LLButton>("btn_create"); - LLButton* button_join = findChild<LLButton>("btn_join"); + LLButton* button_cancel = findChild<LLButton>("btn_cancel"); LLButton* button_call = findChild<LLButton>("btn_call"); LLButton* button_chat = findChild<LLButton>("btn_chat"); @@ -417,8 +421,8 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id) if(!tab_general || !tab_roles || !tab_notices || !tab_land) return; - if(button_join) - button_join->setVisible(false); + if(mButtonJoin) + mButtonJoin->setVisible(false); if(is_null_group_id)//creating new group @@ -478,6 +482,7 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id) } reposButtons(); + update(GC_ALL);//show/hide "join" button if data is already ready } bool LLPanelGroup::apply(LLPanelGroupTab* tab) diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h index 6e23eedffb..136868a60d 100644 --- a/indra/newview/llpanelgroup.h +++ b/indra/newview/llpanelgroup.h @@ -130,6 +130,9 @@ protected: std::vector<LLPanelGroupTab* > mTabs; + LLButton* mButtonJoin; + LLUICtrl* mJoinText; + }; class LLPanelGroupTab : public LLPanel diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp index 3b303eed0f..555e277ce5 100644 --- a/indra/newview/llpanelgroupgeneral.cpp +++ b/indra/newview/llpanelgroupgeneral.cpp @@ -206,15 +206,19 @@ BOOL LLPanelGroupGeneral::postBuild() void LLPanelGroupGeneral::setupCtrls(LLPanel* panel_group) { - mInsignia = panel_group->getChild<LLTextureCtrl>("insignia"); + mInsignia = getChild<LLTextureCtrl>("insignia"); if (mInsignia) { mInsignia->setCommitCallback(onCommitAny, this); mDefaultIconID = mInsignia->getImageAssetID(); } - mFounderName = panel_group->getChild<LLNameBox>("founder_name"); + mFounderName = getChild<LLNameBox>("founder_name"); + + mGroupNameEditor = panel_group->getChild<LLLineEditor>("group_name_editor"); mGroupNameEditor->setPrevalidate( LLTextValidate::validateASCII ); + + } // static diff --git a/indra/newview/llpanellandaudio.cpp b/indra/newview/llpanellandaudio.cpp index 6a4c909759..a92b4357ed 100644 --- a/indra/newview/llpanellandaudio.cpp +++ b/indra/newview/llpanellandaudio.cpp @@ -153,6 +153,13 @@ void LLPanelLandAudio::refresh() mCheckParcelEnableVoice->set(allow_voice); mCheckParcelVoiceLocal->set(!parcel->getParcelFlagUseEstateVoiceChannel()); + // don't display urls if you're not able to change it + // much requested change in forums so people can't 'steal' urls + // NOTE: bug#2009 means this is still vunerable - however, bug + // should be closed since this bug opens up major security issues elsewhere. + bool obscure_music = ! can_change_media && parcel->getObscureMusic(); + + mMusicURLEdit->setDrawAsterixes(obscure_music); mMusicURLEdit->setText(parcel->getMusicURL()); mMusicURLEdit->setEnabled( can_change_media ); } diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 7c1b0f6234..f1cb6e87a3 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -526,9 +526,10 @@ void LLLandmarksPanel::initLandmarksPanel(LLPlacesInventoryPanel* inventory_list { root_folder->setupMenuHandle(LLInventoryType::IT_CATEGORY, mGearFolderMenu->getHandle()); root_folder->setupMenuHandle(LLInventoryType::IT_LANDMARK, mGearLandmarkMenu->getHandle()); + + root_folder->setParentLandmarksPanel(this); } - root_folder->setParentLandmarksPanel(this); inventory_list->saveFolderState(); } diff --git a/indra/newview/llpanelme.cpp b/indra/newview/llpanelme.cpp index a68552a91e..3504cbd1ef 100644 --- a/indra/newview/llpanelme.cpp +++ b/indra/newview/llpanelme.cpp @@ -41,6 +41,7 @@ #include "llsidetray.h" #include "lltabcontainer.h" #include "lltexturectrl.h" +#include "llviewercontrol.h" #define PICKER_SECOND_LIFE "2nd_life_pic" #define PICKER_FIRST_LIFE "real_world_pic" @@ -70,18 +71,16 @@ void LLPanelMe::onOpen(const LLSD& key) { LLPanelProfile::onOpen(key); - if(key.isUndefined() || key.has("edit_my_profile")) + // Force Edit My Profile if this is the first time when user is opening Me Panel (EXT-5068) + bool opened = gSavedSettings.getBOOL("MePanelOpened"); + // In some cases Side Tray my call onOpen() twice, check getCollapsed() to be sure this + // is the last time onOpen() is called + if( !opened && !LLSideTray::getInstance()->getCollapsed() ) { - // Open Edit My Profile panel by default (through Side Tray -> My Profile) (EXT-4823) buildEditPanel(); openPanel(mEditPanel, getAvatarId()); - } - else if(mEditPanel) - { - // When opening Me Panel through Side Tray LLPanelMe::onOpen() is called twice. - // First time key can be undefined and second time - key may contain some data. - // Lets close Edit Panel if key does contain some data on second call. - closePanel(mEditPanel); + + gSavedSettings.setBOOL("MePanelOpened", true); } } diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 423ee61e25..36fab86280 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -36,6 +36,7 @@ #include "llfloaterreg.h" #include "llmenugl.h" #include "llnotificationsutil.h" +#include "lleventtimer.h" #include "llfiltereditor.h" #include "lltabcontainer.h" #include "lluictrlfactory.h" diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index a49386cb5c..17a970cfcf 100644 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -1015,7 +1015,8 @@ void LLPanelPlaces::showAddedLandmarkInfo(const std::vector<LLUUID>& items) LLInventoryItem* item = gInventory.getItem(item_id); - if (LLAssetType::AT_LANDMARK == item->getType()) + llassert(item); + if (item && (LLAssetType::AT_LANDMARK == item->getType()) ) { // Created landmark is passed to Places panel to allow its editing. // If the panel is closed we don't reopen it until created landmark is loaded. @@ -1023,7 +1024,6 @@ void LLPanelPlaces::showAddedLandmarkInfo(const std::vector<LLUUID>& items) { setItem(item); } - break; } } } diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp index 2dc3a62637..479769ee20 100644 --- a/indra/newview/llpanelprimmediacontrols.cpp +++ b/indra/newview/llpanelprimmediacontrols.cpp @@ -1036,8 +1036,9 @@ void LLPanelPrimMediaControls::updateZoom() } if (zoom_padding > 0.0f) - { - LLViewerMediaFocus::setCameraZoom(getTargetObject(), mTargetObjectNormal, zoom_padding); + { + // since we only zoom into medium for now, always set zoom_in constraint to true + LLViewerMediaFocus::setCameraZoom(getTargetObject(), mTargetObjectNormal, zoom_padding, true); } // Remember the object ID/face we zoomed into, so we can update the zoom icon appropriately diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp index 0d9cf06bc3..a81ec61263 100644 --- a/indra/newview/llscriptfloater.cpp +++ b/indra/newview/llscriptfloater.cpp @@ -38,9 +38,11 @@ #include "llchiclet.h" #include "llfloaterreg.h" #include "llnotifications.h" +#include "llnotificationsutil.h" #include "llscreenchannel.h" #include "llsyswellwindow.h" #include "lltoastnotifypanel.h" +#include "lltrans.h" #include "llviewerwindow.h" #include "llimfloater.h" @@ -70,12 +72,8 @@ LLScriptFloater::LLScriptFloater(const LLSD& key) setOverlapsScreenChannel(true); } -bool LLScriptFloater::toggle(const LLUUID& object_id) +bool LLScriptFloater::toggle(const LLUUID& notification_id) { - // Force chiclet toggle on here because first onFocusReceived() will not toggle it on. - LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(object_id, true); - - LLUUID notification_id = LLScriptFloaterManager::getInstance()->findNotificationId(object_id); LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", notification_id); // show existing floater @@ -90,28 +88,28 @@ bool LLScriptFloater::toggle(const LLUUID& object_id) { floater->setVisible(TRUE); floater->setFocus(TRUE); - return true; } } // create and show new floater else { - show(object_id); - return true; + show(notification_id); } + + LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(notification_id, true); + return true; } -LLScriptFloater* LLScriptFloater::show(const LLUUID& object_id) +LLScriptFloater* LLScriptFloater::show(const LLUUID& notification_id) { - LLUUID notification_id = LLScriptFloaterManager::getInstance()->findNotificationId(object_id); - - LLScriptFloater* floater = LLFloaterReg::showTypedInstance<LLScriptFloater>("script_floater", notification_id); - floater->setObjectId(object_id); - floater->createForm(object_id); + LLScriptFloater* floater = LLFloaterReg::getTypedInstance<LLScriptFloater>("script_floater", notification_id); + floater->setNotificationId(notification_id); + floater->createForm(notification_id); + LLFloaterReg::showTypedInstance<LLScriptFloater>("script_floater", notification_id, TRUE); if (floater->getDockControl() == NULL) { - LLChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLChiclet>(object_id); + LLChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLChiclet>(notification_id); if (chiclet == NULL) { llerror("Dock chiclet for LLScriptFloater doesn't exist", 0); @@ -133,7 +131,7 @@ void LLScriptFloater::getAllowedRect(LLRect& rect) rect = gViewerWindow->getWorldViewRectRaw(); } -void LLScriptFloater::createForm(const LLUUID& object_id) +void LLScriptFloater::createForm(const LLUUID& notification_id) { // delete old form if(mScriptForm) @@ -142,8 +140,7 @@ void LLScriptFloater::createForm(const LLUUID& object_id) mScriptForm->die(); } - LLNotificationPtr notification = LLNotifications::getInstance()->find( - LLScriptFloaterManager::getInstance()->findNotificationId(object_id)); + LLNotificationPtr notification = LLNotifications::getInstance()->find(notification_id); if(NULL == notification) { return; @@ -165,9 +162,9 @@ void LLScriptFloater::createForm(const LLUUID& object_id) void LLScriptFloater::onClose(bool app_quitting) { - if(getObjectId().notNull()) + if(getNotificationId().notNull()) { - LLScriptFloaterManager::getInstance()->removeNotificationByObjectId(getObjectId()); + LLScriptFloaterManager::getInstance()->onRemoveNotification(getNotificationId()); } } @@ -186,7 +183,7 @@ void LLScriptFloater::setVisible(BOOL visible) if(!visible) { - LLIMChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLIMChiclet>(getObjectId()); + LLIMChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLIMChiclet>(getNotificationId()); if(chiclet) { chiclet->setToggleState(false); @@ -196,10 +193,10 @@ void LLScriptFloater::setVisible(BOOL visible) void LLScriptFloater::onMouseDown() { - if(getObjectId().notNull()) + if(getNotificationId().notNull()) { // Remove new message icon - LLIMChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLIMChiclet>(getObjectId()); + LLIMChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLIMChiclet>(getNotificationId()); if (chiclet == NULL) { llerror("Dock chiclet for LLScriptFloater doesn't exist", 0); @@ -213,15 +210,18 @@ void LLScriptFloater::onMouseDown() void LLScriptFloater::onFocusLost() { - LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(getObjectId(), false); + if(getNotificationId().notNull()) + { + LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(getNotificationId(), false); + } } void LLScriptFloater::onFocusReceived() { // first focus will be received before setObjectId() call - don't toggle chiclet - if(getObjectId().notNull()) + if(getNotificationId().notNull()) { - LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(getObjectId(), true); + LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(getNotificationId(), true); } } @@ -246,200 +246,203 @@ void LLScriptFloater::hideToastsIfNeeded() void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id) { - // get scripted Object's ID - LLUUID object_id = notification_id_to_object_id(notification_id); - if(object_id.isNull()) + if(notification_id.isNull()) { - llwarns << "Invalid notification, no object id" << llendl; + llwarns << "Invalid notification ID" << llendl; return; } + // get scripted Object's ID + LLUUID object_id = notification_id_to_object_id(notification_id); + // Need to indicate of "new message" for object chiclets according to requirements // specified in the Message Bar design specification. See EXT-3142. bool set_new_message = false; + EObjectType obj_type = getObjectType(notification_id); - // If an Object spawns more-than-one floater, only the newest one is shown. - // The previous is automatically closed. - script_notification_map_t::iterator it = mNotifications.find(object_id); - if(it != mNotifications.end()) + // LLDialog can spawn only one instance, LLLoadURL and LLGiveInventory can spawn unlimited number of instances + if(OBJ_SCRIPT == obj_type) { - LLIMChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLIMChiclet>(object_id); - if(chiclet) + // If an Object spawns more-than-one floater, only the newest one is shown. + // The previous is automatically closed. + script_notification_map_t::const_iterator it = findUsingObjectId(object_id); + if(it != mNotifications.end()) { - // Pass the new_message icon state further. - set_new_message = chiclet->getShowNewMessagesIcon(); - } + LLIMChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLIMChiclet>(it->first); + if(chiclet) + { + // Pass the new_message icon state further. + set_new_message = chiclet->getShowNewMessagesIcon(); + } - LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", it->second.notification_id); - if(floater) - { - // Generate chiclet with a "new message" indicator if a docked window was opened but not in focus. See EXT-3142. - set_new_message |= !floater->hasFocus(); - } + LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", it->first); + if(floater) + { + // Generate chiclet with a "new message" indicator if a docked window was opened but not in focus. See EXT-3142. + set_new_message |= !floater->hasFocus(); + } - onRemoveNotification(it->second.notification_id); + onRemoveNotification(it->first); + } } - LLNotificationData nd = {notification_id}; - mNotifications.insert(std::make_pair(object_id, nd)); + mNotifications.insert(std::make_pair(notification_id, object_id)); // Create inventory offer chiclet for offer type notifications - LLNotificationPtr notification = LLNotifications::getInstance()->find(notification_id); - if( notification && notification->getType() == "offer" ) + if( OBJ_GIVE_INVENTORY == obj_type ) { - LLBottomTray::instance().getChicletPanel()->createChiclet<LLInvOfferChiclet>(object_id); + LLBottomTray::instance().getChicletPanel()->createChiclet<LLInvOfferChiclet>(notification_id); } else { - LLBottomTray::getInstance()->getChicletPanel()->createChiclet<LLScriptChiclet>(object_id); + LLBottomTray::getInstance()->getChicletPanel()->createChiclet<LLScriptChiclet>(notification_id); } - LLIMWellWindow::getInstance()->addObjectRow(object_id, set_new_message); + LLIMWellWindow::getInstance()->addObjectRow(notification_id, set_new_message); LLSD data; - data["object_id"] = object_id; + data["notification_id"] = notification_id; data["new_message"] = set_new_message; data["unread"] = 1; // each object has got only one floater mNewObjectSignal(data); - toggleScriptFloater(object_id, set_new_message); + toggleScriptFloater(notification_id, set_new_message); } void LLScriptFloaterManager::onRemoveNotification(const LLUUID& notification_id) { - LLUUID object_id = findObjectId(notification_id); - if(object_id.isNull()) + if(notification_id.isNull()) { - llwarns << "Invalid notification, no object id" << llendl; + llwarns << "Invalid notification ID" << llendl; return; } - using namespace LLNotificationsUI; - - // remove related toast - LLUUID channel_id(gSavedSettings.getString("NotificationChannelUUID")); - LLScreenChannel* channel = dynamic_cast<LLScreenChannel*> - (LLChannelManager::getInstance()->findChannelByID(channel_id)); - LLUUID n_toast_id = findNotificationToastId(object_id); - if(channel && n_toast_id.notNull()) - { - channel->killToastByNotificationID(n_toast_id); - } - // remove related chiclet - LLBottomTray::getInstance()->getChicletPanel()->removeChiclet(object_id); + LLBottomTray::getInstance()->getChicletPanel()->removeChiclet(notification_id); - LLIMWellWindow::getInstance()->removeObjectRow(object_id); + LLIMWellWindow::getInstance()->removeObjectRow(notification_id); // close floater LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", notification_id); if(floater) { - floater->setObjectId(LLUUID::null); + floater->setNotificationId(LLUUID::null); floater->closeFloater(); } - mNotifications.erase(object_id); -} - -void LLScriptFloaterManager::removeNotificationByObjectId(const LLUUID& object_id) -{ - // Check we have not removed notification yet - LLNotificationPtr notification = LLNotifications::getInstance()->find( - findNotificationId(object_id)); - if(notification) - { - onRemoveNotification(notification->getID()); - } + mNotifications.erase(notification_id); } -void LLScriptFloaterManager::toggleScriptFloater(const LLUUID& object_id, bool set_new_message) +void LLScriptFloaterManager::toggleScriptFloater(const LLUUID& notification_id, bool set_new_message) { - // kill toast - using namespace LLNotificationsUI; - LLScreenChannel* channel = dynamic_cast<LLScreenChannel*>(LLChannelManager::getInstance()->findChannelByID( - LLUUID(gSavedSettings.getString("NotificationChannelUUID")))); - if(channel) - { - channel->killToastByNotificationID(findNotificationToastId(object_id)); - } - LLSD data; - data["object_id"] = object_id; + data["notification_id"] = notification_id; data["new_message"] = set_new_message; mToggleFloaterSignal(data); // toggle floater - LLScriptFloater::toggle(object_id); + LLScriptFloater::toggle(notification_id); } -void LLScriptFloaterManager::setNotificationToastId(const LLUUID& object_id, const LLUUID& notification_id) +LLUUID LLScriptFloaterManager::findObjectId(const LLUUID& notification_id) { - script_notification_map_t::iterator it = mNotifications.find(object_id); + script_notification_map_t::const_iterator it = mNotifications.find(notification_id); if(mNotifications.end() != it) { - it->second.toast_notification_id = notification_id; + return it->second; } + return LLUUID::null; } -LLUUID LLScriptFloaterManager::findObjectId(const LLUUID& notification_id) +LLUUID LLScriptFloaterManager::findNotificationId(const LLUUID& object_id) { - if(notification_id.notNull()) + if(object_id.notNull()) { - script_notification_map_t::const_iterator it = mNotifications.begin(); - for(; mNotifications.end() != it; ++it) + script_notification_map_t::const_iterator it = findUsingObjectId(object_id); + if(mNotifications.end() != it) { - if(notification_id == it->second.notification_id) - { - return it->first; - } + return it->first; } } return LLUUID::null; } -LLUUID LLScriptFloaterManager::findNotificationId(const LLUUID& object_id) +// static +LLScriptFloaterManager::EObjectType LLScriptFloaterManager::getObjectType(const LLUUID& notification_id) { - script_notification_map_t::const_iterator it = mNotifications.find(object_id); - if(mNotifications.end() != it) + if(notification_id.isNull()) { - return it->second.notification_id; + llwarns << "Invalid notification ID" << llendl; + return OBJ_UNKNOWN; } - return LLUUID::null; -} -LLUUID LLScriptFloaterManager::findNotificationToastId(const LLUUID& object_id) -{ - script_notification_map_t::const_iterator it = mNotifications.find(object_id); - if(mNotifications.end() != it) + static const object_type_map TYPE_MAP = initObjectTypeMap(); + + LLNotificationPtr notification = LLNotificationsUtil::find(notification_id); + object_type_map::const_iterator it = TYPE_MAP.find(notification->getName()); + if(it != TYPE_MAP.end()) { - return it->second.toast_notification_id; + return it->second; } - return LLUUID::null; + + llwarns << "Unknown object type" << llendl; + return OBJ_UNKNOWN; } -//static -void LLScriptFloaterManager::onToastButtonClick(const LLSD¬ification, const LLSD&response) +// static +std::string LLScriptFloaterManager::getObjectName(const LLUUID& notification_id) { - S32 option = LLNotification::getSelectedOption(notification, response); - LLUUID object_id = notification["payload"]["object_id"].asUUID(); + using namespace LLNotificationsUI; + LLNotificationPtr notification = LLNotifications::getInstance()->find(notification_id); + if(!notification) + { + llwarns << "Invalid notification" << llendl; + return LLStringUtil::null; + } - switch(option) + std::string text; + + switch(LLScriptFloaterManager::getObjectType(notification_id)) { - case 0: // "Open" - LLScriptFloaterManager::getInstance()->toggleScriptFloater(object_id); + case LLScriptFloaterManager::OBJ_SCRIPT: + text = notification->getSubstitutions()["TITLE"].asString(); break; - case 1: // "Ignore" - LLScriptFloaterManager::getInstance()->removeNotificationByObjectId(object_id); + case LLScriptFloaterManager::OBJ_LOAD_URL: + text = notification->getSubstitutions()["OBJECTNAME"].asString(); break; - case 2: // "Block" - LLMuteList::getInstance()->add(LLMute(object_id, notification["substitutions"]["TITLE"], LLMute::OBJECT)); - LLScriptFloaterManager::getInstance()->removeNotificationByObjectId(object_id); + case LLScriptFloaterManager::OBJ_GIVE_INVENTORY: + text = notification->getSubstitutions()["NAME"].asString(); break; default: - llwarns << "Unexpected value" << llendl; + text = LLTrans::getString("object"); break; } + + return text; +} + +//static +LLScriptFloaterManager::object_type_map LLScriptFloaterManager::initObjectTypeMap() +{ + object_type_map type_map; + type_map["ScriptDialog"] = OBJ_SCRIPT; + type_map["ScriptDialogGroup"] = OBJ_SCRIPT; + type_map["LoadWebPage"] = OBJ_LOAD_URL; + type_map["ObjectGiveItem"] = OBJ_GIVE_INVENTORY; + return type_map; +} + +LLScriptFloaterManager::script_notification_map_t::const_iterator LLScriptFloaterManager::findUsingObjectId(const LLUUID& object_id) +{ + script_notification_map_t::const_iterator it = mNotifications.begin(); + for(; mNotifications.end() != it; ++it) + { + if(object_id == it->second) + { + return it; + } + } + return mNotifications.end(); } // EOF diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h index f86605c5d1..f7efff83f9 100644 --- a/indra/newview/llscriptfloater.h +++ b/indra/newview/llscriptfloater.h @@ -48,6 +48,15 @@ class LLScriptFloaterManager : public LLSingleton<LLScriptFloaterManager> // know how script notifications should look like. public: + typedef enum e_object_type + { + OBJ_SCRIPT, + OBJ_GIVE_INVENTORY, + OBJ_LOAD_URL, + + OBJ_UNKNOWN + }EObjectType; + /** * Handles new notifications. * Saves notification and object ids, removes old notification if needed, creates script chiclet @@ -62,11 +71,6 @@ public: void onRemoveNotification(const LLUUID& notification_id); /** - * Wrapper for onRemoveNotification, removes notification by object id. - */ - void removeNotificationByObjectId(const LLUUID& object_id); - - /** * Toggles script floater. * Removes "new message" icon from chiclet and removes notification toast. */ @@ -76,12 +80,9 @@ public: LLUUID findNotificationId(const LLUUID& object_id); - LLUUID findNotificationToastId(const LLUUID& object_id); + static EObjectType getObjectType(const LLUUID& notification_id); - /** - * Associate notification toast id with object id. - */ - void setNotificationToastId(const LLUUID& object_id, const LLUUID& notification_id); + static std::string getObjectName(const LLUUID& notification_id); /** * Callback for notification toast buttons. @@ -93,16 +94,18 @@ public: boost::signals2::connection addNewObjectCallback(const object_signal_t::slot_type& cb) { return mNewObjectSignal.connect(cb); } boost::signals2::connection addToggleObjectFloaterCallback(const object_signal_t::slot_type& cb) { return mToggleFloaterSignal.connect(cb); } -private: +protected: - struct LLNotificationData - { - LLUUID notification_id; - LLUUID toast_notification_id; - }; + typedef std::map<std::string, EObjectType> object_type_map; + + static object_type_map initObjectTypeMap(); - // <object_id, notification_data> - typedef std::map<LLUUID, LLNotificationData> script_notification_map_t; + // <notification_id, object_id> + typedef std::map<LLUUID, LLUUID> script_notification_map_t; + + script_notification_map_t::const_iterator findUsingObjectId(const LLUUID& object_id); + +private: script_notification_map_t mNotifications; @@ -136,9 +139,9 @@ public: */ static LLScriptFloater* show(const LLUUID& object_id); - const LLUUID& getObjectId() { return mObjectId; } + const LLUUID& getNotificationId() { return mNotificationId; } - void setObjectId(const LLUUID& id) { mObjectId = id; } + void setNotificationId(const LLUUID& id) { mNotificationId = id; } /** * Close notification if script floater is closed. @@ -180,7 +183,7 @@ protected: private: LLToastNotifyPanel* mScriptForm; - LLUUID mObjectId; + LLUUID mNotificationId; }; #endif //LL_SCRIPTFLOATER_H diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index 43215f86bd..cd4a821774 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -278,7 +278,7 @@ void LLSidepanelAppearance::toggleLookInfoPanel(BOOL visible) return; mLookInfo->setVisible(visible); - mPanelOutfitsInventory->setVisible(!visible); + if (mPanelOutfitsInventory) mPanelOutfitsInventory->setVisible(!visible); mFilterEditor->setVisible(!visible); mEditBtn->setVisible(!visible); mNewOutfitBtn->setVisible(!visible); @@ -305,7 +305,7 @@ void LLSidepanelAppearance::updateVerbs() { bool is_look_info_visible = mLookInfo->getVisible(); - if (!is_look_info_visible) + if (mPanelOutfitsInventory && !is_look_info_visible) { const bool is_correct_type = (mPanelOutfitsInventory->getCorrectListenerForAction() != NULL); mEditBtn->setEnabled(is_correct_type); diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp index 3fd5309947..73880563d7 100644 --- a/indra/newview/llsidepanelinventory.cpp +++ b/indra/newview/llsidepanelinventory.cpp @@ -62,7 +62,7 @@ BOOL LLSidepanelInventory::postBuild() // UI elements from inventory panel { mInventoryPanel = getChild<LLPanel>("sidepanel__inventory_panel"); - + mInfoBtn = mInventoryPanel->getChild<LLButton>("info_btn"); mInfoBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onInfoButtonClicked, this)); @@ -83,6 +83,14 @@ BOOL LLSidepanelInventory::postBuild() mPanelMainInventory = mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory"); mPanelMainInventory->setSelectCallback(boost::bind(&LLSidepanelInventory::onSelectionChange, this, _1, _2)); + + /* + EXT-4846 : "Can we suppress the "Landmarks" and "My Favorites" folder since they have their own Task Panel?" + Deferring this until 2.1. + LLInventoryPanel *my_inventory_panel = mPanelMainInventory->getChild<LLInventoryPanel>("All Items"); + my_inventory_panel->addHideFolderType(LLFolderType::FT_LANDMARK); + my_inventory_panel->addHideFolderType(LLFolderType::FT_FAVORITE); + */ } // UI elements from item panel diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h index b1c8675793..140a9c818a 100644 --- a/indra/newview/llsidetray.h +++ b/indra/newview/llsidetray.h @@ -139,6 +139,8 @@ public: LLPanel* getButtonsPanel() { return mButtonsPanel; } + bool getCollapsed() { return mCollapsed; } + public: virtual ~LLSideTray(){}; diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index 786fa24e65..717a8bda1e 100644 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -175,6 +175,11 @@ BOOL LLSpeakerActionTimer::tick() return TRUE; } +void LLSpeakerActionTimer::unset() +{ + mActionCallback = 0; +} + LLSpeakersDelayActionsStorage::LLSpeakersDelayActionsStorage(LLSpeakerActionTimer::action_callback_t action_cb, F32 action_delay) : mActionCallback(action_cb) , mActionDelay(action_delay) @@ -205,7 +210,7 @@ void LLSpeakersDelayActionsStorage::setActionTimer(const LLUUID& speaker_id) } } -void LLSpeakersDelayActionsStorage::unsetActionTimer(const LLUUID& speaker_id, bool delete_it) +void LLSpeakersDelayActionsStorage::unsetActionTimer(const LLUUID& speaker_id) { if (mActionTimersMap.size() == 0) return; @@ -213,10 +218,7 @@ void LLSpeakersDelayActionsStorage::unsetActionTimer(const LLUUID& speaker_id, b if (it_speaker != mActionTimersMap.end()) { - if (delete_it) - { - delete it_speaker->second; - } + it_speaker->second->unset(); mActionTimersMap.erase(it_speaker); } } @@ -233,8 +235,7 @@ void LLSpeakersDelayActionsStorage::removeAllTimers() bool LLSpeakersDelayActionsStorage::onTimerActionCallback(const LLUUID& speaker_id) { - bool delete_it = false; // we're *in* this timer, return true to delete it, don't manually delete it - unsetActionTimer(speaker_id, delete_it); + unsetActionTimer(speaker_id); if (mActionCallback) { @@ -293,9 +294,7 @@ LLPointer<LLSpeaker> LLSpeakerMgr::setSpeaker(const LLUUID& id, const std::strin } } - bool delete_it = true; - mSpeakerDelayRemover->unsetActionTimer(speakerp->mID, delete_it); - + mSpeakerDelayRemover->unsetActionTimer(speakerp->mID); return speakerp; } diff --git a/indra/newview/llspeakers.h b/indra/newview/llspeakers.h index ddc3632f07..b924fb2f2c 100644 --- a/indra/newview/llspeakers.h +++ b/indra/newview/llspeakers.h @@ -34,6 +34,7 @@ #define LL_LLSPEAKERS_H #include "llevent.h" +#include "lleventtimer.h" #include "llspeakers.h" #include "llvoicechannel.h" @@ -155,6 +156,13 @@ public: */ virtual BOOL tick(); + /** + * Clears the callback. + * + * Use this instead of deleteing this object. + * The next call to tick() will return true and that will destroy this object. + */ + void unset(); private: action_callback_t mActionCallback; LLUUID mSpeakerId; @@ -180,7 +188,7 @@ public: * * @see onTimerActionCallback() */ - void unsetActionTimer(const LLUUID& speaker_id, bool delete_it); + void unsetActionTimer(const LLUUID& speaker_id); void removeAllTimers(); private: @@ -188,7 +196,6 @@ private: * Callback of the each instance of LLSpeakerActionTimer. * * Unsets an appropriate timer instance and calls action callback for specified speacker_id. - * It always returns false to not use LLEventTimer::updateClass functionality of timer deleting. * * @see unsetActionTimer() */ diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 7f002db364..d1b91df6e9 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -135,13 +135,14 @@ #include "llsecondlifeurls.h" #include "llselectmgr.h" #include "llsky.h" +#include "llsidetray.h" #include "llstatview.h" -#include "lltrans.h" #include "llstatusbar.h" // sendMoneyBalanceRequest(), owns L$ balance #include "llsurface.h" #include "lltexturecache.h" #include "lltexturefetch.h" #include "lltoolmgr.h" +#include "lltrans.h" #include "llui.h" #include "llurldispatcher.h" #include "llurlsimstring.h" @@ -1201,6 +1202,7 @@ bool idle_startup() display_startup(); LLStartUp::setStartupState( STATE_MULTIMEDIA_INIT ); + return FALSE; } @@ -1707,6 +1709,9 @@ bool idle_startup() // Set the show start location to true, now that the user has logged // on with this install. gSavedSettings.setBOOL("ShowStartLocation", TRUE); + + LLSideTray::getInstance()->showPanel("panel_home", LLSD()); + } // We're successfully logged in. @@ -2559,27 +2564,53 @@ void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name, // try to find the outfit - if not there, create some default // wearables. - LLInventoryModel::cat_array_t cat_array; - LLInventoryModel::item_array_t item_array; - LLNameCategoryCollector has_name(outfit_folder_name); - gInventory.collectDescendentsIf(gInventory.getLibraryRootFolderID(), - cat_array, - item_array, - LLInventoryModel::EXCLUDE_TRASH, - has_name); - if (0 == cat_array.count()) + LLUUID cat_id = findDescendentCategoryIDByName( + gInventory.getLibraryRootFolderID(), + outfit_folder_name); + if (cat_id.isNull()) { gAgentWearables.createStandardWearables(gender); } else { - LLInventoryCategory* cat = cat_array.get(0); bool do_copy = true; bool do_append = false; + LLViewerInventoryCategory *cat = gInventory.getCategory(cat_id); LLAppearanceManager::instance().wearInventoryCategory(cat, do_copy, do_append); } - LLAppearanceManager::instance().wearOutfitByName(gestures); - LLAppearanceManager::instance().wearOutfitByName(COMMON_GESTURES_FOLDER); + + // Copy gestures + LLUUID dst_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_GESTURE); + LLPointer<LLInventoryCallback> cb(NULL); + LLAppearanceManager *app_mgr = &(LLAppearanceManager::instance()); + + // - Copy gender-specific gestures. + LLUUID gestures_cat_id = findDescendentCategoryIDByName( + gInventory.getLibraryRootFolderID(), + gestures); + if (gestures_cat_id.notNull()) + { + callAfterCategoryFetch(gestures_cat_id, + boost::bind(&LLAppearanceManager::shallowCopyCategory, + app_mgr, + gestures_cat_id, + dst_id, + cb)); + } + + // - Copy common gestures. + LLUUID common_gestures_cat_id = findDescendentCategoryIDByName( + gInventory.getLibraryRootFolderID(), + COMMON_GESTURES_FOLDER); + if (common_gestures_cat_id.notNull()) + { + callAfterCategoryFetch(common_gestures_cat_id, + boost::bind(&LLAppearanceManager::shallowCopyCategory, + app_mgr, + common_gestures_cat_id, + dst_id, + cb)); + } // This is really misnamed -- it means we have started loading // an outfit/shape that will give the avatar a gender eventually. JC diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index ba15053381..127b4265ca 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -404,7 +404,10 @@ BOOL LLIMWellWindow::RowPanel::handleMouseDown(S32 x, S32 y, MASK mask) { // Pass the mouse down event to the chiclet (EXT-596). if (!mChiclet->pointInView(x, y) && !mCloseBtn->getRect().pointInRect(x, y)) // prevent double call of LLIMChiclet::onMouseDown() + { mChiclet->onMouseDown(); + return TRUE; + } return LLPanel::handleMouseDown(x, y, mask); } @@ -418,16 +421,16 @@ BOOL LLIMWellWindow::RowPanel::handleRightMouseDown(S32 x, S32 y, MASK mask) /* ObjectRowPanel implementation */ /************************************************************************/ -LLIMWellWindow::ObjectRowPanel::ObjectRowPanel(const LLUUID& object_id, bool new_message/* = false*/) +LLIMWellWindow::ObjectRowPanel::ObjectRowPanel(const LLUUID& notification_id, bool new_message/* = false*/) : LLPanel() , mChiclet(NULL) { LLUICtrlFactory::getInstance()->buildPanel(this, "panel_active_object_row.xml", NULL); - initChiclet(object_id); + initChiclet(notification_id); LLTextBox* obj_name = getChild<LLTextBox>("object_name"); - obj_name->setValue(getObjectName(object_id)); + obj_name->setValue(LLScriptFloaterManager::getObjectName(notification_id)); mCloseBtn = getChild<LLButton>("hide_btn"); mCloseBtn->setCommitCallback(boost::bind(&LLIMWellWindow::ObjectRowPanel::onClosePanel, this)); @@ -438,90 +441,18 @@ LLIMWellWindow::ObjectRowPanel::~ObjectRowPanel() { } -std::string LLIMWellWindow::ObjectRowPanel::getObjectName(const LLUUID& object_id) -{ - using namespace LLNotificationsUI; - LLUUID notification_id = LLScriptFloaterManager::getInstance()->findNotificationId(object_id); - LLNotificationPtr notification = LLNotifications::getInstance()->find(notification_id); - if(!notification) - { - llwarns << "Invalid notification" << llendl; - return LLStringUtil::null; - } - - std::string text; - - switch(getObjectType(notification)) - { - case OBJ_SCRIPT: - text = notification->getSubstitutions()["TITLE"].asString(); - break; - case OBJ_LOAD_URL: - text = notification->getSubstitutions()["OBJECTNAME"].asString(); - break; - case OBJ_GIVE_INVENTORY: - text = notification->getSubstitutions()["NAME"].asString(); - break; - default: - text = getString("unknown_obj"); - break; - } - - return text; -} - //--------------------------------------------------------------------------------- void LLIMWellWindow::ObjectRowPanel::onClosePanel() { - LLScriptFloaterManager::getInstance()->removeNotificationByObjectId(mChiclet->getSessionId()); -} - -//static -LLIMWellWindow::ObjectRowPanel::object_type_map LLIMWellWindow::ObjectRowPanel::initObjectTypeMap() -{ - object_type_map type_map; - type_map["ScriptDialog"] = OBJ_SCRIPT; - type_map["LoadWebPage"] = OBJ_LOAD_URL; - type_map["ObjectGiveItem"] = OBJ_GIVE_INVENTORY; - return type_map; -} - -// static -LLIMWellWindow::ObjectRowPanel::EObjectType LLIMWellWindow::ObjectRowPanel::getObjectType(const LLNotificationPtr& notification) -{ - if(!notification) - { - llwarns << "Invalid notification" << llendl; - return OBJ_UNKNOWN; - } - - static object_type_map type_map = initObjectTypeMap(); - std::string name = notification->getName(); - object_type_map::const_iterator it = type_map.find(name); - if(it != type_map.end()) - { - return it->second; - } - - llwarns << "Unknown object type" << llendl; - return OBJ_UNKNOWN; + LLScriptFloaterManager::getInstance()->onRemoveNotification(mChiclet->getSessionId()); } -void LLIMWellWindow::ObjectRowPanel::initChiclet(const LLUUID& object_id, bool new_message/* = false*/) +void LLIMWellWindow::ObjectRowPanel::initChiclet(const LLUUID& notification_id, bool new_message/* = false*/) { - using namespace LLNotificationsUI; - LLUUID notification_id = LLScriptFloaterManager::getInstance()->findNotificationId(object_id); - LLNotificationPtr notification = LLNotifications::getInstance()->find(notification_id); - if(!notification) - { - llwarns << "Invalid notification" << llendl; - return; - } - // Choose which of the pre-created chiclets to use. - switch(getObjectType(notification)) + switch(LLScriptFloaterManager::getObjectType(notification_id)) { - case OBJ_GIVE_INVENTORY: + case LLScriptFloaterManager::OBJ_GIVE_INVENTORY: mChiclet = getChild<LLInvOfferChiclet>("inv_offer_chiclet"); break; default: @@ -530,8 +461,7 @@ void LLIMWellWindow::ObjectRowPanel::initChiclet(const LLUUID& object_id, bool n } mChiclet->setVisible(true); - mChiclet->setSessionId(object_id); -// mChiclet->setShowNewMessagesIcon(new_message); + mChiclet->setSessionId(notification_id); } //--------------------------------------------------------------------------------- @@ -552,7 +482,10 @@ BOOL LLIMWellWindow::ObjectRowPanel::handleMouseDown(S32 x, S32 y, MASK mask) { // Pass the mouse down event to the chiclet (EXT-596). if (!mChiclet->pointInView(x, y) && !mCloseBtn->getRect().pointInRect(x, y)) // prevent double call of LLIMChiclet::onMouseDown() + { mChiclet->onMouseDown(); + return TRUE; + } return LLPanel::handleMouseDown(x, y, mask); } @@ -780,10 +713,10 @@ void LLIMWellWindow::sessionIDUpdated(const LLUUID& old_session_id, const LLUUID } } -LLChiclet* LLIMWellWindow::findObjectChiclet(const LLUUID& object_id) +LLChiclet* LLIMWellWindow::findObjectChiclet(const LLUUID& notification_id) { LLChiclet* res = NULL; - ObjectRowPanel* panel = mMessageList->getTypedItemByValue<ObjectRowPanel>(object_id); + ObjectRowPanel* panel = mMessageList->getTypedItemByValue<ObjectRowPanel>(notification_id); if (panel != NULL) { res = panel->mChiclet; @@ -861,33 +794,33 @@ void LLIMWellWindow::delIMRow(const LLUUID& sessionId) } } -void LLIMWellWindow::addObjectRow(const LLUUID& object_id, bool new_message/* = false*/) +void LLIMWellWindow::addObjectRow(const LLUUID& notification_id, bool new_message/* = false*/) { - if (mMessageList->getItemByValue(object_id) == NULL) + if (mMessageList->getItemByValue(notification_id) == NULL) { - ObjectRowPanel* item = new ObjectRowPanel(object_id, new_message); - if (mMessageList->insertItemAfter(mSeparator, item, object_id)) + ObjectRowPanel* item = new ObjectRowPanel(notification_id, new_message); + if (mMessageList->insertItemAfter(mSeparator, item, notification_id)) { handleItemAdded(IT_INSTANT_MESSAGE); } else { - llwarns << "Unable to add Object Row into the list, objectID: " << object_id << llendl; + llwarns << "Unable to add Object Row into the list, notificationID: " << notification_id << llendl; item->die(); } reshapeWindow(); } } -void LLIMWellWindow::removeObjectRow(const LLUUID& object_id) +void LLIMWellWindow::removeObjectRow(const LLUUID& notification_id) { - if (mMessageList->removeItemByValue(object_id)) + if (mMessageList->removeItemByValue(notification_id)) { handleItemRemoved(IT_INSTANT_MESSAGE); } else { - llwarns << "Unable to remove Object Row from the list, objectID: " << object_id << llendl; + llwarns << "Unable to remove Object Row from the list, notificationID: " << notification_id << llendl; } reshapeWindow(); @@ -967,8 +900,7 @@ void LLIMWellWindow::closeAllImpl() ObjectRowPanel* obj_panel = dynamic_cast <ObjectRowPanel*> (panel); if (obj_panel) { - LLScriptFloaterManager::instance() - .removeNotificationByObjectId(*iter); + LLScriptFloaterManager::instance().onRemoveNotification(*iter); } } } diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h index 0c81d1f369..3790aa3ea9 100644 --- a/indra/newview/llsyswellwindow.h +++ b/indra/newview/llsyswellwindow.h @@ -188,8 +188,8 @@ public: /*virtual*/ void sessionRemoved(const LLUUID& session_id); /*virtual*/ void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id); - void addObjectRow(const LLUUID& object_id, bool new_message = false); - void removeObjectRow(const LLUUID& object_id); + void addObjectRow(const LLUUID& notification_id, bool new_message = false); + void removeObjectRow(const LLUUID& notification_id); void addIMRow(const LLUUID& session_id); bool hasIMRow(const LLUUID& session_id); @@ -201,7 +201,7 @@ protected: private: LLChiclet * findIMChiclet(const LLUUID& sessionId); - LLChiclet* findObjectChiclet(const LLUUID& object_id); + LLChiclet* findObjectChiclet(const LLUUID& notification_id); void addIMRow(const LLUUID& sessionId, S32 chicletCounter, const std::string& name, const LLUUID& otherParticipantId); void delIMRow(const LLUUID& sessionId); @@ -235,17 +235,8 @@ private: class ObjectRowPanel: public LLPanel { - typedef enum e_object_type - { - OBJ_UNKNOWN, - - OBJ_SCRIPT, - OBJ_GIVE_INVENTORY, - OBJ_LOAD_URL - }EObjectType; - public: - ObjectRowPanel(const LLUUID& object_id, bool new_message = false); + ObjectRowPanel(const LLUUID& notification_id, bool new_message = false); virtual ~ObjectRowPanel(); /*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask); /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask); @@ -254,12 +245,8 @@ private: private: void onClosePanel(); - static EObjectType getObjectType(const LLNotificationPtr& notification); - void initChiclet(const LLUUID& object_id, bool new_message = false); - std::string getObjectName(const LLUUID& object_id); + void initChiclet(const LLUUID& notification_id, bool new_message = false); - typedef std::map<std::string, EObjectType> object_type_map; - static object_type_map initObjectTypeMap(); public: LLIMChiclet* mChiclet; private: diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index a7f26f1df1..91c303c79e 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -51,7 +51,8 @@ // cache/textures/[0-F]/UUID.texture // Actual texture body files -const S32 TEXTURE_CACHE_ENTRY_SIZE = 1024; +//note: there is no good to define 1024 for TEXTURE_CACHE_ENTRY_SIZE while FIRST_PACKET_SIZE is 600 on sim side. +const S32 TEXTURE_CACHE_ENTRY_SIZE = FIRST_PACKET_SIZE;//1024; const F32 TEXTURE_CACHE_PURGE_AMOUNT = .20f; // % amount to reduce the cache by when it exceeds its limit const F32 TEXTURE_CACHE_LRU_SIZE = .10f; // % amount for LRU list (low overhead to regenerate) diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 404b79bfaf..4a61130785 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -73,13 +73,11 @@ private: } virtual void completed(bool success) { - mFetcher->lockQueue(); LLTextureFetchWorker* worker = mFetcher->getWorker(mID); if (worker) { worker->callbackCacheRead(success, mFormattedImage, mImageSize, mImageLocal); } - mFetcher->unlockQueue(); } private: LLTextureFetch* mFetcher; @@ -95,13 +93,11 @@ private: } virtual void completed(bool success) { - mFetcher->lockQueue(); LLTextureFetchWorker* worker = mFetcher->getWorker(mID); if (worker) { worker->callbackCacheWrite(success); } - mFetcher->unlockQueue(); } private: LLTextureFetch* mFetcher; @@ -117,13 +113,11 @@ private: } virtual void completed(bool success, LLImageRaw* raw, LLImageRaw* aux) { - mFetcher->lockQueue(); LLTextureFetchWorker* worker = mFetcher->getWorker(mID); if (worker) { worker->callbackDecoded(success, raw, aux); } - mFetcher->unlockQueue(); } private: LLTextureFetch* mFetcher; @@ -166,6 +160,8 @@ public: void setGetStatus(U32 status, const std::string& reason) { + LLMutexLock lock(&mWorkMutex); + mGetStatus = status; mGetReason = reason; } @@ -307,7 +303,6 @@ public: } lldebugs << "HTTP COMPLETE: " << mID << llendl; - mFetcher->lockQueue(); LLTextureFetchWorker* worker = mFetcher->getWorker(mID); if (worker) { @@ -339,7 +334,6 @@ public: mFetcher->removeFromHTTPQueue(mID); llwarns << "Worker not found: " << mID << llendl; } - mFetcher->unlockQueue(); } private: @@ -494,8 +488,9 @@ void LLTextureFetchWorker::setupPacketData() U32 LLTextureFetchWorker::calcWorkPriority() { -// llassert_always(mImagePriority >= 0 && mImagePriority <= LLViewerTexture::maxDecodePriority()); - static F32 PRIORITY_SCALE = (F32)LLWorkerThread::PRIORITY_LOWBITS / LLViewerFetchedTexture::maxDecodePriority(); + //llassert_always(mImagePriority >= 0 && mImagePriority <= LLViewerFetchedTexture::maxDecodePriority()); + static const F32 PRIORITY_SCALE = (F32)LLWorkerThread::PRIORITY_LOWBITS / LLViewerFetchedTexture::maxDecodePriority(); + mWorkPriority = (U32)(mImagePriority * PRIORITY_SCALE); return mWorkPriority; } @@ -1440,12 +1435,9 @@ bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, con return false; } - LLTextureFetchWorker* worker = NULL; - LLMutexLock lock(&mQueueMutex); - map_t::iterator iter = mRequestMap.find(id); - if (iter != mRequestMap.end()) + LLTextureFetchWorker* worker = getWorker(id) ; + if (worker) { - worker = iter->second; if (worker->mHost != host) { llwarns << "LLTextureFetch::createRequest " << id << " called with multiple hosts: " @@ -1494,41 +1486,48 @@ bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, con return false; // need to wait for previous aborted request to complete } worker->lockWorkMutex(); + worker->mActiveCount++; + worker->mNeedsAux = needs_aux; worker->setImagePriority(priority); worker->setDesiredDiscard(desired_discard, desired_size); - worker->unlockWorkMutex(); if (!worker->haveWork()) { worker->mState = LLTextureFetchWorker::INIT; + worker->unlockWorkMutex(); + worker->addWork(0, LLWorkerThread::PRIORITY_HIGH | worker->mWorkPriority); } + else + { + worker->unlockWorkMutex(); + } } else { worker = new LLTextureFetchWorker(this, url, id, host, priority, desired_discard, desired_size); + lockQueue() ; mRequestMap[id] = worker; - } + unlockQueue() ; + + worker->lockWorkMutex(); worker->mActiveCount++; worker->mNeedsAux = needs_aux; + worker->unlockWorkMutex(); + } + // llinfos << "REQUESTED: " << id << " Discard: " << desired_discard << llendl; return true; } -void LLTextureFetch::deleteRequest(const LLUUID& id, bool cancel) -{ - LLMutexLock lock(&mQueueMutex); - LLTextureFetchWorker* worker = getWorker(id); - if (worker) - { - removeRequest(worker, cancel); - } -} - // protected void LLTextureFetch::addToNetworkQueue(LLTextureFetchWorker* worker) { + lockQueue() ; + bool in_request_map = (mRequestMap.find(worker->mID) != mRequestMap.end()) ; + unlockQueue() ; + LLMutexLock lock(&mNetworkQueueMutex); - if (mRequestMap.find(worker->mID) != mRequestMap.end()) + if (in_request_map) { // only add to the queue if in the request map // i.e. a delete has not been requested @@ -1564,10 +1563,34 @@ void LLTextureFetch::removeFromHTTPQueue(const LLUUID& id) mHTTPTextureQueue.erase(id); } -// call lockQueue() first! +void LLTextureFetch::deleteRequest(const LLUUID& id, bool cancel) +{ + lockQueue() ; + LLTextureFetchWorker* worker = getWorkerAfterLock(id); + if (worker) + { + size_t erased_1 = mRequestMap.erase(worker->mID); + unlockQueue() ; + + llassert_always(erased_1 > 0) ; + + removeFromNetworkQueue(worker, cancel); + llassert_always(!(worker->getFlags(LLWorkerClass::WCF_DELETE_REQUESTED))) ; + + worker->scheduleDelete(); + } + else + { + unlockQueue() ; + } +} + void LLTextureFetch::removeRequest(LLTextureFetchWorker* worker, bool cancel) { + lockQueue() ; size_t erased_1 = mRequestMap.erase(worker->mID); + unlockQueue() ; + llassert_always(erased_1 > 0) ; removeFromNetworkQueue(worker, cancel); llassert_always(!(worker->getFlags(LLWorkerClass::WCF_DELETE_REQUESTED))) ; @@ -1575,8 +1598,26 @@ void LLTextureFetch::removeRequest(LLTextureFetchWorker* worker, bool cancel) worker->scheduleDelete(); } +S32 LLTextureFetch::getNumRequests() +{ + lockQueue() ; + S32 size = (S32)mRequestMap.size(); + unlockQueue() ; + + return size ; +} + +S32 LLTextureFetch::getNumHTTPRequests() +{ + mNetworkQueueMutex.lock() ; + S32 size = (S32)mHTTPTextureQueue.size(); + mNetworkQueueMutex.unlock() ; + + return size ; +} + // call lockQueue() first! -LLTextureFetchWorker* LLTextureFetch::getWorker(const LLUUID& id) +LLTextureFetchWorker* LLTextureFetch::getWorkerAfterLock(const LLUUID& id) { LLTextureFetchWorker* res = NULL; map_t::iterator iter = mRequestMap.find(id); @@ -1587,12 +1628,18 @@ LLTextureFetchWorker* LLTextureFetch::getWorker(const LLUUID& id) return res; } +LLTextureFetchWorker* LLTextureFetch::getWorker(const LLUUID& id) +{ + LLMutexLock lock(&mQueueMutex) ; + + return getWorkerAfterLock(id) ; +} + bool LLTextureFetch::getRequestFinished(const LLUUID& id, S32& discard_level, LLPointer<LLImageRaw>& raw, LLPointer<LLImageRaw>& aux) { bool res = false; - LLMutexLock lock(&mQueueMutex); LLTextureFetchWorker* worker = getWorker(id); if (worker) { @@ -1644,7 +1691,6 @@ bool LLTextureFetch::getRequestFinished(const LLUUID& id, S32& discard_level, bool LLTextureFetch::updateRequestPriority(const LLUUID& id, F32 priority) { bool res = false; - LLMutexLock lock(&mQueueMutex); LLTextureFetchWorker* worker = getWorker(id); if (worker) { @@ -1760,8 +1806,6 @@ void LLTextureFetch::sendRequestListToSimulators() } timer.reset(); - LLMutexLock lock(&mQueueMutex); - // Send requests typedef std::set<LLTextureFetchWorker*,LLTextureFetchWorker::Compare> request_list_t; typedef std::map< LLHost, request_list_t > work_request_map_t; @@ -1970,7 +2014,6 @@ bool LLTextureFetchWorker::insertPacket(S32 index, U8* data, S32 size) bool LLTextureFetch::receiveImageHeader(const LLHost& host, const LLUUID& id, U8 codec, U16 packets, U32 totalbytes, U16 data_size, U8* data) { - LLMutexLock lock(&mQueueMutex); LLTextureFetchWorker* worker = getWorker(id); bool res = true; @@ -2003,7 +2046,9 @@ bool LLTextureFetch::receiveImageHeader(const LLHost& host, const LLUUID& id, U8 if (!res) { ++mBadPacketCount; + mNetworkQueueMutex.lock() ; mCancelQueue[host].insert(id); + mNetworkQueueMutex.unlock() ; return false; } @@ -2024,7 +2069,6 @@ bool LLTextureFetch::receiveImageHeader(const LLHost& host, const LLUUID& id, U8 bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U16 packet_num, U16 data_size, U8* data) { - LLMutexLock lock(&mQueueMutex); LLTextureFetchWorker* worker = getWorker(id); bool res = true; @@ -2048,7 +2092,9 @@ bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U1 if (!res) { ++mBadPacketCount; + mNetworkQueueMutex.lock() ; mCancelQueue[host].insert(id); + mNetworkQueueMutex.unlock() ; return false; } @@ -2088,7 +2134,6 @@ BOOL LLTextureFetch::isFromLocalCache(const LLUUID& id) { BOOL from_cache = FALSE ; - LLMutexLock lock(&mQueueMutex); LLTextureFetchWorker* worker = getWorker(id); if (worker) { @@ -2110,7 +2155,6 @@ S32 LLTextureFetch::getFetchState(const LLUUID& id, F32& data_progress_p, F32& r F32 request_dtime = 999999.f; U32 fetch_priority = 0; - LLMutexLock lock(&mQueueMutex); LLTextureFetchWorker* worker = getWorker(id); if (worker && worker->haveWork()) { diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h index 373e38a83c..5213c4f488 100644 --- a/indra/newview/lltexturefetch.h +++ b/indra/newview/lltexturefetch.h @@ -77,13 +77,14 @@ public: S32 getFetchState(const LLUUID& id, F32& decode_progress_p, F32& requested_priority_p, U32& fetch_priority_p, F32& fetch_dtime_p, F32& request_dtime_p); void dump(); - S32 getNumRequests() { return mRequestMap.size(); } - S32 getNumHTTPRequests() { return mHTTPTextureQueue.size(); } + S32 getNumRequests() ; + S32 getNumHTTPRequests() ; // Public for access by callbacks void lockQueue() { mQueueMutex.lock(); } void unlockQueue() { mQueueMutex.unlock(); } LLTextureFetchWorker* getWorker(const LLUUID& id); + LLTextureFetchWorker* getWorkerAfterLock(const LLUUID& id); LLTextureInfo* getTextureInfo() { return &mTextureInfo; } @@ -92,7 +93,7 @@ protected: void removeFromNetworkQueue(LLTextureFetchWorker* worker, bool cancel); void addToHTTPQueue(const LLUUID& id); void removeFromHTTPQueue(const LLUUID& id); - S32 getHTTPQueueSize() { return (S32)mHTTPTextureQueue.size(); } + S32 getHTTPQueueSize() { return getNumHTTPRequests(); } void removeRequest(LLTextureFetchWorker* worker, bool cancel); // Called from worker thread (during doWork) void processCurlRequests(); @@ -111,8 +112,8 @@ public: S32 mBadPacketCount; private: - LLMutex mQueueMutex; - LLMutex mNetworkQueueMutex; + LLMutex mQueueMutex; //to protect mRequestMap only + LLMutex mNetworkQueueMutex; //to protect mNetworkQueue, mHTTPTextureQueue and mCancelQueue. LLTextureCache* mTextureCache; LLImageDecodeThread* mImageDecodeThread; diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 9ced0194a2..0e133f8729 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -57,6 +57,7 @@ #include "llkeyboard.h" #include "llmutelist.h" //#include "llfirstuse.h" +#include "llwindow.h" #include <boost/bind.hpp> // for SkinFolder listener #include <boost/signals2.hpp> @@ -712,7 +713,6 @@ void LLViewerMedia::updateMedia(void *dummy_arg) std::vector<LLViewerMediaImpl*> proximity_order; bool inworld_media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia"); - bool needs_first_run = LLViewerMedia::needsMediaFirstRun(); U32 max_instances = gSavedSettings.getU32("PluginInstancesTotal"); U32 max_normal = gSavedSettings.getU32("PluginInstancesNormal"); U32 max_low = gSavedSettings.getU32("PluginInstancesLow"); @@ -838,12 +838,6 @@ void LLViewerMedia::updateMedia(void *dummy_arg) if(!pimpl->getUsedInUI()) { new_priority = LLPluginClassMedia::PRIORITY_UNLOADED; - if(needs_first_run) - { - // Don't do this more than once in this loop. - needs_first_run = false; - LLViewerMedia::displayMediaFirstRun(); - } } } @@ -913,59 +907,6 @@ void LLViewerMedia::cleanupClass() gIdleCallbacks.deleteFunction(LLViewerMedia::updateMedia, NULL); } - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::needsMediaFirstRun() -{ - return gWarningSettings.getBOOL("FirstStreamingMedia"); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::displayMediaFirstRun() -{ - gWarningSettings.setBOOL("FirstStreamingMedia", FALSE); - - LLNotificationsUtil::add("ParcelCanPlayMedia", LLSD(), LLSD(), - boost::bind(firstRunCallback, _1, _2)); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::firstRunCallback(const LLSD& notification, const LLSD& response) -{ - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - if (option == 0) - { - // user has elected to automatically play media. - gSavedSettings.setBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING, TRUE); - gSavedSettings.setBOOL("AudioStreamingMusic", TRUE); - gSavedSettings.setBOOL("AudioStreamingMedia", TRUE); - - LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); - - if (parcel) - { - // play media right now, if available - LLViewerParcelMedia::play(parcel); - - // play music right now, if available - std::string music_url = parcel->getMusicURL(); - if (gAudiop && !music_url.empty()) - gAudiop->startInternetStream(music_url); - } - } - else - { - gSavedSettings.setBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING, FALSE); - gSavedSettings.setBOOL("AudioStreamingMedia", FALSE); - gSavedSettings.setBOOL("AudioStreamingMusic", FALSE); - } - return false; -} - - ////////////////////////////////////////////////////////////////////////////////////////// // LLViewerMediaImpl ////////////////////////////////////////////////////////////////////////////////////////// @@ -1839,9 +1780,12 @@ bool LLViewerMediaImpl::handleKeyHere(KEY key, MASK mask) if(!result) { - result = mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_DOWN ,key, mask); + + LLSD native_key_data = gViewerWindow->getWindow()->getNativeKeyData(); + + result = mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_DOWN ,key, mask, native_key_data); // Since the viewer internal event dispatching doesn't give us key-up events, simulate one here. - (void)mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_UP ,key, mask); + (void)mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_UP ,key, mask, native_key_data); } } @@ -1859,7 +1803,9 @@ bool LLViewerMediaImpl::handleUnicodeCharHere(llwchar uni_char) if (uni_char >= 32 // discard 'control' characters && uni_char != 127) // SDL thinks this is 'delete' - yuck. { - mMediaSource->textInput(wstring_to_utf8str(LLWString(1, uni_char)), gKeyboard->currentMask(FALSE)); + LLSD native_key_data = gViewerWindow->getWindow()->getNativeKeyData(); + + mMediaSource->textInput(wstring_to_utf8str(LLWString(1, uni_char)), gKeyboard->currentMask(FALSE), native_key_data); } } diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index ff18ed605a..daad70f14f 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -117,11 +117,6 @@ class LLViewerMedia // This is the comparitor used to sort the list. static bool priorityComparitor(const LLViewerMediaImpl* i1, const LLViewerMediaImpl* i2); - // For displaying the media first-run dialog. - static bool needsMediaFirstRun(); - static void displayMediaFirstRun(); - static bool firstRunCallback(const LLSD& notification, const LLSD& response); - }; // Implementation functions not exported into header file diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp index a0ac9c2091..f508a3462a 100644 --- a/indra/newview/llviewermediafocus.cpp +++ b/indra/newview/llviewermediafocus.cpp @@ -157,7 +157,6 @@ void LLViewerMediaFocus::setFocusFace(LLPointer<LLViewerObject> objectp, S32 fac mFocusedObjectFace = 0; } } - } void LLViewerMediaFocus::clearFocus() @@ -198,7 +197,7 @@ bool LLViewerMediaFocus::getFocus() } // This function selects an ideal viewing distance based on the focused object, pick normal, and padding value -void LLViewerMediaFocus::setCameraZoom(LLViewerObject* object, LLVector3 normal, F32 padding_factor) +void LLViewerMediaFocus::setCameraZoom(LLViewerObject* object, LLVector3 normal, F32 padding_factor, bool zoom_in_only) { if (object) { @@ -269,7 +268,16 @@ void LLViewerMediaFocus::setCameraZoom(LLViewerObject* object, LLVector3 normal, camera_pos += 0.01 * len * delta; } + // If we are not allowing zooming out and the old camera position is closer to + // the center then the new intended camera position, don't move camera and return + if (zoom_in_only && + (dist_vec_squared(gAgent.getCameraPositionGlobal(), target_pos) < dist_vec_squared(camera_pos, target_pos))) + { + return; + } + gAgent.setCameraPosAndFocusGlobal(camera_pos, target_pos, object->getID() ); + } else { diff --git a/indra/newview/llviewermediafocus.h b/indra/newview/llviewermediafocus.h index 89ee0ae283..002044ea2e 100644 --- a/indra/newview/llviewermediafocus.h +++ b/indra/newview/llviewermediafocus.h @@ -66,7 +66,7 @@ public: void update(); - static void setCameraZoom(LLViewerObject* object, LLVector3 normal, F32 padding_factor); + static void setCameraZoom(LLViewerObject* object, LLVector3 normal, F32 padding_factor, bool zoom_in_only = false); static F32 getBBoxAspectRatio(const LLBBox& bbox, const LLVector3& normal, F32* height, F32* width, F32* depth); bool isFocusedOnFace(LLPointer<LLViewerObject> objectp, S32 face); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index a83baf7f9a..8aae90ec3c 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5332,7 +5332,7 @@ class LLWorldCreateLandmark : public view_listener_t void handle_look_at_selection(const LLSD& param) { - const F32 PADDING_FACTOR = 2.f; + const F32 PADDING_FACTOR = 1.75f; BOOL zoom = (param.asString() == "zoom"); if (!LLSelectMgr::getInstance()->getSelection()->isEmpty()) { @@ -5352,14 +5352,19 @@ void handle_look_at_selection(const LLSD& param) } if (zoom) { + // Make sure we are not increasing the distance between the camera and object + LLVector3d orig_distance = gAgent.getCameraPositionGlobal() - LLSelectMgr::getInstance()->getSelectionCenterGlobal(); + distance = llmin(distance, (F32) orig_distance.length()); + gAgent.setCameraPosAndFocusGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal() + LLVector3d(obj_to_cam * distance), - LLSelectMgr::getInstance()->getSelectionCenterGlobal(), - object_id ); + LLSelectMgr::getInstance()->getSelectionCenterGlobal(), + object_id ); + } else { gAgent.setFocusGlobal( LLSelectMgr::getInstance()->getSelectionCenterGlobal(), object_id ); - } + } } } @@ -5625,14 +5630,15 @@ class LLShowSidetrayPanel : public view_listener_t bool handleEvent(const LLSD& userdata) { std::string panel_name = userdata.asString(); - // Open up either the sidepanel or new floater. - if (LLSideTray::getInstance()->isPanelActive(panel_name)) + // Toggle the panel + if (!LLSideTray::getInstance()->isPanelActive(panel_name)) { - LLFloaterInventory::showAgentInventory(); + // LLFloaterInventory::showAgentInventory(); + LLSideTray::getInstance()->showPanel(panel_name, LLSD()); } else { - LLSideTray::getInstance()->showPanel(panel_name, LLSD()); + LLSideTray::getInstance()->collapseSideBar(); } return true; } diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 143d95d27e..8aa642bdb6 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -38,6 +38,7 @@ #include "llavataractions.h" #include "lscript_byteformat.h" #include "lleconomy.h" +#include "lleventtimer.h" #include "llfloaterreg.h" #include "llfollowcamparams.h" #include "llregionhandle.h" @@ -866,6 +867,10 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f } LLInventoryItem* item = gInventory.getItem(item_id); + llassert(item); + if (!item) { + continue; + } //////////////////////////////////////////////////////////////////////////////// // Special handling for various types. @@ -914,12 +919,13 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f { // Landmark creation handling is moved to LLPanelPlaces::showAddedLandmarkInfo() // TODO* LLPanelPlaces dependency is going to be removed. See EXT-4347. - if("create_landmark" == places_panel->getPlaceInfoType() && !places_panel->getItem()) - { - //places_panel->setItem(item); - } + //if("create_landmark" == places_panel->getPlaceInfoType() && !places_panel->getItem()) + //{ + // places_panel->setItem(item); + //} + //else // we are opening a group notice attachment - else + if("create_landmark" != places_panel->getPlaceInfoType()) { LLSD args; args["type"] = "landmark"; @@ -1261,10 +1267,6 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& gInventory.addObserver(opener); } - // Remove script dialog because there is no need in it no more. - LLUUID object_id = notification["payload"]["object_id"].asUUID(); - LLScriptFloaterManager::instance().removeNotificationByObjectId(object_id); - delete this; return false; } @@ -1304,13 +1306,6 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const msg->addUUIDFast(_PREHASH_RegionID, LLUUID::null); msg->addVector3Fast(_PREHASH_Position, gAgent.getPositionAgent()); LLInventoryObserver* opener = NULL; - LLViewerInventoryCategory* catp = NULL; - catp = (LLViewerInventoryCategory*)gInventory.getCategory(mObjectID); - LLViewerInventoryItem* itemp = NULL; - if(!catp) - { - itemp = (LLViewerInventoryItem*)gInventory.getItem(mObjectID); - } std::string from_string; // Used in the pop-up. std::string chatHistory_string; // Used in chat history. @@ -1438,10 +1433,6 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const gInventory.addObserver(opener); } - // Remove script dialog because there is no need in it no more. - LLUUID object_id = notification["payload"]["object_id"].asUUID(); - LLScriptFloaterManager::instance().removeNotificationByObjectId(object_id); - delete this; return false; } @@ -1592,7 +1583,6 @@ void inventory_offer_handler(LLOfferInfo* info) { payload["give_inventory_notification"] = TRUE; LLNotificationPtr notification = LLNotifications::instance().add(p.payload(payload)); - LLScriptFloaterManager::getInstance()->setNotificationToastId(object_id, notification->getID()); } } } @@ -1849,6 +1839,11 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) } else { + /* + EXT-5099 + currently there is no way to store in history only... + using LLNotificationsUtil::add will add message to Nearby Chat + // muted user, so don't start an IM session, just record line in chat // history. Pretend the chat is from a local agent, // so it will go into the history but not be shown on screen. @@ -1856,6 +1851,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) LLSD args; args["MESSAGE"] = buffer; LLNotificationsUtil::add("SystemMessageTip", args); + */ } } break; diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index c4fc2e5cab..2c5c0a37e8 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -105,15 +105,6 @@ void LLViewerParcelMedia::update(LLParcel* parcel) std::string mediaUrl = std::string ( parcel->getMediaURL () ); std::string mediaCurrentUrl = std::string( parcel->getMediaCurrentURL()); - // First use warning - if( (!mediaUrl.empty() || - !parcel->getMusicURL().empty()) - && LLViewerMedia::needsMediaFirstRun()) - { - LLViewerMedia::displayMediaFirstRun(); - return; - } - // if we have a current (link sharing) url, use it instead if (mediaCurrentUrl != "" && parcel->getMediaType() == "text/html") { diff --git a/indra/newview/llviewerparcelmediaautoplay.h b/indra/newview/llviewerparcelmediaautoplay.h index 1d80b4756c..40142c1dd1 100644 --- a/indra/newview/llviewerparcelmediaautoplay.h +++ b/indra/newview/llviewerparcelmediaautoplay.h @@ -33,7 +33,7 @@ #ifndef LLVIEWERPARCELMEDIAAUTOPLAY_H #define LLVIEWERPARCELMEDIAAUTOPLAY_H -#include "lltimer.h" +#include "lleventtimer.h" #include "lluuid.h" // timer to automatically play media diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index a075a706e1..07c8867e26 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -1762,6 +1762,12 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use { optionally_start_music(music_url); } + else + { + llinfos << "Stopping parcel music (invalid audio stream URL)" << llendl; + // clears the URL + gAudiop->startInternetStream(LLStringUtil::null); + } } else if (!gAudiop->getInternetStreamURL().empty()) { diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 0ad269392d..984f003411 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -715,7 +715,7 @@ void LLViewerTexture::generateGLTexture() LLImageGL* LLViewerTexture::getGLTexture() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep ; } @@ -732,7 +732,7 @@ BOOL LLViewerTexture::createGLTexture() BOOL LLViewerTexture::createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename, BOOL to_create, S32 category) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; BOOL ret = mGLTexturep->createGLTexture(discard_level, imageraw, usename, to_create, category) ; @@ -748,55 +748,55 @@ BOOL LLViewerTexture::createGLTexture(S32 discard_level, const LLImageRaw* image void LLViewerTexture::setExplicitFormat(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format, BOOL swap_bytes) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setExplicitFormat(internal_format, primary_format, type_format, swap_bytes) ; } void LLViewerTexture::setAddressMode(LLTexUnit::eTextureAddressMode mode) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setAddressMode(mode) ; } void LLViewerTexture::setFilteringOption(LLTexUnit::eTextureFilterOptions option) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setFilteringOption(option) ; } //virtual S32 LLViewerTexture::getWidth(S32 discard_level) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getWidth(discard_level) ; } //virtual S32 LLViewerTexture::getHeight(S32 discard_level) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getHeight(discard_level) ; } S32 LLViewerTexture::getMaxDiscardLevel() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getMaxDiscardLevel() ; } S32 LLViewerTexture::getDiscardLevel() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getDiscardLevel() ; } S8 LLViewerTexture::getComponents() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getComponents() ; } LLGLuint LLViewerTexture::getTexName() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTexName() ; } @@ -821,124 +821,124 @@ BOOL LLViewerTexture::getBoundRecently() const LLTexUnit::eTextureType LLViewerTexture::getTarget(void) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTarget() ; } BOOL LLViewerTexture::setSubImage(const LLImageRaw* imageraw, S32 x_pos, S32 y_pos, S32 width, S32 height) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->setSubImage(imageraw, x_pos, y_pos, width, height) ; } BOOL LLViewerTexture::setSubImage(const U8* datap, S32 data_width, S32 data_height, S32 x_pos, S32 y_pos, S32 width, S32 height) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->setSubImage(datap, data_width, data_height, x_pos, y_pos, width, height) ; } void LLViewerTexture::setGLTextureCreated (bool initialized) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setGLTextureCreated (initialized) ; } void LLViewerTexture::setCategory(S32 category) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setCategory(category) ; } LLTexUnit::eTextureAddressMode LLViewerTexture::getAddressMode(void) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getAddressMode() ; } S32 LLViewerTexture::getTextureMemory() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->mTextureMemory ; } LLGLenum LLViewerTexture::getPrimaryFormat() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getPrimaryFormat() ; } BOOL LLViewerTexture::getIsAlphaMask() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getIsAlphaMask() ; } BOOL LLViewerTexture::getMask(const LLVector2 &tc) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getMask(tc) ; } F32 LLViewerTexture::getTimePassedSinceLastBound() { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTimePassedSinceLastBound() ; } BOOL LLViewerTexture::getMissed() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getMissed() ; } BOOL LLViewerTexture::isJustBound() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->isJustBound() ; } void LLViewerTexture::forceUpdateBindStats(void) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->forceUpdateBindStats() ; } U32 LLViewerTexture::getTexelsInAtlas() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTexelsInAtlas() ; } U32 LLViewerTexture::getTexelsInGLTexture() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTexelsInGLTexture() ; } BOOL LLViewerTexture::isGLTextureCreated() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->isGLTextureCreated() ; } S32 LLViewerTexture::getDiscardLevelInAtlas() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getDiscardLevelInAtlas() ; } @@ -974,12 +974,6 @@ void LLViewerTexture::updateBindStatsForTester() //start of LLViewerFetchedTexture //---------------------------------------------------------------------------------------------- -//static -F32 LLViewerFetchedTexture::maxDecodePriority() -{ - return 6000000.f; -} - LLViewerFetchedTexture::LLViewerFetchedTexture(const LLUUID& id, const LLHost& host, BOOL usemipmaps) : LLViewerTexture(id, usemipmaps), mTargetHost(host) @@ -1426,6 +1420,13 @@ void LLViewerFetchedTexture::processTextureStats() } } +const F32 MAX_PRIORITY_PIXEL = 999.f ; //pixel area +const F32 PRIORITY_BOOST_LEVEL_FACTOR = 1000.f ; //boost level +const F32 PRIORITY_DELTA_DISCARD_LEVEL_FACTOR = 100000.f ; //delta discard +const S32 MAX_DELTA_DISCARD_LEVEL_FOR_PRIORITY = 4 ; +const F32 PRIORITY_ADDITIONAL_FACTOR = 1000000.f ; //additional +const S32 MAX_ADDITIONAL_LEVEL_FOR_PRIORITY = 8 ; +const F32 PRIORITY_BOOST_HIGH_FACTOR = 10000000.f ;//boost high F32 LLViewerFetchedTexture::calcDecodePriority() { #ifndef LL_RELEASE_FOR_DOWNLOAD @@ -1453,7 +1454,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority() bool have_all_data = (cur_discard >= 0 && (cur_discard <= mDesiredDiscardLevel)); F32 pixel_priority = fsqrtf(mMaxVirtualSize); - F32 priority; + F32 priority = 0.f; if (mIsMissingAsset) { priority = 0.0f; @@ -1496,8 +1497,8 @@ F32 LLViewerFetchedTexture::calcDecodePriority() static const F64 log_2 = log(2.0); F32 desired = (F32)(log(32.0/pixel_priority) / log_2); S32 ddiscard = MAX_DISCARD_LEVEL - (S32)desired; - ddiscard = llclamp(ddiscard, 0, 4); - priority = (ddiscard+1)*100000.f; + ddiscard = llclamp(ddiscard, 0, MAX_DELTA_DISCARD_LEVEL_FOR_PRIORITY); + priority = (ddiscard + 1) * PRIORITY_DELTA_DISCARD_LEVEL_FACTOR; } else if ((mMinDiscardLevel > 0) && (cur_discard <= mMinDiscardLevel)) { @@ -1523,42 +1524,53 @@ F32 LLViewerFetchedTexture::calcDecodePriority() // We haven't rendered this in a while, de-prioritize it desired_discard += 2; } - //else - //{ - // // We haven't rendered this in the last half second, and we have a cached raw image, leave the desired discard as-is - // desired_discard = cur_discard; - //} + else + { + // We haven't rendered this in the last half second, and we have a cached raw image, leave the desired discard as-is + desired_discard = cur_discard; + } } S32 ddiscard = cur_discard - desired_discard; - ddiscard = llclamp(ddiscard, 0, 4); - priority = (ddiscard+1)*100000.f; + ddiscard = llclamp(ddiscard, 0, MAX_DELTA_DISCARD_LEVEL_FOR_PRIORITY); + priority = (ddiscard + 1) * PRIORITY_DELTA_DISCARD_LEVEL_FACTOR; } // Priority Formula: // BOOST_HIGH + ADDITIONAL PRI + DELTA DISCARD + BOOST LEVEL + PIXELS - // [10,000,000] + [1-9,000,000] + [1-400,000] + [1-20,000] + [0-999] + // [10,000,000] + [1,000,000-9,000,000] + [100,000-500,000] + [1-20,000] + [0-999] if (priority > 0.0f) { - pixel_priority = llclamp(pixel_priority, 0.0f, 999.f); + pixel_priority = llclamp(pixel_priority, 0.0f, MAX_PRIORITY_PIXEL); - priority = pixel_priority + 1000.f * mBoostLevel; + priority += pixel_priority + PRIORITY_BOOST_LEVEL_FACTOR * mBoostLevel; if ( mBoostLevel > BOOST_HIGH) { - priority += 10000000.f; + priority += PRIORITY_BOOST_HIGH_FACTOR; } if(mAdditionalDecodePriority > 0.0f) { - // 1-9 - S32 additional_priority = (S32)(1.0f + mAdditionalDecodePriority*8.0f + .5f); // round - // priority range += 0-9,000,000 - priority += 1000000.f * (F32)additional_priority; + // priority range += 1,000,000.f-9,000,000.f + priority += PRIORITY_ADDITIONAL_FACTOR * (1.0 + mAdditionalDecodePriority * MAX_ADDITIONAL_LEVEL_FOR_PRIORITY); } } return priority; } + +//static +F32 LLViewerFetchedTexture::maxDecodePriority() +{ + static const F32 max_priority = PRIORITY_BOOST_HIGH_FACTOR + //boost_high + PRIORITY_ADDITIONAL_FACTOR * (MAX_ADDITIONAL_LEVEL_FOR_PRIORITY + 1) + //additional (view dependent factors) + PRIORITY_DELTA_DISCARD_LEVEL_FACTOR * (MAX_DELTA_DISCARD_LEVEL_FOR_PRIORITY + 1) + //delta discard + PRIORITY_BOOST_LEVEL_FACTOR * (BOOST_MAX_LEVEL - 1) + //boost level + MAX_PRIORITY_PIXEL + 1.0f ; //pixel area. + + return max_priority ; +} + //============================================================================ void LLViewerFetchedTexture::setDecodePriority(F32 priority) @@ -2983,6 +2995,10 @@ void LLViewerMediaTexture::initVirtualSize() void LLViewerMediaTexture::addMediaToFace(LLFace* facep) { + if(facep) + { + facep->setHasMedia(true) ; + } if(!mIsPlaying) { return ; //no need to add the face because the media is not in playing. @@ -2993,14 +3009,16 @@ void LLViewerMediaTexture::addMediaToFace(LLFace* facep) void LLViewerMediaTexture::removeMediaFromFace(LLFace* facep) { - if(!mIsPlaying) - { - return ; //no need to remove the face because the media is not in playing. - } if(!facep) { return ; } + facep->setHasMedia(false) ; + + if(!mIsPlaying) + { + return ; //no need to remove the face because the media is not in playing. + } mIsPlaying = FALSE ; //set to remove the media from the face. switchTexture(facep) ; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 4235f97eab..afe325856b 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -4048,6 +4048,7 @@ void LLVOAvatar::updateTextures() // Spam if this is a baked texture, not set to default image, without valid host info if (isIndexBakedTexture((ETextureIndex)texture_index) && imagep->getID() != IMG_DEFAULT_AVATAR + && imagep->getID() != IMG_INVISIBLE && !imagep->getTargetHost().isOk()) { LL_WARNS_ONCE("Texture") << "LLVOAvatar::updateTextures No host for texture " diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 13e28b246a..00998b300a 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -932,6 +932,13 @@ void LLVOAvatarSelf::wearableUpdated( EWearableType type, BOOL upload_result ) { const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second; const LLVOAvatarDefines::EBakedTextureIndex index = baked_iter->first; + + // if we're editing our appearance, ensure that we're not using baked textures + // The baked texture for alpha masks is set explicitly when you hit "save" + if (gAgent.cameraCustomizeAvatar()) + { + setNewBakedTexture(index,IMG_DEFAULT_AVATAR); + } if (baked_dict) { for (LLVOAvatarDefines::wearables_vec_t::const_iterator type_iter = baked_dict->mWearables.begin(); diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index 1940d65ae4..5edf72d4ae 100644 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -128,10 +128,10 @@ void LLWorldMapView::initClass() sHomeImage = LLUI::getUIImage("map_home.tga"); sTelehubImage = LLUI::getUIImage("map_telehub.tga"); sInfohubImage = LLUI::getUIImage("map_infohub.tga"); - sEventImage = LLUI::getUIImage("map_event.tga"); - sEventMatureImage = LLUI::getUIImage("map_event_mature.tga"); + sEventImage = LLUI::getUIImage("Parcel_PG_Dark"); + sEventMatureImage = LLUI::getUIImage("Parcel_M_Dark"); // To Do: update the image resource for adult events. - sEventAdultImage = LLUI::getUIImage("map_event_adult.tga"); + sEventAdultImage = LLUI::getUIImage("Parcel_R_Dark"); sTrackCircleImage = LLUI::getUIImage("map_track_16.tga"); sTrackArrowImage = LLUI::getUIImage("direction_arrow.tga"); diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 4f4fc83819..bd22fc5f2e 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1970,7 +1970,7 @@ void LLPipeline::markVisible(LLDrawable *drawablep, LLCamera& camera) if (root && root->getParent() && root->getVObj() && root->getVObj()->isAttachment()) { LLVOAvatar* av = root->getParent()->getVObj()->asAvatar(); - if (av->isImpostor()) + if (av && av->isImpostor()) { return; } diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index ca579616d8..b33d4f73a4 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -554,7 +554,7 @@ reference="White" /> <color name="ObjectChatColor" - reference="EmphasisColor_35" /> + reference="EmphasisColor" /> <color name="OverdrivenColor" reference="Red" /> diff --git a/indra/newview/skins/default/textures/icons/object_icon.png b/indra/newview/skins/default/textures/icons/object_icon.png Binary files differnew file mode 100644 index 0000000000..223874e631 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/object_icon.png diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index ccf49f6a9f..18d1779702 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -143,12 +143,12 @@ with the same filename but different name <texture name="DownArrow" file_name="bottomtray/DownArrow.png" preload="false" /> - <texture name="DropDown_Disabled" file_name="widgets/DropDown_Disabled.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> - <texture name="DropDown_Over" file_name="widgets/DropDown_Over.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> - <texture name="DropDown_Press" file_name="widgets/DropDown_Press.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> - <texture name="DropDown_Selected" file_name="widgets/DropDown_Selected.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> - <texture name="DropDown_On" file_name="widgets/DropDown_On.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> - <texture name="DropDown_Off" file_name="widgets/DropDown_Off.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> + <texture name="DropDown_Disabled" file_name="widgets/DropDown_Disabled.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" /> + <texture name="DropDown_Over" file_name="widgets/DropDown_Over.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" /> + <texture name="DropDown_Press" file_name="widgets/DropDown_Press.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" /> + <texture name="DropDown_Selected" file_name="widgets/DropDown_Selected.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" /> + <texture name="DropDown_On" file_name="widgets/DropDown_On.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" /> + <texture name="DropDown_Off" file_name="widgets/DropDown_Off.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" /> <texture name="DropTarget" file_name="widgets/DropTarget.png" preload="false" /> @@ -265,8 +265,8 @@ with the same filename but different name <texture name="Linden_Dollar_Alert" file_name="widgets/Linden_Dollar_Alert.png"/> <texture name="Linden_Dollar_Background" file_name="widgets/Linden_Dollar_Background.png"/> - <texture name="ListItem_Select" file_name="widgets/ListItem_Select.png" preload="true" /> - <texture name="ListItem_Over" file_name="widgets/ListItem_Over.png" preload="true" /> + <texture name="ListItem_Select" file_name="widgets/ListItem_Select.png" preload="true" scale.left="2" scale.bottom="2" scale.top="22" scale.right="278" /> + <texture name="ListItem_Over" file_name="widgets/ListItem_Over.png" preload="true" scale.left="2" scale.bottom="2" scale.top="22" scale.right="278" /> <texture name="Lock" file_name="icons/Lock.png" preload="false" /> <texture name="Lock2" file_name="navbar/Lock.png" preload="false" /> @@ -515,6 +515,7 @@ with the same filename but different name <texture name="SliderThumb_Press" file_name="widgets/SliderThumb_Press.png" /> <texture name="SL_Logo" file_name="icons/SL_Logo.png" preload="true" /> + <texture name="OBJECT_Icon" file_name="icons/object_icon.png" preload="true" /> <texture name="Snapshot_Off" file_name="bottomtray/Snapshot_Off.png" preload="true" scale.left="4" scale.top="19" scale.right="22" scale.bottom="4" /> <texture name="Snapshot_Over" file_name="bottomtray/Snapshot_Over.png" preload="false" /> diff --git a/indra/newview/skins/default/textures/world/BeaconArrow.png b/indra/newview/skins/default/textures/world/BeaconArrow.png Binary files differindex 12dc246d51..54934f738a 100644 --- a/indra/newview/skins/default/textures/world/BeaconArrow.png +++ b/indra/newview/skins/default/textures/world/BeaconArrow.png diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml index 0beb54032f..5f3762c224 100644 --- a/indra/newview/skins/default/xui/de/floater_about.xml +++ b/indra/newview/skins/default/xui/de/floater_about.xml @@ -73,7 +73,8 @@ google-perftools Copyright (c) 2005, Google Inc. Alle Rechte vorbehalten. Details siehe licenses.txt. -Voice-Chat-Audiocoding: Polycom(R) Siren14(TM) (ITU-T Empf.G.722.1 Anhang C) +Voice-Chat-Audiocoding: Polycom(R) Siren14(TM) +(ITU-T Empf.G.722.1 Anhang C) </text_editor> </panel> </tab_container> 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 cd5abf86e0..aec1179901 100644 --- a/indra/newview/skins/default/xui/de/floater_about_land.xml +++ b/indra/newview/skins/default/xui/de/floater_about_land.xml @@ -12,7 +12,7 @@ <floater.string name="Remaining"> Restzeit </floater.string> - <tab_container name="landtab"> + <tab_container name="landtab" width="489" tab_min_width="40"> <panel label="ALLGEMEIN" name="land_general_panel"> <panel.string name="new users only"> Nur neue Benutzer @@ -83,7 +83,7 @@ <text name="GroupText"> Leyla Linden </text> - <button label="Festlegen" label_selected="Einstellen..." name="Set..."/> + <button label="Festlegen" label_selected="Einstellen..." name="Set..." width="90"/> <check_box label="Übertragung an Gruppe zulassen" name="check deed" tool_tip="Ein Gruppen-Officer kann dieses Land der Gruppe übertragen. Das Land wird dann über die Landzuteilung der Gruppe verwaltet."/> <button label="Übertragung" label_selected="Übertragen..." name="Deed..." tool_tip="Sie können Land nur übertragen, wenn Sie in der ausgewählten Gruppe Officer sind."/> <check_box label="Eigentümer leistet Beitrag durch Übertragung" name="check contrib" tool_tip="Wenn das Land an die Gruppe übertragen wird, trägt der frühere Eigentümer ausreichend Landnutzungsrechte bei, um es zu halten."/> @@ -101,10 +101,10 @@ <text name="For sale to"> Zum Verkauf an: [BUYER] </text> - <text name="Sell with landowners objects in parcel." width="210"> + <text name="Sell with landowners objects in parcel." left_delta="-50" width="240"> Objekte sind im Verkauf eingeschlossen </text> - <text name="Selling with no objects in parcel." width="237"> + <text name="Selling with no objects in parcel." width="260"> Objekte sind im Verkauf nicht eingeschlossen </text> <button bottom="-222" label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" name="Cancel Land Sale"/> @@ -230,7 +230,7 @@ werden. <text left="14" name="Owned by parcel owner:" width="200"> Im Eigentum des Parzellenbesitzers: </text> - <text left="204" name="owner_objects_text" width="48"> + <text left="204" left_delta="200" name="owner_objects_text" width="48"> [COUNT] </text> <button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" width="60"/> @@ -257,7 +257,7 @@ werden. <text left="204" name="selected_objects_text" width="48"> [COUNT] </text> - <text left="4" name="Autoreturn" width="380"> + <text left="4" name="Autoreturn" width="410"> Objekte anderer Einwohner automatisch zurückgeben (Minuten, 0 für aus): </text> <line_editor name="clean other time" right="-10" width="56"/> @@ -269,7 +269,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="Zählen" name="count"/> + <name_list.columns label="Zählen" name="count" width="80"/> <name_list.columns label="Aktuellster" name="mostrecent"/> </name_list> </panel> @@ -368,7 +368,7 @@ Nur große Parzellen können in der Suche aufgeführt werden. <text name="landing_point"> Landepunkt: [LANDING] </text> - <button label="Festlegen" label_selected="Festlegen" left="234" name="Set" tool_tip="Legt den Landepunkt fest, an dem Besucher ankommen. Legt die Position Ihres Avatars innerhalb dieser Parzelle fest." width="70"/> + <button label="Festlegen" label_selected="Festlegen" left="234" right="-88" name="Set" tool_tip="Legt den Landepunkt fest, an dem Besucher ankommen. Legt die Position Ihres Avatars innerhalb dieser Parzelle fest." width="70"/> <button label="Löschen" label_selected="Löschen" left="312" name="Clear" tool_tip="Landepunkt löschen" width="70"/> <text name="Teleport Routing: "> Teleport-Route: @@ -444,7 +444,7 @@ Nur große Parzellen können in der Suche aufgeführt werden. Zugang zu dieser Parzelle </text> <check_box label="Öffentlichen Zugang erlauben [MATURITY]" name="public_access"/> - <text name="Only Allow"> + <text name="Only Allow" width="400"> Zugang auf Einwohner beschränken, die überprüft wurden von: </text> <check_box label="Zahlungsinformation gespeichert [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen."/> diff --git a/indra/newview/skins/default/xui/de/floater_animation_preview.xml b/indra/newview/skins/default/xui/de/floater_animation_preview.xml index ce971d158d..be573b524f 100644 --- a/indra/newview/skins/default/xui/de/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/de/floater_animation_preview.xml @@ -180,6 +180,6 @@ Maximal erlaubt sind [MAX_LENGTH] Sekunden. Wir empfehlen exportierte BVH-Dateien aus Poser 4. </text> - <button label="Hochladen ([AMOUNT] L$)" name="ok_btn"/> - <button label="Abbrechen" name="cancel_btn"/> + <button label="Hochladen ([AMOUNT] L$)" name="ok_btn" width="160"/> + <button label="Abbrechen" name="cancel_btn" left="180" width="88"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml index bc78ccd7f8..f1281bfb9b 100644 --- a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml @@ -21,11 +21,12 @@ <tab_container name="ResidentChooserTabs"> <panel label="Suchen" name="SearchPanel"> <text name="InstructSearchResidentName"> - Geben Sie einen Teil des Namens einer Person ein: + Geben Sie einen Teil des Namens einer +Person ein: </text> - <line_editor bottom_delta="-36" name="Edit"/> - <button label="Los" label_selected="Los" name="Find"/> - <scroll_list bottom_delta="-79" height="74" name="SearchResults"/> + <line_editor bottom_delta="-76" name="Edit" top_pad="16"/> + <button label="Los" label_selected="Los" name="Find" top="70"/> + <scroll_list top="80" height="54" name="SearchResults"/> </panel> <panel label="Freunde" name="FriendsPanel"> <text name="InstructSelectFriend"> diff --git a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml index 3be5194a8f..cf1b809aa1 100644 --- a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml @@ -3,10 +3,10 @@ <floater.string name="InvalidAvatar"> UNGÜLTIGER AVATAR </floater.string> - <text name="label"> + <text name="label" width="120"> Gebackene Texturen </text> - <text name="composite_label" width="150"> + <text name="composite_label" width="170"> Zusammengesetzte Texturen </text> <button label="Läd IDs in Konsole ab" label_selected="Abladen" name="Dump"/> @@ -23,7 +23,8 @@ <texture_picker label="Auge" name="eyes_iris"/> <texture_picker label="Alpha: Augen" name="eyes_alpha"/> <texture_picker label="Oberkörper" name="upper-baked"/> - <texture_picker label="Oberkörper: Körperfarbe" name="upper_bodypaint"/> + <texture_picker label="Oberkörper: Körperfarbe" name="upper_bodypaint" width= + "140"/> <texture_picker label="Unterhemd" name="upper_undershirt"/> <texture_picker label="Handschuhe" name="upper_gloves"/> <texture_picker label="Hemd" name="upper_shirt"/> @@ -31,7 +32,8 @@ <texture_picker label="Alpha: Oben" name="upper_alpha"/> <texture_picker label="Obere Tattoos" name="upper_tattoo"/> <texture_picker label="Unterkörper" name="lower-baked"/> - <texture_picker label="Unterkörper: Körperfarbe" name="lower_bodypaint"/> + <texture_picker label="Unterkörper: Körperfarbe" name="lower_bodypaint" width= + "140"/> <texture_picker label="Unterhose" name="lower_underpants"/> <texture_picker label="Socken" name="lower_socks"/> <texture_picker label="Schuhe" name="lower_shoes"/> diff --git a/indra/newview/skins/default/xui/de/floater_bulk_perms.xml b/indra/newview/skins/default/xui/de/floater_bulk_perms.xml index 218c66d298..1d766ac07b 100644 --- a/indra/newview/skins/default/xui/de/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/de/floater_bulk_perms.xml @@ -43,7 +43,7 @@ Jeder: </text> <check_box label="Kopieren" name="everyone_copy"/> - <text name="NextOwnerLabel"> + <text name="NextOwnerLabel" top="160" left="10"> Nächster Eigentümer: </text> <check_box label="Bearbeiten" name="next_owner_modify"/> diff --git a/indra/newview/skins/default/xui/de/floater_buy_currency.xml b/indra/newview/skins/default/xui/de/floater_buy_currency.xml index aa6201ec26..72959c7a0c 100644 --- a/indra/newview/skins/default/xui/de/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/de/floater_buy_currency.xml @@ -59,8 +59,9 @@ </text> <button label="Jetzt kaufen" name="buy_btn"/> <button label="Abbrechen" name="cancel_btn"/> - <text name="info_cannot_buy"> - Kauf nicht möglich + <text name="info_cannot_buy" left="160" width="200" height="40"> + Kauf nicht +möglich </text> <button label="Weiter zum Internet" name="error_web"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_buy_land.xml b/indra/newview/skins/default/xui/de/floater_buy_land.xml index 4c59f1e8e6..5efa557869 100644 --- a/indra/newview/skins/default/xui/de/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/de/floater_buy_land.xml @@ -3,41 +3,41 @@ <text name="region_name_label"> Region: </text> - <text left="580" name="region_name_text"> + <text left="680" name="region_name_text" left_delta="140"> (unbekannt) </text> <text name="region_type_label"> Typ: </text> - <text left="580" name="region_type_text"> + <text left="680" name="region_type_text" left_delta="140"> (unbekannt) </text> <text name="estate_name_label"> Grundstück: </text> - <text left="580" name="estate_name_text"> + <text left="680" name="estate_name_text" left_delta="140"> (unbekannt) </text> <text name="estate_owner_label" right="600" width="200"> Grundstückseigentümer: </text> - <text left="580" name="estate_owner_text"> + <text left="680" name="estate_owner_text" left_delta="140"> (unbekannt) </text> - <text name="resellable_changeable_label"> + <text name="resellable_changeable_label" left="410"> Gekauftes Land in dieser Region: </text> - <text name="resellable_clause"> + <text name="resellable_clause" left="410"> Wiederverkauf möglich oder nicht möglich. </text> - <text name="changeable_clause"> + <text name="changeable_clause" left="410"> Darft oder darf nicht zusammengelegt/unterteilt werden. </text> - <text name="covenant_text"> + <text name="covenant_text" left="410"> Sie müssen dem Grundstücksvertrag zustimmen: </text> <text left="470" name="covenant_timestamp_text"/> - <text_editor name="covenant_editor"> + <text_editor name="covenant_editor" left="470"> Wird geladen... </text_editor> <check_box label="Ich stimme dem obigen Vertrag zu." name="agree_covenant"/> @@ -67,7 +67,7 @@ Objekte im Verkauf eingeschlossen <text name="error_message"> Irgendetwas stimmt nicht. </text> - <button label="Gehe zu Website" name="error_web"/> + <button label="Gehe zu Website" name="error_web" top_delta="136"/> <text name="account_action"> Macht Sie zum Premium-Mitglied. </text> @@ -79,8 +79,9 @@ Objekte im Verkauf eingeschlossen <combo_box.item label="7,50 US$/Monat, vierteljährliche Abrechnung" name="US$7.50/month,billedquarterly"/> <combo_box.item label="6,00 US$/Monat, jährliche Abrechnung" name="US$6.00/month,billedannually"/> </combo_box> - <text name="land_use_action"> - Erhöhen Sie Ihre monatlichen Landnutzungsgebühren auf 40 US$/month. + <text name="land_use_action" top="270" height="36"> + Erhöhen Sie Ihre monatlichen Landnutzungsgebühren +auf 40 US$/month. </text> <text name="land_use_reason"> Sie besitzen 1309 m² Land. diff --git a/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml index 7f4dc4a79e..9baf30fb53 100644 --- a/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml @@ -66,7 +66,7 @@ Key-Zeit: </text> <spinner label="Std." name="WLCurKeyHour" /> - <spinner label="Min." name="WLCurKeyMin" /> + <spinner label="Min." name="WLCurKeyMin" label_width="100" width="66"/> <text name="WLCurKeyTimeText2"> Key-Voreinstellung: </text> @@ -79,8 +79,8 @@ Zykluslänge: </text> <spinner label="Std." name="WLLengthOfDayHour" /> - <spinner label="Min." name="WLLengthOfDayMin" /> - <spinner label="Sek." name="WLLengthOfDaySec" /> + <spinner label="Min." name="WLLengthOfDayMin" label_width="100" width="66"/> + <spinner label="Sek." name="WLLengthOfDaySec" label_width="100" width="66"/> <text name="DayCycleText3"> Vorschau: </text> diff --git a/indra/newview/skins/default/xui/de/floater_god_tools.xml b/indra/newview/skins/default/xui/de/floater_god_tools.xml index 716165bb6b..30b151ca58 100644 --- a/indra/newview/skins/default/xui/de/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/de/floater_god_tools.xml @@ -11,15 +11,15 @@ </text> <check_box label="Startbereich Einleitung" name="check prelude" tool_tip="Diese Region zu einem Startbereich machen."/> <check_box label="Sonne fest" name="check fixed sun" tool_tip="Fixiert den Sonnenstand (wie in „Region/Grundstück“ > „Terrain“."/> - <check_box height="32" label="Zuhause auf Teleport zurücksetzen" name="check reset home" tool_tip="Wenn Einwohner weg teleportieren, ihr Zuhause auf Zielposition setzen."/> - <check_box bottom_delta="-32" label="Sichtbar" name="check visible" tool_tip="Diese Region für Nicht-Götter sichtbar machen."/> + <check_box label="Zuhause auf Teleport zurücksetzen" name="check reset home" tool_tip="Wenn Einwohner weg teleportieren, ihr Zuhause auf Zielposition setzen."/> + <check_box label="Sichtbar" name="check visible" tool_tip="Diese Region für Nicht-Götter sichtbar machen."/> <check_box label="Schaden" name="check damage" tool_tip="Schaden in dieser Region aktivieren."/> <check_box label="Trafficüberwachung blockieren" name="block dwell" tool_tip="In dieser Region die Traffic-Berechnung abschalten."/> <check_box label="Terraformen blockieren" name="block terraform" tool_tip="Das Terraformen von Land verbieten (Benutzen Sie dies um Leuten das Terraformen ihres Landes zu verbieten)"/> <check_box label="Sandkasten" name="is sandbox" tool_tip="Sandkastenregion ein-/ausschalten."/> - <button label="Terrain formen" label_selected="Terrain formen" name="Bake Terrain" tool_tip="Das aktuelle Terrain als Standard speichern." width="118"/> - <button label="Terrain zurücksetzen" label_selected="Terrain zurücksetzen" name="Revert Terrain" tool_tip="Das aktuelle Terrain mit dem Standard ersetzen." width="118"/> - <button label="Terrain tauschen" label_selected="Terrain tauschen" name="Swap Terrain" tool_tip="Aktuelles Terrain gegen Standard austauschen." width="118"/> + <button label="Terrain formen" label_selected="Terrain formen" name="Bake Terrain" tool_tip="Das aktuelle Terrain als Standard speichern." width="120"/> + <button label="Terrain zurücksetzen" label_selected="Terrain zurücksetzen" name="Revert Terrain" tool_tip="Das aktuelle Terrain mit dem Standard ersetzen." width="120"/> + <button label="Terrain tauschen" label_selected="Terrain tauschen" name="Swap Terrain" tool_tip="Aktuelles Terrain gegen Standard austauschen." width="120"/> <text name="estate id"> Grundstücks-ID: </text> @@ -32,11 +32,11 @@ </text> <line_editor left_delta="110" name="gridposx" tool_tip="Die X-Rasterposition dieser Region" width="35"/> <line_editor left_delta="45" name="gridposy" tool_tip="Die Y-Rasterposition dieser Region" width="35"/> - <text name="Redirect to Grid: "> + <text name="Redirect to Grid: " width="110"> Auf Raster umleiten: </text> - <line_editor left_delta="110" name="redirectx" width="35"/> - <line_editor left_delta="45" name="redirecty" width="35"/> + <line_editor left_delta="110" name="redirectx" width="35" left_pad="0"/> + <line_editor left_delta="45" name="redirecty" width="35" /> <text font="SansSerifSmall" name="billable factor text"> Abrechnungsfaktor: </text> @@ -45,8 +45,8 @@ </text> <button label="Aktualisieren" label_selected="Aktualisieren" name="Refresh" tool_tip="Klicken Sie hier, um die obigen Informationen zu aktualisieren."/> <button label="Übernehmen" label_selected="Übernehmen" name="Apply" tool_tip="Klicken Sie hier, um die obigen Änderungen zu übernehmen."/> - <button label="Region auswählen" label_selected="Region auswählen" left="136" name="Select Region" tool_tip="Die gesamte Region mit dem Landwerkzeug auswählen." width="130"/> - <button label="Automatisch speichern" label_selected="Automatisch speichern" left="136" name="Autosave now" tool_tip="gzipped-Status im Autosave-Verzeichnis speichern." width="130"/> + <button label="Region auswählen" label_selected="Region auswählen" left="136" name="Select Region" tool_tip="Die gesamte Region mit dem Landwerkzeug auswählen." width="132"/> + <button label="Automatisch speichern" label_selected="Automatisch speichern" left="136" name="Autosave now" tool_tip="gzipped-Status im Autosave-Verzeichnis speichern." width="132"/> </panel> <panel label="Objekte" name="objects"> <panel.string name="no_target"> diff --git a/indra/newview/skins/default/xui/de/floater_image_preview.xml b/indra/newview/skins/default/xui/de/floater_image_preview.xml index 7f66234dab..fd675f8808 100644 --- a/indra/newview/skins/default/xui/de/floater_image_preview.xml +++ b/indra/newview/skins/default/xui/de/floater_image_preview.xml @@ -28,5 +28,5 @@ Speichern Sie das Bild als 24 Bit Targa (.tga). </text> <check_box label="Verlustfreie Komprimierung verwenden" name="lossless_check"/> <button label="Abbrechen" name="cancel_btn"/> - <button label="Hochladen ([AMOUNT] L$)" name="ok_btn"/> + <button label="Hochladen ([AMOUNT] L$)" name="ok_btn" width="146"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_inspect.xml b/indra/newview/skins/default/xui/de/floater_inspect.xml index 939aa964c0..da97ceb2d8 100644 --- a/indra/newview/skins/default/xui/de/floater_inspect.xml +++ b/indra/newview/skins/default/xui/de/floater_inspect.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater min_width="450" name="inspect" title="OBJEKTE UNTERSUCHEN"> +<floater min_width="460" name="inspect" title="OBJEKTE UNTERSUCHEN" width="460"> <floater.string name="timeStamp"> [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] </floater.string> <scroll_list name="object_list" tool_tip="Wählen Sie ein Objekt aus dieser Liste, um es in der Second Life-Welt zu markieren"> <scroll_list.columns label="Objektname" name="object_name"/> - <scroll_list.columns label="Besitzer" name="owner_name"/> + <scroll_list.columns label="Besitzer" name="owner_name" /> <scroll_list.columns label="Ersteller" name="creator_name"/> - <scroll_list.columns label="Erstellungsdatum" name="creation_date"/> + <scroll_list.columns label="Erstellungsdatum" name="creation_date" width="116"/> </scroll_list> <button label="Besitzerprofil einsehen..." name="button owner" tool_tip="Profil des Besitzers des markierten Objekts einsehen" width="155"/> <button label="Erstellerprofil einsehen..." left="175" name="button creator" tool_tip="Profil des ursprünglichen Erstellers des markierten Objekts einsehen" width="155"/> diff --git a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml index e894f666c9..f98e23bbc4 100644 --- a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml @@ -59,10 +59,10 @@ Nächster Eigentümer: </text> <check_box label="Bearbeiten" name="CheckNextOwnerModify"/> - <check_box label="Kopieren" left_delta="85" name="CheckNextOwnerCopy"/> + <check_box label="Kopieren" left_delta="55" name="CheckNextOwnerCopy"/> <check_box label="Wiederverkaufen" name="CheckNextOwnerTransfer"/> <check_box label="Zum Verkauf" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="combobox sale copy" left_pad="25"> <combo_box.item label="Kopieren" name="Copy"/> <combo_box.item label="Original" name="Original"/> </combo_box> diff --git a/indra/newview/skins/default/xui/de/floater_lsl_guide.xml b/indra/newview/skins/default/xui/de/floater_lsl_guide.xml index 1d6f690d3c..73c21edc67 100644 --- a/indra/newview/skins/default/xui/de/floater_lsl_guide.xml +++ b/indra/newview/skins/default/xui/de/floater_lsl_guide.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="script ed float" title="LSL-REFERENZ"> <check_box label="Cursor folgen" name="lock_check"/> - <combo_box label="Sperren" name="history_combo"/> + <combo_box label="Sperren" name="history_combo" left_pad="50" width="80"/> <button label="Zurück" name="back_btn"/> <button label="Weiter" name="fwd_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_media_browser.xml b/indra/newview/skins/default/xui/de/floater_media_browser.xml index 18adb5ee7f..2d438dfe21 100644 --- a/indra/newview/skins/default/xui/de/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/de/floater_media_browser.xml @@ -14,8 +14,8 @@ <button label="Los" name="go"/> </layout_panel> <layout_panel name="time_controls"> - <button label="zurückspulen" name="rewind"/> - <button label="anhalten" name="stop"/> + <button label="zurückspulen" name="rewind" width="100"/> + <button label="anhalten" name="stop" left_pad="20"/> <button label="vorwärts" name="seek"/> </layout_panel> <layout_panel name="parcel_owner_controls"> diff --git a/indra/newview/skins/default/xui/de/floater_mem_leaking.xml b/indra/newview/skins/default/xui/de/floater_mem_leaking.xml index b730146aa6..fdc9b950b6 100644 --- a/indra/newview/skins/default/xui/de/floater_mem_leaking.xml +++ b/indra/newview/skins/default/xui/de/floater_mem_leaking.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="MemLeak" title="SPEICHERVERLUST SIMULIEREN"> - <spinner label="Verlustgeschwindigkeit (Bytes pro Frame):" name="leak_speed"/> - <spinner label="Max. Speicherverlust (MB):" name="max_leak"/> + <spinner label="Verlustgeschwindigkeit (Bytes pro Frame):" name="leak_speed" label_width="224"/> + <spinner label="Max. Speicherverlust (MB):" name="max_leak" label_width="224"/> <text name="total_leaked_label"> Aktueller Speicherverlust:[SIZE] KB </text> diff --git a/indra/newview/skins/default/xui/de/floater_openobject.xml b/indra/newview/skins/default/xui/de/floater_openobject.xml index f0b6aa498b..c3e7052283 100644 --- a/indra/newview/skins/default/xui/de/floater_openobject.xml +++ b/indra/newview/skins/default/xui/de/floater_openobject.xml @@ -3,6 +3,6 @@ <text name="object_name"> [DESC]: </text> - <button label="In Inventar kopieren" label_selected="In Inventar kopieren" name="copy_to_inventory_button" width="132"/> - <button label="Kopieren und anziehen" label_selected="Kopieren und anziehen" left="150" name="copy_and_wear_button" width="132"/> + <button label="In Inventar kopieren" label_selected="In Inventar kopieren" name="copy_to_inventory_button" width="120"/> + <button label="Kopieren und anziehen" label_selected="Kopieren und anziehen" left_pad="6" name="copy_and_wear_button" width="136"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_pay_object.xml b/indra/newview/skins/default/xui/de/floater_pay_object.xml index 92f5ea415e..bc714361cc 100644 --- a/indra/newview/skins/default/xui/de/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/de/floater_pay_object.xml @@ -17,10 +17,10 @@ <text left="105" name="object_name_text"> ... </text> - <button label="1 L$" label_selected="1 L$" left="105" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" left="190" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" left="105" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" left="190" name="fastpay 20"/> + <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> + <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> + <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> + <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> <text name="amount text"> Oder Betrag auswählen: </text> diff --git a/indra/newview/skins/default/xui/de/floater_postcard.xml b/indra/newview/skins/default/xui/de/floater_postcard.xml index 37a0a0ad1d..91e0bb8133 100644 --- a/indra/newview/skins/default/xui/de/floater_postcard.xml +++ b/indra/newview/skins/default/xui/de/floater_postcard.xml @@ -3,19 +3,19 @@ <text name="to_label"> E-Mail des Empfängers: </text> - <line_editor left="145" name="to_form" width="125"/> + <line_editor left_delta="145" name="to_form" width="125"/> <text name="from_label"> Ihre E-Mail: </text> - <line_editor left="145" name="from_form" width="125"/> + <line_editor left_delta="145" name="from_form" width="125"/> <text name="name_label"> Ihr Name: </text> - <line_editor left="145" name="name_form" width="125"/> + <line_editor left_delta="145" name="name_form" width="125"/> <text name="subject_label"> Betreff: </text> - <line_editor label="Betreff hier eingeben." left="145" name="subject_form" width="125"/> + <line_editor label="Betreff hier eingeben." left_delta="145" name="subject_form" width="125"/> <text name="msg_label"> Nachricht: </text> @@ -25,7 +25,7 @@ <check_box label="Im Web veröffentlichen" name="allow_publish_check" tool_tip="Veröffentlicht diese Postkarte im Web."/> <check_box label="Ab-18-Inhalt" name="mature_check" tool_tip="Diese Postkarte enthält nicht jugendfreie Inhalte."/> <button label="?" name="publish_help_btn"/> - <text name="fine_print"> + <text name="fine_print" bottom_delta="21" height="140"> Wenn sich der Empfänger bei SL anmeldet, erhalten Sie einen Empfehlungsbonus. </text> <button label="Abbrechen" name="cancel_btn"/> diff --git a/indra/newview/skins/default/xui/de/floater_preview_animation.xml b/indra/newview/skins/default/xui/de/floater_preview_animation.xml index e98faeb1f4..b2e9c2e66d 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_animation.xml @@ -3,10 +3,10 @@ <floater.string name="Title"> Animation: [NAME] </floater.string> - <text name="desc txt"> + <text name="desc txt" width="140"> Beschreibung: </text> - <line_editor left="98" name="desc" width="189"/> + <line_editor left="108" name="desc" width="160"/> <button label="In Welt abspielen" label_selected="Stopp" name="Anim play btn" tool_tip="Diese Animation so wiedergeben, dass andere sie sehen können." width="116"/> <button label="Lokal wiedergeben" label_selected="Stopp" left="171" name="Anim audition btn" tool_tip="Diese Animation so wiedergeben, dass nur Sie sie sehen." width="116"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml index 51c41a3209..1426a33d1d 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml @@ -36,7 +36,7 @@ <text name="replace_text" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht's“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht's sagen“ und die zugehörige Geste wird abgespielt."> Ersetzen mit: </text> - <line_editor name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht's“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht's sagen“ und die zugehörige Geste wird abgespielt."/> + <line_editor name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht's“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht's sagen“ und die zugehörige Geste wird abgespielt." left_delta="94" width="160"/> <text name="key_label"> Tastenkürzel: </text> @@ -45,8 +45,8 @@ <text name="library_label"> Bibliothek: </text> - <scroll_list name="library_list"/> - <button label="Hinzufügen >>" name="add_btn"/> + <scroll_list name="library_list" width="166"/> + <button label="Hinzufügen >>" name="add_btn" left_pad="6" width="94"/> <text name="steps_label"> Schritte: </text> diff --git a/indra/newview/skins/default/xui/de/floater_report_abuse.xml b/indra/newview/skins/default/xui/de/floater_report_abuse.xml index 3edf5959a2..f471866967 100644 --- a/indra/newview/skins/default/xui/de/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/de/floater_report_abuse.xml @@ -23,7 +23,8 @@ {128.1, 128.1, 15.4} </text> <text bottom_delta="-38" height="32" name="select_object_label"> - Klicken Sie auf die Schaltfläche, dann auf das entsprechende Objekt: + Klicken Sie auf die Schaltfläche, dann auf das entsprechende +Objekt: </text> <button label="" label_selected="" name="pick_btn" tool_tip="Objektauswahl – Wählen Sie ein Objekt als Thema dieses Berichts aus"/> <text name="object_name_label"> @@ -95,7 +96,7 @@ <text name="bug_aviso"> Bitte beschreiben Sie alles so genau wie möglich. </text> - <text_editor bottom_delta="-136" height="130" name="details_edit"/> + <text_editor bottom_delta="-136" height="70" name="details_edit"/> <text bottom_delta="-20" name="incomplete_title"> * Unvollständige Berichte werden nicht bearbeitet </text> diff --git a/indra/newview/skins/default/xui/de/floater_script_preview.xml b/indra/newview/skins/default/xui/de/floater_script_preview.xml index 27c40aff07..1ea3803aea 100644 --- a/indra/newview/skins/default/xui/de/floater_script_preview.xml +++ b/indra/newview/skins/default/xui/de/floater_script_preview.xml @@ -3,7 +3,7 @@ <floater.string name="Title"> Skript: [NAME] </floater.string> - <text name="desc txt"> + <text name="desc txt" width="120"> Beschreibung: </text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_sell_land.xml b/indra/newview/skins/default/xui/de/floater_sell_land.xml index 2bc7356e65..a2c86e7bb0 100644 --- a/indra/newview/skins/default/xui/de/floater_sell_land.xml +++ b/indra/newview/skins/default/xui/de/floater_sell_land.xml @@ -5,13 +5,13 @@ <text name="info_parcel_label"> Parzelle: </text> - <text bottom_delta="-5" height="16" name="info_parcel"> + <text bottom_delta="-5" height="16" name="info_parcel" left="70"> PARZELLENNAME </text> <text name="info_size_label"> Größe: </text> - <text bottom_delta="-21" height="32" name="info_size"> + <text bottom_delta="-21" height="32" name="info_size" left="70"> [AREA] m². </text> <text bottom_delta="-57" height="28" name="info_action"> @@ -20,7 +20,7 @@ <text name="price_label"> 1. Preis festlegen: </text> - <text name="price_text"> + <text name="price_text" > Einen angemessenen Preis auswählen. </text> <text name="price_ld"> diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml index 80573d69ad..b48c9a77c8 100644 --- a/indra/newview/skins/default/xui/de/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml @@ -60,7 +60,7 @@ <spinner label="Höhe" name="snapshot_height"/> <check_box label="Seitenverhältnis beibehalten" name="keep_aspect_check"/> <slider label="Bildqualität" name="image_quality_slider"/> - <text name="layer_type_label" width="63"> + <text name="layer_type_label" width="66"> Aufnehmen: </text> <combo_box label="Bildlayer" left="73" name="layer_types" width="132"> diff --git a/indra/newview/skins/default/xui/de/floater_stats.xml b/indra/newview/skins/default/xui/de/floater_stats.xml index dcea484e13..1eb2dd4288 100644 --- a/indra/newview/skins/default/xui/de/floater_stats.xml +++ b/indra/newview/skins/default/xui/de/floater_stats.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Statistics" title="STATISTIKEN"> - <scroll_container name="statistics_scroll"> - <container_view name="statistics_view"> +<floater name="Statistics" title="STATISTIKEN" width="280"> + <scroll_container name="statistics_scroll" width="280"> + <container_view name="statistics_view" width="280"> <stat_view label="Basic" name="basic"> <stat_bar label="FPS" name="fps"/> <stat_bar label="Bandbreite" name="bandwidth"/> diff --git a/indra/newview/skins/default/xui/de/floater_telehub.xml b/indra/newview/skins/default/xui/de/floater_telehub.xml index 923b4c0079..4d3c96bc87 100644 --- a/indra/newview/skins/default/xui/de/floater_telehub.xml +++ b/indra/newview/skins/default/xui/de/floater_telehub.xml @@ -6,15 +6,15 @@ <text name="status_text_not_connected"> Kein Telehub verbunden. </text> - <text name="help_text_connected"> + <text name="help_text_connected" width="300"> Klicken Sie zum Entfernen auf „Trennen“. </text> <text bottom_delta="-18" height="38" name="help_text_not_connected"> Wählen Sie ein Objekt und klicken Sie auf „Mit Telehub verbinden“. </text> - <button label="Mit Telehub verbinden" name="connect_btn" width="122"/> - <button label="Trennen" left="142" name="disconnect_btn" width="98"/> + <button label="Mit Telehub verbinden" name="connect_btn" width="134"/> + <button label="Trennen" left="152" name="disconnect_btn" width="88"/> <text name="spawn_points_text" width="230"> Spawn-Punkte (Positionen, nicht Objekte): </text> diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml index b2f8cbed45..b5c02cce0b 100644 --- a/indra/newview/skins/default/xui/de/floater_tools.xml +++ b/indra/newview/skins/default/xui/de/floater_tools.xml @@ -363,7 +363,7 @@ <text name="edit_object"> Objekteigenschaften bearbeiten: </text> - <check_box label="Flexibler Weg" name="Flexible1D Checkbox Ctrl" tool_tip="Bewirkt, dass sich das Objekt um die Z-Achse biegen kann. (Nur Client-Seite)"/> + <check_box label="Flexibler Pfad" name="Flexible1D Checkbox Ctrl" tool_tip="Bewirkt, dass sich das Objekt um die Z-Achse biegen kann. (Nur Client-Seite)"/> <spinner label="Weichheit" name="FlexNumSections"/> <spinner label="Schwerkraft" name="FlexGravity"/> <spinner label="Ziehen" name="FlexFriction"/> diff --git a/indra/newview/skins/default/xui/de/floater_url_entry.xml b/indra/newview/skins/default/xui/de/floater_url_entry.xml index 392d53a33d..f5fa449c85 100644 --- a/indra/newview/skins/default/xui/de/floater_url_entry.xml +++ b/indra/newview/skins/default/xui/de/floater_url_entry.xml @@ -3,10 +3,10 @@ <text name="media_label"> Medien-URL: </text> - <button label="OK" name="ok_btn" /> - <button label="Abbrechen" name="cancel_btn" width="75" /> - <button label="Löschen" name="clear_btn" /> - <text name="loading_label"> + <button label="OK" name="ok_btn" width="30"/> + <button label="Abbrechen" name="cancel_btn" width="66" /> + <button label="Löschen" name="clear_btn" left_pad="100"/> + <text name="loading_label" left="120"> Wird geladen... </text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_water.xml b/indra/newview/skins/default/xui/de/floater_water.xml index ed18dfdfff..ecd6d7ff3e 100644 --- a/indra/newview/skins/default/xui/de/floater_water.xml +++ b/indra/newview/skins/default/xui/de/floater_water.xml @@ -3,7 +3,7 @@ <floater.string name="WLDefaultWaterNames"> Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez </floater.string> - <text name="KeyFramePresetsText"> + <text name="KeyFramePresetsText" width="116"> Voreinstellungen: </text> <button label="Neu" label_selected="Neu" name="WaterNewPreset"/> diff --git a/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml index 35a5ec35f7..1332509529 100644 --- a/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml +++ b/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml @@ -5,5 +5,5 @@ </text> <line_editor name="whitelist_entry" tool_tip="Eine URL oder URL-Patten in die Whitelist eingeben"/> <button label="OK" name="ok_btn"/> - <button label="Abbrechen" name="cancel_btn"/> + <button label="Abbrechen" name="cancel_btn" width="80"/> </floater> diff --git a/indra/newview/skins/default/xui/de/inspect_avatar.xml b/indra/newview/skins/default/xui/de/inspect_avatar.xml index 489e257867..eedbdc9904 100644 --- a/indra/newview/skins/default/xui/de/inspect_avatar.xml +++ b/indra/newview/skins/default/xui/de/inspect_avatar.xml @@ -16,9 +16,9 @@ Dies ist meine Beschreibung und ich finde sie wirklich gut! </text> <slider name="volume_slider" tool_tip="Lautstärke" value="0.5"/> - <button label="Freund hinzufügen" name="add_friend_btn"/> + <button label="Freund hinzufügen" name="add_friend_btn" width="110"/> <button label="IM" name="im_btn"/> - <button label="Mehr" name="view_profile_btn"/> + <button label="Mehr" name="view_profile_btn" width="44" left_delta="120"/> <panel name="moderator_panel"> <button label="Voice deaktivieren" name="disable_voice"/> <button label="Voice aktivieren" name="enable_voice"/> diff --git a/indra/newview/skins/default/xui/de/inspect_group.xml b/indra/newview/skins/default/xui/de/inspect_group.xml index 81d946be9d..badb47bf08 100644 --- a/indra/newview/skins/default/xui/de/inspect_group.xml +++ b/indra/newview/skins/default/xui/de/inspect_group.xml @@ -24,7 +24,7 @@ </text> <text name="group_details"> Eine Gruppe für Leute, die sich gerne mit Elchen unterhält. -Hoch solln sie leben! Elche forever! Und auch Mungos! +Hoch solln sie leben! Elche forever! Und auch Mungos! </text> <text name="group_cost"> Mitgliedschaft: 123 L$ diff --git a/indra/newview/skins/default/xui/de/inspect_object.xml b/indra/newview/skins/default/xui/de/inspect_object.xml index 61f2cc8dc9..bcf4b91527 100644 --- a/indra/newview/skins/default/xui/de/inspect_object.xml +++ b/indra/newview/skins/default/xui/de/inspect_object.xml @@ -39,7 +39,7 @@ Besitzer secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about </text> <button label="Kaufen" name="buy_btn"/> <button label="Zahlen" name="pay_btn"/> - <button label="Kopie nehmen" name="take_free_copy_btn"/> + <button label="Kopie nehmen" name="take_free_copy_btn" width="100"/> <button label="Berühren" name="touch_btn"/> <button label="Sitzen" name="sit_btn"/> <button label="Öffnen" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml index eb4832770e..eeb5de749d 100644 --- a/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml +++ b/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="block_list_panel"> - <text name="title_text"> +<panel name="block_list_panel" width="300"> + <text name="title_text" left_pad="5" width="260"> Liste der ignorierten Einwohner </text> - <scroll_list name="blocked" tool_tip="Liste der zur Zeit ignorierten Einwohner"/> + <scroll_list name="blocked" tool_tip="Liste der zur Zeit ignorierten Einwohner" width="290"/> <button label="Einwohner ignorieren" label_selected="Einwohner ignorieren..." name="Block resident..." tool_tip="Wählen Sie einen Einwohner, um ihn zu ignorieren"/> <button label="Objekt nach Name ignorieren" label_selected="Objekt nach Name ignorieren..." name="Block object by name..." tool_tip="Ein Objekt auswählen, um nach Namen zu ignorieren."/> <button label="Freischalten" label_selected="Freischalten" name="Unblock" tool_tip="Einwohner oder Objekt von der Liste der ignorierten Einwohner oder Objekte entfernen"/> diff --git a/indra/newview/skins/default/xui/de/panel_edit_alpha.xml b/indra/newview/skins/default/xui/de/panel_edit_alpha.xml index 4b48950341..b6c53be778 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_alpha.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_alpha.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="edit_alpha_panel"> - <panel name="avatar_alpha_color_panel"> - <texture_picker label="Alpha: Unten" name="Lower Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/> - <texture_picker label="Alpha: Oben" name="Upper Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/> +<panel name="edit_alpha_panel" width="320"> + <panel name="avatar_alpha_color_panel" width="300"> + <texture_picker label="Alpha: Unten" name="Lower Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="70"/> + <texture_picker label="Alpha: Oben" name="Upper Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="66"/> <texture_picker label="Kopf: Alpha" name="Head Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/> - <texture_picker label="Alpha: Augen" name="Eye Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/> - <texture_picker label="Alpha: Haare" name="Hair Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/> + <texture_picker label="Alpha: Augen" name="Eye Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="72"/> + <texture_picker label="Alpha: Haare" name="Hair Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="70"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml index c05a3a6645..12649e9251 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="edit_tattoo_panel"> <panel name="avatar_tattoo_color_panel"> - <texture_picker label="Kopftattoo" name="Head Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/> - <texture_picker label="Obere Tattoos" name="Upper Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/> - <texture_picker label="Untere Tattoos" name="Lower Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/> + <texture_picker label="Kopftattoo" name="Head Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/> + <texture_picker label="Obere Tattoos" name="Upper Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/> + <texture_picker label="Untere Tattoos" name="Lower Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_group_invite.xml b/indra/newview/skins/default/xui/de/panel_group_invite.xml index 8e1fb5e4b2..fb357093bb 100644 --- a/indra/newview/skins/default/xui/de/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/de/panel_group_invite.xml @@ -9,18 +9,18 @@ <panel.string name="already_in_group"> Einige der ausgewählten Einwohner sind bereits Gruppenmitglieder und haben aus diesem Grund keine Einladung erhalten. </panel.string> - <text name="help_text"> + <text name="help_text" top="10"> Sie können mehrere Einwohner auswählen, um diese in Ihre Gruppe einzuladen. Klicken Sie hierzu auf „Einwohnerliste öffnen“. </text> - <button label="Einwohnerliste öffnen" name="add_button" tool_tip=""/> + <button label="Einwohnerliste öffnen" name="add_button" tool_tip="" top_delta="62"/> <name_list name="invitee_list" tool_tip="Halten Sie zur Mehrfachauswahl die Strg-Taste gedrückt und klicken Sie auf die Namen."/> <button label="Auswahl aus Liste löschen" name="remove_button" tool_tip="Die oben ausgewählten Einwohner von der Einladungsliste entfernen."/> <text name="role_text"> Wählen Sie eine Rolle aus: </text> <combo_box name="role_name" tool_tip="Wählen Sie aus der Liste der Rollen, die Sie an Mitglieder vergeben dürfen."/> - <button label="Einladungen versenden" name="ok_button"/> - <button label="Abbrechen" name="cancel_button"/> + <button label="Einladungen versenden" name="ok_button" width="136"/> + <button label="Abbrechen" name="cancel_button" width="66"/> <string name="GroupInvitation"> Gruppeneinladung </string> diff --git a/indra/newview/skins/default/xui/de/panel_group_land_money.xml b/indra/newview/skins/default/xui/de/panel_group_land_money.xml index e9743c5d5d..d6cfb22cfe 100644 --- a/indra/newview/skins/default/xui/de/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/de/panel_group_land_money.xml @@ -30,13 +30,13 @@ <text name="total_contributed_land_value"> [AREA] m². </text> - <text name="total_land_in_use_label"> + <text name="total_land_in_use_label" left="28" width="180"> Insgesamt verwendetes Land: </text> <text name="total_land_in_use_value"> [AREA] m². </text> - <text name="land_available_label"> + <text name="land_available_label" left="4"> Land verfügbar: </text> <text name="land_available_value"> @@ -54,10 +54,10 @@ <text name="your_contribution_max_value"> ([AMOUNT] max.) </text> - <text name="group_over_limit_text"> + <text name="group_over_limit_text" width="300"> Um das benutzte Land zu unterstützen, sind weitere Landnutzungsrechte erforderlich. </text> - <text name="group_money_heading"> + <text name="group_money_heading" left="10" top_pad="10"> Gruppen-L$ </text> <tab_container name="group_money_tab_container"> diff --git a/indra/newview/skins/default/xui/de/panel_group_roles.xml b/indra/newview/skins/default/xui/de/panel_group_roles.xml index 3103fd65b1..b2e885e639 100644 --- a/indra/newview/skins/default/xui/de/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/de/panel_group_roles.xml @@ -15,8 +15,8 @@ um mehrere Mitglieder auszuwählen. </panel.string> <filter_editor label="Mitglieder filtern" name="filter_input"/> <name_list name="member_list"> - <name_list.columns label="Mitglied" name="name"/> - <name_list.columns label="Übereignung" name="donated"/> + <name_list.columns label="Mitglied" name="name" relative_width="0.30"/> + <name_list.columns label="Übereignung" name="donated" relative_width="0.33"/> <name_list.columns label="Status" name="online"/> </name_list> <button label="Einladen" name="member_invite"/> diff --git a/indra/newview/skins/default/xui/de/panel_groups.xml b/indra/newview/skins/default/xui/de/panel_groups.xml index 95a2ef14f9..f857a6c7ac 100644 --- a/indra/newview/skins/default/xui/de/panel_groups.xml +++ b/indra/newview/skins/default/xui/de/panel_groups.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="groups"> - <text name="groupdesc"> + <text name="groupdesc" width="300"> Die derzeit aktive Gruppe ist fett hervorgehoben. </text> - <text name="groupcount"> + <text name="groupcount" width="360"> Sie sind Mitglied bei [COUNT] Gruppen (von max. [MAX]). </text> <button label="IM/Anruf" name="IM" tool_tip="Beginnt eine Instant Message-Sitzung" /> diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml index bd82fc6872..2a6ea42c73 100644 --- a/indra/newview/skins/default/xui/de/panel_login.xml +++ b/indra/newview/skins/default/xui/de/panel_login.xml @@ -23,7 +23,7 @@ <text name="start_location_text"> Hier anfangen: </text> - <combo_box name="start_location_combo"> + <combo_box name="start_location_combo" width="150"> <combo_box.item label="Mein letzter Standort" name="MyLastLocation"/> <combo_box.item label="Mein Zuhause" name="MyHome"/> <combo_box.item label="<Region eingeben>" name="Typeregionname"/> diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_security.xml b/indra/newview/skins/default/xui/de/panel_media_settings_security.xml index 8ff013f66b..adc0d22ce6 100644 --- a/indra/newview/skins/default/xui/de/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/de/panel_media_settings_security.xml @@ -2,7 +2,8 @@ <panel label="Sicherheit" name="Media Settings Security"> <check_box initial_value="false" label="Nur Zugriff auf festgelegte URL-Muster zulassen" name="whitelist_enable"/> <text name="home_url_fails_some_items_in_whitelist"> - Einträge, die für die Startseite nicht akzeptiert werden, sind markiert: + Einträge, die für die Startseite nicht akzeptiert +werden, sind markiert: </text> <button label="Hinzufügen" name="whitelist_add"/> <button label="Löschen" name="whitelist_del"/> diff --git a/indra/newview/skins/default/xui/de/panel_nearby_chat.xml b/indra/newview/skins/default/xui/de/panel_nearby_chat.xml index 699bddc6eb..3f4f5a71b5 100644 --- a/indra/newview/skins/default/xui/de/panel_nearby_chat.xml +++ b/indra/newview/skins/default/xui/de/panel_nearby_chat.xml @@ -2,7 +2,7 @@ <!-- All our XML is utf-8 encoded. --> <panel name="nearby_chat"> <panel name="chat_caption"> - <text name="sender_name"> + <text name="sender_name" width="200"> CHAT IN DER NÄHE </text> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_notes.xml b/indra/newview/skins/default/xui/de/panel_notes.xml index e6a63fc0c8..374c117cdd 100644 --- a/indra/newview/skins/default/xui/de/panel_notes.xml +++ b/indra/newview/skins/default/xui/de/panel_notes.xml @@ -13,10 +13,10 @@ </scroll_container> </layout_panel> <layout_panel name="notes_buttons_panel"> - <button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an"/> - <button label="IM" name="im" tool_tip="Instant Messenger öffnen"/> + <button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an" width="109"/> + <button label="IM" name="im" tool_tip="Instant Messenger öffnen" width="24"/> <button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/> - <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/> + <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen" width="40"/> <button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/de/panel_picks.xml b/indra/newview/skins/default/xui/de/panel_picks.xml index a07bc170f6..df68381082 100644 --- a/indra/newview/skins/default/xui/de/panel_picks.xml +++ b/indra/newview/skins/default/xui/de/panel_picks.xml @@ -11,7 +11,7 @@ </panel> <panel name="buttons_cucks"> <button label="Info" name="info_btn" tool_tip="Auswahl-Information anzeigen"/> - <button label="Teleportieren" name="teleport_btn" tool_tip="Zu entsprechendem Standort teleportieren"/> + <button label="Teleportieren" name="teleport_btn" tool_tip="Zu entsprechendem Standort teleportieren" width="100"/> <button label="Karte" name="show_on_map_btn" tool_tip="Den entsprechenden Standort auf der Karte anzeigen"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_places.xml b/indra/newview/skins/default/xui/de/panel_places.xml index 8ee26f4e5f..0b3ed26dce 100644 --- a/indra/newview/skins/default/xui/de/panel_places.xml +++ b/indra/newview/skins/default/xui/de/panel_places.xml @@ -5,11 +5,11 @@ <filter_editor label="Orte filtern" name="Filter"/> <panel name="button_panel"> <button label="Teleportieren" name="teleport_btn" tool_tip="Zu ausgewähltem Standort teleportieren"/> - <button label="Karte" name="map_btn"/> + <button label="Karte" name="map_btn" width="60"/> <button label="Bearbeiten" name="edit_btn" tool_tip="Landmarken-Info bearbeiten"/> <button name="overflow_btn" tool_tip="Zusätzliche Optionen anzeigen"/> <button label="Schließen" name="close_btn"/> - <button label="Abbrechen" name="cancel_btn"/> - <button label="Speichern" name="save_btn"/> + <button label="Abbrechen" name="cancel_btn" width="66"/> + <button label="Speichern" name="save_btn" width="66"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml index 14d4e01586..c9d6faf3ba 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml @@ -8,7 +8,7 @@ </panel.string> <check_box label="Blasen-Chat" name="bubble_text_chat"/> <color_swatch name="background" tool_tip="Farbe für Blasen-Chat auswählen"/> - <slider label="Deckkraft" name="bubble_chat_opacity"/> + <slider label="Deckkraft" name="bubble_chat_opacity" label_width="66"/> <text name="AspectRatioLabel1" tool_tip="Breite/Höhe"> Seitenverhältnis </text> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml index 490b0b296b..2af1b72472 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml @@ -19,7 +19,7 @@ <text name="language_textbox2"> (Erfordert Neustart) </text> - <text name="maturity_desired_prompt"> + <text name="maturity_desired_prompt" width="350"> Ich möchte auf Inhalt mit folgender Alterseinstufung zugreifen: </text> <text name="maturity_desired_textbox"/> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml index 0c0924026e..43664f4f8a 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml @@ -23,5 +23,5 @@ Speicherort für Protokolle: </text> <button label="Durchsuchen" label_selected="Durchsuchen" name="log_path_button"/> - <button label="Ignorierte Einwohner/Objekte" name="block_list"/> + <button label="Ignorierte Einwohner/Objekte" name="block_list" width="180"/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_profile.xml b/indra/newview/skins/default/xui/de/panel_profile.xml index 82467eb570..4ce5ed8fba 100644 --- a/indra/newview/skins/default/xui/de/panel_profile.xml +++ b/indra/newview/skins/default/xui/de/panel_profile.xml @@ -38,10 +38,10 @@ </scroll_container> </layout_panel> <layout_panel name="profile_buttons_panel"> - <button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an"/> - <button label="IM" name="im" tool_tip="Instant Messenger öffnen"/> + <button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an" width="109"/> + <button label="IM" name="im" tool_tip="Instant Messenger öffnen" width="24"/> <button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/> - <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/> + <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen" width="36"/> <button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/> </layout_panel> <layout_panel name="profile_me_buttons_panel"> diff --git a/indra/newview/skins/default/xui/de/panel_profile_view.xml b/indra/newview/skins/default/xui/de/panel_profile_view.xml index 4d59c16e98..f02457dd80 100644 --- a/indra/newview/skins/default/xui/de/panel_profile_view.xml +++ b/indra/newview/skins/default/xui/de/panel_profile_view.xml @@ -8,7 +8,7 @@ </string> <text_editor name="user_name" value="(wird geladen...)"/> <text name="status" value="Online"/> - <tab_container name="tabs"> + <tab_container name="tabs" tab_min_width="60"> <panel label="PROFIL" name="panel_profile"/> <panel label="AUSWAHL" name="panel_picks"/> <panel label="NOTIZEN & PRIVATSPHÄRE" name="panel_notes"/> diff --git a/indra/newview/skins/default/xui/de/panel_region_covenant.xml b/indra/newview/skins/default/xui/de/panel_region_covenant.xml index 14be8def7e..153082909a 100644 --- a/indra/newview/skins/default/xui/de/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/de/panel_region_covenant.xml @@ -18,7 +18,7 @@ <text name="estate_cov_lbl"> Vertrag: </text> - <text name="covenant_timestamp_text"> + <text name="covenant_timestamp_text" width="320"> Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00 </text> <button label="?" name="covenant_help"/> @@ -28,7 +28,7 @@ <button label="Zurücksetzen" name="reset_covenant"/> <text name="covenant_help_text"> Änderungen am Vertrag werden für alle Parzellen auf dem - Grundstück übernommen. +Grundstück übernommen. </text> <text bottom_delta="-36" name="covenant_instructions"> Ziehen Sie eine Notizkarte an diese Stelle, um den Vertrag für dieses Grundstück zu ändern. @@ -63,7 +63,7 @@ <text name="changeable_lbl"> Unterteilen: </text> - <text name="changeable_clause"> + <text name="changeable_clause" width="366"> Land in dieser Region kann nicht zusammengelegt/geteilt werden. </text> <string name="can_resell"> diff --git a/indra/newview/skins/default/xui/de/panel_region_debug.xml b/indra/newview/skins/default/xui/de/panel_region_debug.xml index 40befab4dd..920a513308 100644 --- a/indra/newview/skins/default/xui/de/panel_region_debug.xml +++ b/indra/newview/skins/default/xui/de/panel_region_debug.xml @@ -13,7 +13,7 @@ <check_box label="Physik deaktivieren" name="disable_physics_check" tool_tip="Physik in dieser Region deaktivieren"/> <button label="?" name="disable_physics_help"/> <button label="Übernehmen" name="apply_btn"/> - <text name="objret_text_lbl" width="105"> + <text name="objret_text_lbl" width="110"> Objekt zurückgeben </text> <text name="resident_text_lbl"> diff --git a/indra/newview/skins/default/xui/de/panel_region_texture.xml b/indra/newview/skins/default/xui/de/panel_region_texture.xml index d489b5bac8..f9997f300a 100644 --- a/indra/newview/skins/default/xui/de/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/de/panel_region_texture.xml @@ -36,14 +36,14 @@ <text name="height_text_lbl9"> Nordost </text> - <spinner label="Niedrig" name="height_start_spin_0"/> - <spinner label="Niedrig" name="height_start_spin_1"/> - <spinner label="Niedrig" name="height_start_spin_2"/> - <spinner label="Niedrig" name="height_start_spin_3"/> - <spinner label="Hoch" name="height_range_spin_0"/> - <spinner label="Hoch" name="height_range_spin_1"/> - <spinner label="Hoch" name="height_range_spin_2"/> - <spinner label="Hoch" name="height_range_spin_3"/> + <spinner label="Niedrig" name="height_start_spin_0" label_width="40"/> + <spinner label="Niedrig" name="height_start_spin_1" label_width="40"/> + <spinner label="Niedrig" name="height_start_spin_2" label_width="40"/> + <spinner label="Niedrig" name="height_start_spin_3" label_width="40"/> + <spinner label="Hoch" name="height_range_spin_0" label_width="40"/> + <spinner label="Hoch" name="height_range_spin_1" label_width="40"/> + <spinner label="Hoch" name="height_range_spin_2" label_width="40"/> + <spinner label="Hoch" name="height_range_spin_3" label_width="40"/> <text name="height_text_lbl10"> Diese Werte geben den Mischungsgrad für die obigen Texturen an. </text> diff --git a/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml index f6a1d7e9b5..16bf4e8eb4 100644 --- a/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml +++ b/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml @@ -4,7 +4,7 @@ Wird geladen... </text> <scroll_list name="scripts_list"> - <scroll_list.columns label="Größe (KB)" name="size"/> + <scroll_list.columns label="Größe (KB)" name="size" width="80"/> <scroll_list.columns label="URLs" name="urls"/> <scroll_list.columns label="Objektname" name="name"/> <scroll_list.columns label="Ort" name="location"/> diff --git a/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml index c466c04e86..3eec66fe75 100644 --- a/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml +++ b/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml @@ -13,12 +13,12 @@ Wird geladen... </text> <scroll_list name="scripts_list"> - <scroll_list.columns label="Größe (KB)" name="size"/> + <scroll_list.columns label="Größe (KB)" name="size" width="80"/> <scroll_list.columns label="Objektname" name="name"/> - <scroll_list.columns label="Objekteigentümer" name="owner"/> + <scroll_list.columns label="Objekteigentümer" name="owner" width="130"/> <scroll_list.columns label="Parzelle / Standort" name="location"/> </scroll_list> - <button label="Liste aktualisieren" name="refresh_list_btn"/> + <button label="Liste aktualisieren" name="refresh_list_btn" width="110"/> <button label="Markieren" name="highlight_btn"/> <button label="Zurückgeben" name="return_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_side_tray.xml b/indra/newview/skins/default/xui/de/panel_side_tray.xml index 2cd11cdcef..446117962f 100644 --- a/indra/newview/skins/default/xui/de/panel_side_tray.xml +++ b/indra/newview/skins/default/xui/de/panel_side_tray.xml @@ -2,26 +2,26 @@ <!-- Side tray cannot show background because it is always partially on screen to hold tab buttons. --> <side_tray name="sidebar"> - <sidetray_tab description="Seitenleiste auf-/zuklappen." name="sidebar_openclose"/> - <sidetray_tab description="Startseite." name="sidebar_home"> + <sidetray_tab description="Seitenleiste auf-/zuklappen." name="sidebar_openclose" tab_title="Seitenleiste auf-/zuklappen"/> + <sidetray_tab description="Startseite." name="sidebar_home" tab_title="Startseite"> <panel label="Startseite" name="panel_home"/> </sidetray_tab> - <sidetray_tab description="Ihr öffentliches Profil und Auswahl bearbeiten." name="sidebar_me"> + <sidetray_tab description="Ihr öffentliches Profil und Auswahl bearbeiten." name="sidebar_me" tab_title="Mein Profil"> <panel label="Ich" name="panel_me"/> </sidetray_tab> - <sidetray_tab description="Freunde, Kontakte und Leute in Ihrer Nähe finden." name="sidebar_people"> + <sidetray_tab description="Freunde, Kontakte und Leute in Ihrer Nähe finden." name="sidebar_people" tab_title="Leute"> <panel_container name="panel_container"> <panel label="Gruppeninfo" name="panel_group_info_sidetray"/> <panel label="Ignorierte Einwohner & Objekte" name="panel_block_list_sidetray"/> </panel_container> </sidetray_tab> - <sidetray_tab description="Hier finden Sie neue Orte und Orte, die Sie bereits besucht haben." label="Orte" name="sidebar_places"> + <sidetray_tab description="Hier finden Sie neue Orte und Orte, die Sie bereits besucht haben." label="Orte" name="sidebar_places" tab_title="Orte"> <panel label="Orte" name="panel_places"/> </sidetray_tab> - <sidetray_tab description="Inventar durchsuchen." name="sidebar_inventory"> + <sidetray_tab description="Inventar durchsuchen." name="sidebar_inventory" tab_title="Mein Inventar"> <panel label="Inventar bearbeiten" name="sidepanel_inventory"/> </sidetray_tab> - <sidetray_tab description="Ändern Sie Ihr Aussehen und Ihren aktuellen Look." name="sidebar_appearance"> + <sidetray_tab description="Ändern Sie Ihr Aussehen und Ihren aktuellen Look." name="sidebar_appearance" tab_title="Mein Aussehen"> <panel label="Aussehen bearbeiten" name="sidepanel_appearance"/> </sidetray_tab> </side_tray> 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 61ca783d14..44c9284b36 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -1825,6 +1825,15 @@ Only large parcels can be listed in search. top_delta="0" right="-15" select_on_focus="true" /> + <check_box + height="16" + label="Hide URL" + layout="topleft" + name="hide_music_url" + tool_tip="Checking this option will hide the music url to any non-authorized viewers of this parcel information." + left_delta="10" + top_pad="5" + width="292" /> <text type="string" length="1" diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml index 978b40da77..964713adbf 100644 --- a/indra/newview/skins/default/xui/en/floater_im_container.xml +++ b/indra/newview/skins/default/xui/en/floater_im_container.xml @@ -24,6 +24,8 @@ tab_height="16" use_custom_icon_ctrl="true" tab_icon_ctrl_pad="2" + font_halign="left" + use_ellipses="true" top="0" width="390" /> <icon diff --git a/indra/newview/skins/default/xui/en/floater_inventory.xml b/indra/newview/skins/default/xui/en/floater_inventory.xml index e187eabd3a..0d381fe5cb 100644 --- a/indra/newview/skins/default/xui/en/floater_inventory.xml +++ b/indra/newview/skins/default/xui/en/floater_inventory.xml @@ -20,11 +20,11 @@ </floater.string> <floater.string name="TitleFetching"> - Inventory (Fetching [ITEM_COUNT] Items...) [FILTER] + MY INVENTORY (Fetching [ITEM_COUNT] Items...) [FILTER] </floater.string> <floater.string name="TitleCompleted"> - Inventory ([ITEM_COUNT] Items) [FILTER] + MY INVENTORY ([ITEM_COUNT] Items) [FILTER] </floater.string> <floater.string name="Fetched"> diff --git a/indra/newview/skins/default/xui/en/floater_postcard.xml b/indra/newview/skins/default/xui/en/floater_postcard.xml index 3a7b6cc832..6f78363b25 100644 --- a/indra/newview/skins/default/xui/en/floater_postcard.xml +++ b/indra/newview/skins/default/xui/en/floater_postcard.xml @@ -128,19 +128,9 @@ width="420"> Type your message here. </text_editor> - <text - type="string" - length="1" - bottom_delta="37" - follows="left|bottom" - layout="topleft" - left="12" - name="fine_print"> - If your recipient joins SL, you'll get a referral bonus. - </text> <button follows="right|bottom" - height="20" + height="23" label="Cancel" layout="topleft" name="cancel_btn" @@ -149,7 +139,7 @@ width="100" /> <button follows="right|bottom" - height="20" + height="23" label="Send" layout="topleft" left_delta="-106" diff --git a/indra/newview/skins/default/xui/en/floater_test_inspectors.xml b/indra/newview/skins/default/xui/en/floater_test_inspectors.xml index 0f5c5f2be0..209285da2e 100644 --- a/indra/newview/skins/default/xui/en/floater_test_inspectors.xml +++ b/indra/newview/skins/default/xui/en/floater_test_inspectors.xml @@ -116,10 +116,10 @@ follows="left|top" font="SansSerif" height="20" - left="0" + left="10" max_length="65536" name="slurl" - top_pad="4" + top_pad="20" width="150"> secondlife:///app/agent/00000000-0000-0000-0000-000000000000/inspect </text> @@ -127,12 +127,11 @@ follows="left|top" font="SansSerif" height="20" - left="0" + left="10" max_length="65536" name="slurl_group" - top_pad="4" + top_pad="20" width="150"> secondlife:///app/group/00000000-0000-0000-0000-000000000000/inspect </text> - </floater> diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 5630dfbe8f..23203d227e 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -67,80 +67,75 @@ </floater.string> <button follows="left|top" - height="20" - image_disabled="Tool_Zoom" - image_disabled_selected="Tool_Zoom" - image_selected="Tool_Zoom_Selected" - image_unselected="Tool_Zoom" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Zoom" + image_selected="PushButton_Selected_Press" layout="topleft" left="10" name="button focus" tool_tip="Focus" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Focus" /> </button> <button follows="left|top" - height="20" - image_disabled="Tool_Grab" - image_disabled_selected="Tool_Grab" - image_selected="Tool_Grab_Selected" - image_unselected="Tool_Grab" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Grab" + image_selected="PushButton_Selected_Press" layout="topleft" - left_pad="20" + left_pad="10" name="button move" tool_tip="Move" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Move" /> </button> <button follows="left|top" - height="20" - image_disabled="Tool_Face" - image_disabled_selected="Tool_Face" - image_selected="Tool_Face_Selected" - image_unselected="Tool_Face" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Face" + image_selected="PushButton_Selected_Press" layout="topleft" - left_pad="20" + left_pad="10" name="button edit" tool_tip="Edit" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Edit" /> </button> <button follows="left|top" - height="20" - image_disabled="Tool_Create" - image_disabled_selected="Tool_Create" - image_selected="Tool_Create_Selected" - image_unselected="Tool_Create" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Create" + image_selected="PushButton_Selected_Press" layout="topleft" - left_pad="20" + left_pad="10" name="button create" tool_tip="Create" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Create" /> </button> <button follows="left|top" - height="20" - image_disabled="Tool_Dozer" - image_disabled_selected="Tool_Dozer" - image_selected="Tool_Dozer_Selected" - image_unselected="Tool_Dozer" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Dozer" + image_selected="PushButton_Selected_Press" layout="topleft" - left_pad="20" + left_pad="10" name="button land" tool_tip="Land" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Land" /> @@ -1043,7 +1038,7 @@ even though the user gets a free copy. <check_box height="15" width="110" - top_pad="3" + top_pad="5" label="Show in search" layout="topleft" left="100" diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml index 34d4b19410..86ac7c8e54 100644 --- a/indra/newview/skins/default/xui/en/floater_world_map.xml +++ b/indra/newview/skins/default/xui/en/floater_world_map.xml @@ -279,12 +279,12 @@ <icon follows="top|right" height="16" - image_name="map_event.tga" + image_name="Parcel_PG_Dark" layout="topleft" mouse_opaque="true" name="event" left_pad="0" - width="16" /> + width="18" /> <text type="string" length="1" @@ -312,13 +312,13 @@ <icon follows="top|right" height="16" - image_name="map_event_mature.tga" + image_name="Parcel_M_Dark" layout="topleft" mouse_opaque="true" name="events_mature_icon" top_delta="0" left_pad="0" - width="16" /> + width="18" /> <text type="string" length="1" @@ -345,13 +345,13 @@ <icon follows="top|right" height="16" - image_name="map_event_adult.tga" + image_name="Parcel_R_Dark" layout="topleft" left_pad="0" mouse_opaque="true" name="events_adult_icon" top_delta="0" - width="16" /> + width="18" /> <text type="string" length="1" diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml index 5a9509e284..d66818e91a 100644 --- a/indra/newview/skins/default/xui/en/menu_object.xml +++ b/indra/newview/skins/default/xui/en/menu_object.xml @@ -87,16 +87,6 @@ label="Remove ▶" name="Remove"> <menu_item_call - enabled="false" - label="Take" - name="Pie Object Take"> - <menu_item_call.on_click - function="Tools.BuyOrTake" /> - <menu_item_call.on_enable - function="Tools.EnableBuyOrTake" - parameter="Buy,Take" /> - </menu_item_call> - <menu_item_call enabled="false" label="Report Abuse" name="Report Abuse..."> @@ -134,6 +124,16 @@ </menu_item_call> </context_menu> <menu_item_separator layout="topleft" /> + <menu_item_call + enabled="false" + label="Take" + name="Pie Object Take"> + <menu_item_call.on_click + function="Tools.BuyOrTake" /> + <menu_item_call.on_enable + function="Tools.EnableBuyOrTake" + parameter="Buy,Take" /> + </menu_item_call> <menu_item_call enabled="false" label="Take Copy" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 22f4d277a4..df6c7bd9cb 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1594,6 +1594,17 @@ name="Shortcuts" tear_off="true" visible="false"> + <menu_item_call + label="Image (L$[COST])..." + layout="topleft" + name="Upload Image" + shortcut="control|U"> + <menu_item_call.on_click + function="File.UploadImage" + parameter="" /> + <menu_item_call.on_enable + function="File.EnableUpload" /> + </menu_item_call> <menu_item_check label="Search" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 72ac457882..51f0f6839c 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -1733,21 +1733,6 @@ Try selecting a single parcel. <notification icon="alertmodal.tga" - name="ParcelCanPlayMedia" - type="alertmodal"> -This location can play streaming media. -Streaming media requires a fast Internet connection. - -Play streaming media when available? -(You can change this option later under Preferences > Privacy.) - <usetemplate - name="okcancelbuttons" - notext="Disable" - yestext="Play Media"/> - </notification> - - <notification - icon="alertmodal.tga" name="CannotDeedLandWaitingForServer" type="alertmodal"> Unable to deed land: @@ -4322,14 +4307,14 @@ Topic: [SUBJECT], Message: [MESSAGE] icon="notifytip.tga" name="FriendOnline" type="notifytip"> -[FIRST] [LAST] is Online +[NAME_SLURL] is Online </notification> <notification icon="notifytip.tga" name="FriendOffline" type="notifytip"> -[FIRST] [LAST] is Offline +[NAME_SLURL] is Offline </notification> <notification diff --git a/indra/newview/skins/default/xui/en/panel_active_object_row.xml b/indra/newview/skins/default/xui/en/panel_active_object_row.xml index 7657fb8055..bef5f8dafd 100644 --- a/indra/newview/skins/default/xui/en/panel_active_object_row.xml +++ b/indra/newview/skins/default/xui/en/panel_active_object_row.xml @@ -10,10 +10,6 @@ background_opaque="false" background_visible="true" bg_alpha_color="0.0 0.0 0.0 0.0" > - <string - name="unknown_obj"> - Unknown Object - </string> <chiclet_script name="object_chiclet" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index aad55685d2..0755813389 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -247,7 +247,7 @@ <layout_panel mouse_opaque="false" follows="left|right" - height="29" + height="30" layout="topleft" top="0" name="chiclet_list_panel" @@ -260,12 +260,12 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly. <chiclet_panel mouse_opaque="false" follows="left|right" - height="23" + height="24" layout="topleft" left="1" min_width="110" name="chiclet_list" - top="8" + top="7" chiclet_padding="4" scrolling_offset="40" width="189"> diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml index 31719aad20..34c1923582 100644 --- a/indra/newview/skins/default/xui/en/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml @@ -29,7 +29,7 @@ layout="topleft" name="back_btn" picture_style="true" - left="10" + left="11" tab_stop="false" top="2" width="23" /> @@ -40,7 +40,7 @@ layout="topleft" left_pad="10" name="title" - text_color="white" + text_color="LtGray" top="0" value="Classified Info" use_ellipses="true" @@ -49,13 +49,13 @@ color="DkGray2" opaque="true" follows="all" - height="500" + height="502" layout="topleft" - left="10" + left="9" top_pad="10" name="profile_scroll" reserve_scroll_corner="false" - width="313"> + width="310"> <panel name="scroll_content_panel" follows="left|top" @@ -65,16 +65,16 @@ background_visible="false" height="500" left="0" - width="295"> + width="285"> <texture_picker enabled="false" - follows="left|top" + follows="left|top|right" height="197" layout="topleft" - left="10" + left="11" name="classified_snapshot" - top="20" - width="290" /> + top="10" + width="286" /> <text_editor allow_scroll="false" bg_visible="false" @@ -181,37 +181,35 @@ </scroll_container> <panel follows="left|right|bottom" - height="20" + height="35" layout="topleft" - top_pad="8" - left="10" + top_pad="5" + left="9" name="buttons"> <button follows="bottom|left" - height="19" + height="23" label="Teleport" layout="topleft" left="0" name="teleport_btn" top="0" - width="90" /> + width="101" /> <button follows="bottom|left" - height="19" + height="23" label="Map" layout="topleft" - left_pad="10" + left_pad="3" name="show_on_map_btn" - top="0" - width="90" /> + width="100" /> <button follows="bottom|left" - height="19" + height="23" label="Edit" layout="topleft" - right="-1" name="edit_btn" - top="0" - width="90" /> + left_pad="3" + width="101" /> </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml b/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml index 9518151b72..1375eb87d9 100644 --- a/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml +++ b/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml @@ -76,6 +76,6 @@ left_pad="5" right="-8" name="info_chevron" - top_delta="15" + top_delta="24" width="20" /> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml index 188ded3dab..a357ba1d97 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml @@ -23,7 +23,7 @@ layout="topleft" name="back_btn" picture_style="true" - left="10" + left="11" tab_stop="false" top="2" width="23" /> @@ -31,27 +31,27 @@ type="string" length="1" follows="top" - font="SansSerifHuge" - height="15" + font="SansSerifHugeBold" + height="26" layout="topleft" left_pad="10" name="title" - text_color="white" - top="5" + text_color="LtGray" + top="0" width="250"> Edit Classified </text> <scroll_container color="DkGray2" follows="all" - height="510" + height="502" layout="topleft" - left="10" + left="9" top_pad="10" name="profile_scroll" reserve_scroll_corner="false" opaque="true" - width="313"> + width="310"> <panel name="scroll_content_panel" follows="left|top" @@ -65,10 +65,10 @@ <texture_picker follows="left|top|right" height="197" - width="290" + width="286" layout="topleft" - top="20" - left="10" + top="10" + left="11" name="classified_snapshot" /> <icon height="18" @@ -78,7 +78,7 @@ name="edit_icon" label="" tool_tip="Click to select an image" - top="27" + top="17" width="18" /> <text type="string" @@ -165,29 +165,29 @@ </text> <button follows="left|top" - height="20" + height="23" label="Set to Current Location" layout="topleft" - left="8" + left="10" top_pad="5" name="set_to_curr_location_btn" - width="200" /> + width="156" /> <combo_box follows="left|top" - height="18" + height="23" label="" left="10" name="category" top_pad="5" - width="200" /> + width="156" /> <combo_box allow_text_entry="false" follows="left|top" - height="18" + height="23" left="10" name="content_type" top_pad="5" - width="200"> + width="156"> <combo_item name="mature_ci" value="Mature"> @@ -203,10 +203,11 @@ decimal_digits="0" follows="left|top" halign="left" - height="16" + height="23" increment="1" label_width="20" label="L$" + v_pad="10" layout="topleft" left="10" value="50" @@ -228,30 +229,29 @@ </scroll_container> <panel follows="left|right|bottom" - height="20" + height="23" label="bottom_panel" layout="topleft" - left="10" + left="9" name="bottom_panel" top_pad="5" width="303"> <button follows="bottom|left" - height="19" + height="23" label="Save" layout="topleft" name="save_changes_btn" left="0" top="0" - width="130" /> + width="152" /> <button follows="bottom|left" - height="19" + height="23" label="Cancel" layout="topleft" name="cancel_btn" - left_pad="5" - right="-1" - width="130" /> + left_pad="3" + width="152" /> </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml index 8e39697a16..6ef762dc1d 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml @@ -18,7 +18,7 @@ image_overlay="BackArrow_Off" layout="topleft" name="back_btn" - left="10" + left="11" tab_stop="false" top="2" width="23" /> @@ -26,26 +26,26 @@ type="string" length="1" follows="top" - font="SansSerifHuge" - height="15" + font="SansSerifHugeBold" + height="26" layout="topleft" left_pad="10" name="title" - text_color="white" - top="5" + text_color="LtGray" + top="0" width="250"> Edit Pick </text> <scroll_container color="DkGray2" follows="all" - height="500" + height="502" layout="topleft" - left="10" + left="9" top_pad="10" name="profile_scroll" opaque="true" - width="313"> + width="310"> <panel name="scroll_content_panel" follows="left|top|right" @@ -59,11 +59,11 @@ <texture_picker follows="left|top|right" height="197" - width="280" + width="272" layout="topleft" no_commit_on_selection="true" - top="20" - left="10" + top="10" + left="11" name="pick_snapshot" /> <icon height="18" @@ -73,7 +73,7 @@ name="edit_icon" label="" tool_tip="Click to select an image" - top="27" + top="17" width="18" /> <text type="string" @@ -100,7 +100,7 @@ max_length="63" name="pick_name" text_color="black" - width="280" /> + width="273" /> <text type="string" length="1" @@ -119,7 +119,7 @@ <text_editor follows="left|top|right" height="100" - width="280" + width="273" hide_scrollbar="false" layout="topleft" left="10" @@ -158,41 +158,40 @@ </text> <button follows="left|top" - height="20" + height="23" label="Set to Current Location" layout="topleft" left="8" top_pad="0" name="set_to_curr_location_btn" - width="200" /> + width="156" /> </panel> </scroll_container> <panel follows="left|right|bottom" - height="20" + height="23" label="bottom_panel" layout="topleft" - left="10" + left="9" name="bottom_panel" top_pad="5" width="303"> <button follows="bottom|left" - height="19" + height="23" label="Save [WHAT]" layout="topleft" name="save_changes_btn" left="0" top="0" - width="130" /> + width="152" /> <button follows="bottom|left" - height="19" + height="23" label="Cancel" layout="topleft" name="cancel_btn" - left_pad="5" - right="-1" - width="130" /> + left_pad="3" + width="152" /> </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml index 618167181f..662fd1ae73 100644 --- a/indra/newview/skins/default/xui/en/panel_group_general.xml +++ b/indra/newview/skins/default/xui/en/panel_group_general.xml @@ -20,15 +20,84 @@ Hover your mouse over the options for more help. name="incomplete_member_data_str"> Retrieving member data </panel.string> + <panel + name="group_info_top" + follows="top|left" + top="0" + left="0" + height="129" + width="313" + layout="topleft"> + <texture_picker + follows="left|top" + height="110" + label="" + layout="topleft" + left="10" + name="insignia" + no_commit_on_selection="true" + tool_tip="Click to choose a picture" + top="5" + width="100" /> + <text + font="SansSerifSmall" + text_color="White_50" + width="190" + follows="top|left" + layout="topleft" + mouse_opaque="false" + type="string" + height="16" + length="1" + left_pad="10" + name="prepend_founded_by" + top_delta="0"> + Founder: + </text> + <name_box + follows="left|top" + height="16" + initial_value="(retrieving)" + layout="topleft" + left_delta="0" + link="true" + name="founder_name" + top_pad="2" + use_ellipses="true" + width="190" /> + <text + font="SansSerifMedium" + text_color="EmphasisColor" + type="string" + follows="left|top" + height="16" + layout="topleft" + left_delta="0" + name="join_cost_text" + top_pad="10" + visible="true" + width="190"> + Free + </text> + <button + follows="left|top" + left_delta="0" + top_pad="6" + height="23" + label="JOIN NOW!" + name="btn_join" + visible="true" + width="120" /> + </panel> <text_editor type="string" follows="left|top|right" left="5" - height="150" + height="80" layout="topleft" max_length="511" name="charter" - top="5" + top="105" right="-1" bg_readonly_color="DkGray2" text_readonly_color="White" @@ -40,7 +109,7 @@ Hover your mouse over the options for more help. draw_heading="true" follows="left|top|right" heading_height="23" - height="200" + height="160" layout="topleft" left="0" name="visible_members" 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 9727c54c6b..375de64923 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 @@ -31,7 +31,7 @@ background_visible="true" follows="top|left" top="0" left="0" - height="129" + height="29" width="313" layout="topleft"> <button @@ -70,66 +70,6 @@ background_visible="true" width="270" height="20" visible="false" /> - <texture_picker - follows="left|top" - height="113" - label="" - layout="topleft" - left="10" - name="insignia" - no_commit_on_selection="true" - tool_tip="Click to choose a picture" - top_pad="5" - width="100" /> - <text - font="SansSerifSmall" - text_color="White_50" - width="190" - follows="top|left" - layout="topleft" - mouse_opaque="false" - type="string" - height="16" - length="1" - left_pad="10" - name="prepend_founded_by" - top_delta="0"> - Founder: - </text> - <name_box - follows="left|top" - height="16" - initial_value="(retrieving)" - layout="topleft" - left_delta="0" - link="true" - name="founder_name" - top_pad="2" - use_ellipses="true" - width="190" /> - <text - font="SansSerifMedium" - text_color="EmphasisColor" - type="string" - follows="left|top" - height="16" - layout="topleft" - left_delta="0" - name="join_cost_text" - top_pad="10" - visible="true" - width="190"> - Free - </text> - <button - follows="left|top" - left_delta="0" - top_pad="6" - height="23" - label="JOIN NOW!" - name="btn_join" - visible="true" - width="120" /> </panel> <layout_stack name="layout" @@ -137,7 +77,7 @@ background_visible="true" follows="all" left="0" top_pad="0" - height="437" + height="537" width="313" border_size="0"> <layout_panel diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml index 5f46ad7860..1f16aea2ef 100644 --- a/indra/newview/skins/default/xui/en/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml @@ -159,6 +159,7 @@ Maximum 200 per group daily left_pad="3" max_length="511" name="create_message" + text_type="ascii" top_delta="0" width="220" word_wrap="true" /> diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml index d1b22a34bb..6927906d3d 100644 --- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml @@ -269,6 +269,7 @@ name="notes_editor" read_only="true" text_readonly_color="white" + text_type="ascii" top_pad="5" width="290" wrap="true" /> diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index 447ac1b123..31ea54cf40 100644 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -237,7 +237,7 @@ If you're looking for people to hang out with, [secondlife:///app/worldmap try t left="0" name="group_list" no_filtered_groups_msg="No groups" - no_groups_msg="[secondlife:///app/search/groups Trying searching for some groups to join.]" + no_groups_msg="[secondlife:///app/search/groups Try searching for some groups to join.]" top="0" width="313" /> <panel diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml index 375f369ba7..097813131f 100644 --- a/indra/newview/skins/default/xui/en/panel_pick_info.xml +++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml @@ -16,7 +16,7 @@ image_overlay="BackArrow_Off" layout="topleft" name="back_btn" - left="10" + left="11" tab_stop="false" top="2" width="23" /> @@ -27,7 +27,7 @@ layout="topleft" left_pad="10" name="title" - text_color="white" + text_color="LtGray" top="0" value="Pick Info" use_ellipses="true" @@ -36,12 +36,12 @@ color="DkGray2" opaque="true" follows="all" - height="500" + height="502" layout="topleft" - left="10" - top_pad="5" + left="9" + top_pad="10" name="profile_scroll" - width="313"> + width="310"> <panel name="scroll_content_panel" follows="left|top|right" @@ -57,10 +57,10 @@ follows="left|top|right" height="197" layout="topleft" - left="10" + left="11" name="pick_snapshot" - top="20" - width="280" /> + top="10" + width="272" /> <text_editor allow_scroll="false" bg_visible="false" @@ -115,8 +115,8 @@ follows="left|right|bottom" height="35" layout="topleft" - top_pad="8" - left="10" + top_pad="5" + left="9" name="buttons"> <button follows="bottom|left" @@ -126,24 +126,22 @@ left="0" name="teleport_btn" top="0" - width="90" /> + width="101" /> <button follows="bottom|left" height="23" label="Map" layout="topleft" - left_pad="10" + left_pad="3" name="show_on_map_btn" - top="0" - width="90" /> + width="100" /> <button follows="bottom|left" height="23" label="Edit" layout="topleft" - right="-1" name="edit_btn" - top="0" - width="90" /> + left_pad="3" + width="101" /> </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_pick_list_item.xml b/indra/newview/skins/default/xui/en/panel_pick_list_item.xml index 9bcce1685e..8b25fb5d2a 100644 --- a/indra/newview/skins/default/xui/en/panel_pick_list_item.xml +++ b/indra/newview/skins/default/xui/en/panel_pick_list_item.xml @@ -76,6 +76,6 @@ left_pad="5" right="-8" name="info_chevron" - top_delta="15" + top_delta="24" width="20" /> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml index d31f4d039f..887a89d518 100644 --- a/indra/newview/skins/default/xui/en/panel_picks.xml +++ b/indra/newview/skins/default/xui/en/panel_picks.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel +bg_opaque_color="DkGray2" + background_visible="true" + background_opaque="true" follows="all" height="540" label="Picks" @@ -70,13 +73,15 @@ </accordion_tab> </accordion> <panel - background_visible="true" +bg_opaque_color="DkGray2" + background_visible="true" + background_opaque="true" bevel_style="none" enabled="false" auto_resize="false" follows="bottom" - left="0" - height="18" + left="1" + height="27" label="bottom_panel" layout="topleft" name="edit_panel" @@ -90,9 +95,9 @@ image_unselected="OptionsMenu_Off" image_disabled="OptionsMenu_Disabled" layout="topleft" - left="0" + left="10" name="gear_menu_btn" - top="5" + top="9" width="18" /> <button follows="bottom|left" @@ -104,7 +109,7 @@ left_pad="15" name="new_btn" tool_tip="Create a new pick or classified at the current location" - top="5" + top="9" width="18" /> <button follows="bottom|right" @@ -115,14 +120,17 @@ layout="topleft" name="trash_btn" right="-10" - top="5" + top="9" width="18" /> </panel> <panel + bg_opaque_color="DkGray" + background_visible="true" + background_opaque="true" layout="topleft" left="0" height="30" - top_pad="10" + top_pad="7" name="buttons_cucks" width="313"> <button @@ -131,35 +139,33 @@ height="23" label="Info" layout="topleft" - left="5" + left="2" name="info_btn" tab_stop="false" tool_tip="Show pick information" - top="0" - width="55" /> + top="5" + width="95" /> <button enabled="false" follows="bottom|left" height="23" label="Teleport" layout="topleft" - left_pad="5" + left_pad="3" name="teleport_btn" tab_stop="false" tool_tip="Teleport to the corresponding area" - top="0" - width="77" /> + width="117" /> <button enabled="false" follows="bottom|left" height="23" label="Map" layout="topleft" - left_pad="5" + left_pad="3" name="show_on_map_btn" tab_stop="false" tool_tip="Show the corresponding area on the World Map" - top="0" - width="50" /> + width="90" /> </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml index 8bff865eb1..ae5e6fbbfa 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml @@ -38,7 +38,7 @@ image_unselected="Audio_Off" is_toggle="true" layout="topleft" - left_pad="10" + left_pad="16" name="mute_audio" tab_stop="false" width="16" /> @@ -82,7 +82,7 @@ image_unselected="Audio_Off" is_toggle="true" layout="topleft" - left_pad="10" + left_pad="16" name="mute_audio" tab_stop="false" width="16" /> @@ -116,7 +116,7 @@ image_unselected="Audio_Off" is_toggle="true" layout="topleft" - left_pad="10" + left_pad="16" name="mute_audio" tab_stop="false" width="16" /> @@ -150,7 +150,7 @@ image_unselected="Audio_Off" is_toggle="true" layout="topleft" - left_pad="10" + left_pad="16" name="mute_audio" tab_stop="false" width="16" /> @@ -184,7 +184,7 @@ image_unselected="Audio_Off" is_toggle="true" layout="topleft" - left_pad="10" + left_pad="16" name="mute_audio" tab_stop="false" width="16" /> @@ -218,7 +218,7 @@ image_unselected="Audio_Off" is_toggle="true" layout="topleft" - left_pad="10" + left_pad="16" name="mute_audio" tab_stop="false" width="16" /> @@ -267,7 +267,7 @@ image_unselected="Audio_Off" is_toggle="true" layout="topleft" - left_pad="10" + left_pad="16" name="mute_audio" tab_stop="false" width="16" /> diff --git a/indra/newview/skins/default/xui/en/widgets/button.xml b/indra/newview/skins/default/xui/en/widgets/button.xml index 74d8478551..1b34a731a5 100644 --- a/indra/newview/skins/default/xui/en/widgets/button.xml +++ b/indra/newview/skins/default/xui/en/widgets/button.xml @@ -7,10 +7,9 @@ image_selected="PushButton_Selected" image_disabled_selected="PushButton_Selected_Disabled" image_disabled="PushButton_Disabled" - image_left_pad="0" - image_right_pad="0" image_top_pad="0" image_bottom_pad="0" + imgoverlay_label_space="1" label_color="ButtonLabelColor" label_color_selected="ButtonLabelSelectedColor" label_color_disabled="ButtonLabelDisabledColor" diff --git a/indra/newview/skins/default/xui/en/widgets/inspector.xml b/indra/newview/skins/default/xui/en/widgets/inspector.xml index 23f32253b6..428b2ce03b 100644 --- a/indra/newview/skins/default/xui/en/widgets/inspector.xml +++ b/indra/newview/skins/default/xui/en/widgets/inspector.xml @@ -2,7 +2,7 @@ <inspector name="inspector" bg_opaque_color="DkGray_66" background_visible="true" - bg_opaque_image="none" + bg_opaque_image="Inspector_Hover" background_opaque="true" bg_alpha_image="none" mouse_opaque="true" diff --git a/indra/newview/skins/default/xui/fr/floater_about.xml b/indra/newview/skins/default/xui/fr/floater_about.xml index 7d6d736c5e..440412c0c0 100644 --- a/indra/newview/skins/default/xui/fr/floater_about.xml +++ b/indra/newview/skins/default/xui/fr/floater_about.xml @@ -49,19 +49,20 @@ Version Vivox : [VIVOX_VERSION] - Pour réussir dans les affaires, soyez audacieux, créatif et différent. - Henry Marchant +Pour réussir dans les affaires, soyez audacieux, créatif et différent. - Henry Marchant </text_editor> </panel> <panel label="Licences" name="licenses_panel"> <text_editor name="credits_editor"> - 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion + 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion APR Copyright (C) 2000-2004 The Apache Software Foundation cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). GL Copyright (C) 1999-2004 Brian Paul. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. - jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) + jpeg2000 Copyright (C) 2001, David Taubman, The University of New South + Wales (UNSW) jpeglib Copyright (C) 1991-1998, Thomas G. Lane. ogg/vorbis Copyright (C) 2001, Xiphophorus OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. @@ -73,7 +74,8 @@ Version Vivox : [VIVOX_VERSION] Tous droits réservés. Voir licenses.txt pour plus de détails. - Codage Audio du chat vocal : Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) + Codage Audio du chat vocal : Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 + Annex C) </text_editor> </panel> </tab_container> 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 4c97551e55..8e2b27aca6 100644 --- a/indra/newview/skins/default/xui/fr/floater_about_land.xml +++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml @@ -12,7 +12,7 @@ <floater.string name="Remaining"> restantes </floater.string> - <tab_container name="landtab"> + <tab_container name="landtab" tab_min_width="60"> <panel label="GÉNÉRAL" name="land_general_panel"> <panel.string name="new users only"> Nouveaux utilisateurs uniquement @@ -128,10 +128,10 @@ <text name="DwellText"> 0 </text> - <button label="Acheter du terrain" label_selected="Acheter le terrain..." left="130" name="Buy Land..." width="125"/> - <button label="Infos sur les scripts" name="Scripts..."/> + <button label="Acheter du terrain" label_selected="Acheter le terrain..." left_delta="60" name="Buy Land..." width="125"/> + <button label="Infos sur les scripts" name="Scripts..." width="110"/> <button label="Acheter pour le groupe" label_selected="Acheter pour le groupe..." name="Buy For Group..."/> - <button label="Acheter un pass" label_selected="Acheter un pass..." left="130" name="Buy Pass..." tool_tip="Un pass vous donne un accès temporaire à ce terrain." width="125"/> + <button label="Acheter un pass" label_selected="Acheter un pass..." left_delta="-127" name="Buy Pass..." tool_tip="Un pass vous donne un accès temporaire à ce terrain." width="125"/> <button label="Abandonner le terrain" label_selected="Abandonner le terrain..." name="Abandon Land..."/> <button label="Récupérer le terrain" label_selected="Redemander le terrain…" name="Reclaim Land..."/> <button label="Vente Linden" label_selected="Vente Linden..." name="Linden Sale..." tool_tip="Le terrain doit être la propriété d'un résident, avoir un contenu défini et ne pas être aux enchères."/> @@ -252,13 +252,13 @@ ou divisé. </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="193"> + <text left="14" name="Selected / sat upon:" width="220"> Sélectionnées/où quelqu'un est assis : </text> - <text left="214" name="selected_objects_text" width="48"> + <text left_delta="214" name="selected_objects_text" width="48"> [COUNT] </text> - <text left="4" name="Autoreturn" width="412"> + <text left="4" name="Autoreturn" width="440"> Renvoi automatique des objets d'autres résidents (minutes, 0 pour désactiver) : </text> <line_editor name="clean other time" right="-6" width="36"/> @@ -270,9 +270,9 @@ ou divisé. <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"/> - <name_list.columns label="Nombre" name="count"/> - <name_list.columns label="Plus récents" name="mostrecent"/> + <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> </panel> <panel label="OPTIONS" name="land_options_panel"> @@ -317,7 +317,7 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche. </text> <check_box label="Tous" left="285" name="edit objects check"/> <check_box label="Groupe" left="395" name="edit group objects check"/> - <text left="152" name="allow_label3" width="134"> + <text left="152" name="allow_label3" width="150"> Laisser entrer des objets : </text> <check_box label="Tous" left="285" name="all object entry check"/> @@ -402,7 +402,8 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche. </text> <line_editor left="97" name="url_description" tool_tip="Texte affiché à côté du bouton Jouer/Charger"/> <text name="Media texture:"> - Remplacer la texture : + Remplacer la +texture : </text> <texture_picker label="" left="97" name="media texture" tool_tip="Cliquez pour sélectionner une image"/> <text name="replace_texture_help"> @@ -423,8 +424,9 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche. <check_box label="En boucle" name="media_loop" tool_tip="Jouer le média en boucle. Lorsque le média aura fini de jouer, il recommencera."/> </panel> <panel label="SON" name="land_audio_panel"> - <text name="MusicURL:"> - URL de la musique : + <text name="MusicURL:" bottom_delta="-28" > + URL de la +musique : </text> <text name="Sound:"> Son : @@ -455,7 +457,7 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche. <check_box label="Vérification de l'âge [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Bannir les résidents qui n'ont pas vérifié leur âge. Consultez la page [SUPPORT_SITE] pour plus d'informations."/> <check_box label="Autoriser l'accès au groupe : [GROUP]" name="GroupCheck" tool_tip="Définir le groupe à l'onglet Général."/> <check_box label="Vendre des pass à :" name="PassCheck" tool_tip="Autoriser un accès temporaire à cette parcelle"/> - <combo_box name="pass_combo"> + <combo_box name="pass_combo" width="110"> <combo_box.item label="Tout le monde" name="Anyone"/> <combo_box.item label="Groupe" name="Group"/> </combo_box> diff --git a/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml b/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml index e784bda2e5..65bb683e4c 100644 --- a/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml @@ -20,7 +20,7 @@ </string> <tab_container name="ResidentChooserTabs"> <panel label="Rechercher" name="SearchPanel"> - <text name="InstructSearchResidentName"> + <text name="InstructSearchResidentName" width="240"> Saisissez une partie du nom du résident : </text> <button label="OK" label_selected="OK" name="Find"/> diff --git a/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml b/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml index 313c9496a2..983efcdc47 100644 --- a/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml @@ -23,8 +23,8 @@ <texture_picker label="Œil" name="eyes_iris"/> <texture_picker label="Alpha yeux" name="eyes_alpha"/> <texture_picker label="Haut du corps" name="upper-baked"/> - <texture_picker label="Peinture corporelle haut" name="upper_bodypaint"/> - <texture_picker label="Sous-vêtements (homme)" name="upper_undershirt"/> + <texture_picker label="Peinture corporelle haut" name="upper_bodypaint"/> + <texture_picker label="Sous-vêtements (homme)" name="upper_undershirt"/> <texture_picker label="Gants" name="upper_gloves"/> <texture_picker label="Chemise" name="upper_shirt"/> <texture_picker label="Veste (haut)" name="upper_jacket"/> @@ -32,7 +32,7 @@ <texture_picker label="Tatouage haut" name="upper_tattoo"/> <texture_picker label="Bas du corps" name="lower-baked"/> <texture_picker label="Peinture corporelle bas" name="lower_bodypaint"/> - <texture_picker label="Sous-vêtements (femme)" name="lower_underpants"/> + <texture_picker label="Sous-vêtements (femme)" name="lower_underpants"/> <texture_picker label="Chaussettes" name="lower_socks"/> <texture_picker label="Chaussures" name="lower_shoes"/> <texture_picker label="Pantalon" name="lower_pants"/> diff --git a/indra/newview/skins/default/xui/fr/floater_buy_currency.xml b/indra/newview/skins/default/xui/fr/floater_buy_currency.xml index 5ea36d8505..c7437c4603 100644 --- a/indra/newview/skins/default/xui/fr/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/fr/floater_buy_currency.xml @@ -7,7 +7,8 @@ Vous avez besoin de plus de L$ </text> <text name="contacting"> - En train de contacter le Lindex... + En train de contacter +le Lindex... </text> <text left="5" name="info_buying"> Acheter des L$ @@ -59,7 +60,7 @@ </text> <button label="Acheter" name="buy_btn"/> <button label="Annuler" name="cancel_btn"/> - <text left="5" name="info_cannot_buy" right="-5"> + <text left="5" name="info_cannot_buy" width="200" right="-5"> Achat impossible </text> <button label="Accéder au Web" name="error_web"/> diff --git a/indra/newview/skins/default/xui/fr/floater_buy_land.xml b/indra/newview/skins/default/xui/fr/floater_buy_land.xml index 1d7eeca3c4..f5cf871844 100644 --- a/indra/newview/skins/default/xui/fr/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/fr/floater_buy_land.xml @@ -37,10 +37,10 @@ Vous devez accepter le règlement du domaine : </text> <text left="470" name="covenant_timestamp_text"/> - <text_editor name="covenant_editor"> + <text_editor name="covenant_editor" left="510"> Chargement... </text_editor> - <check_box label="J'accepte le règlement ci-dessus." name="agree_covenant"/> + <check_box label="J'accepte le règlement ci-dessus." name="agree_covenant" left="510"/> <text name="info_parcel_label"> Parcelle : </text> @@ -79,9 +79,20 @@ vendu avec objets <combo_box.item label="7,50 US$/mois, facturation trimestrielle" name="US$7.50/month,billedquarterly"/> <combo_box.item label="6,00 US$/mois, facturation annuelle" name="US$6.00/month,billedannually"/> </combo_box> - <text name="land_use_action"> - Augmentez vos frais d'occupation de terrain à 40 US$/mois. - </text> + <text + type="string" + length="1" + follows="top|left" + font="SansSerifBig" + height="16" + layout="topleft" + left="72" + name="land_use_action" + right="500" + top="284" + width="400"> + Augmentez vos frais d'occupation de terrain à 40 US$/mois. + </text> <text name="land_use_reason"> Vous détenez 1 309 m² de terrain. Cette parcelle fait 512 m². diff --git a/indra/newview/skins/default/xui/fr/floater_color_picker.xml b/indra/newview/skins/default/xui/fr/floater_color_picker.xml index c509a4783e..8d7fe76b35 100644 --- a/indra/newview/skins/default/xui/fr/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/fr/floater_color_picker.xml @@ -25,7 +25,7 @@ <text left="8" name="Current color:"> Couleur actuelle : </text> - <text left="8" name="(Drag below to save.)" width="114"> + <text left="8" name="(Drag below to save.)" width="220"> (Faire glisser dessous pour enregistrer.) </text> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml index 0b36b7b8ca..15cc6cd1ba 100644 --- a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml @@ -59,14 +59,14 @@ </text> <button label="Ajouter clé" label_selected="Ajouter clé" name="WLAddKey" width="89" bottom="-45" /> <button label="Supprimer clé" label_selected="Supprimer clé" name="WLDeleteKey" width="89" bottom="-70" /> - <text name="WLCurKeyFrameText"> + <text name="WLCurKeyFrameText" width="170"> Réglages des images-clés : </text> - <text name="WLCurKeyTimeText"> + <text name="WLCurKeyTimeText" width="170"> Heure de la clé : </text> - <spinner label="Heure" name="WLCurKeyHour" /> - <spinner label="Min" name="WLCurKeyMin" /> + <spinner label="Heure" name="WLCurKeyHour" label_width="80" width="74"/> + <spinner label="Min" name="WLCurKeyMin" label_width="80"/> <text name="WLCurKeyTimeText2"> Préréglages clés : </text> @@ -78,13 +78,13 @@ <text name="DayCycleText2"> Durée du cycle : </text> - <spinner label="Heure" name="WLLengthOfDayHour" /> + <spinner label="Heure" name="WLLengthOfDayHour" label_width="80" width="74" /> <spinner label="Min" name="WLLengthOfDayMin" /> - <spinner label="S" name="WLLengthOfDaySec" label_width="10" width="50" left_delta="75"/> - <text name="DayCycleText3"> + <spinner label="S" name="WLLengthOfDaySec" label_width="10" width="50" left_delta="95"/> + <text name="DayCycleText3" left="280" width="200"> Prévisualiser : </text> - <button label="Jouer" label_selected="Jouer" name="WLAnimSky" /> + <button label="Jouer" label_selected="Jouer" name="WLAnimSky" left_delta="90"/> <button label="Stop !" label_selected="Stop" name="WLStopAnimSky" /> <button label="Utiliser heure domaine" label_selected="Aller heure domaine" name="WLUseLindenTime" /> diff --git a/indra/newview/skins/default/xui/fr/floater_env_settings.xml b/indra/newview/skins/default/xui/fr/floater_env_settings.xml index 505c9236c7..dd714e85b6 100644 --- a/indra/newview/skins/default/xui/fr/floater_env_settings.xml +++ b/indra/newview/skins/default/xui/fr/floater_env_settings.xml @@ -3,7 +3,7 @@ <floater.string name="timeStr"> [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] </floater.string> - <text bottom="-45" name="EnvTimeText"> + <text bottom="-45" name="EnvTimeText" top="29"> Heure de la journée </text> @@ -14,7 +14,7 @@ journée Couverture nuageuse </text> - <text bottom="-45" name="EnvWaterColorText"> + <text bottom="-45" name="EnvWaterColorText" top="29"> Couleur de l'eau </text> @@ -23,7 +23,7 @@ l'eau Brouillard dans l'eau </text> - <button bottom="-144" label="Utiliser heure du domaine" name="EnvUseEstateTimeButton" width="145"/> + <button bottom="-144" label="Utiliser heure du domaine" name="EnvUseEstateTimeButton" width="152"/> <button label="Ciel avancé" left="162" name="EnvAdvancedSkyButton" width="145"/> <button label="Eau avancée" left="316" name="EnvAdvancedWaterButton" width="145"/> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_god_tools.xml b/indra/newview/skins/default/xui/fr/floater_god_tools.xml index 0dedf499bb..187814eba2 100644 --- a/indra/newview/skins/default/xui/fr/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/fr/floater_god_tools.xml @@ -12,7 +12,7 @@ <line_editor left="85" name="region name" width="198"/> <check_box label="Initiation" name="check prelude" tool_tip="Définir cette région comme zone d'initiation."/> <check_box label="Soleil fixe" name="check fixed sun" tool_tip="Définir la position du soleil (comme dans Région et Domaine > Terrain.)"/> - <check_box height="32" label="Réinitialiser le domicile à la téléportation" name="check reset home" tool_tip="Quand les résidents s'en vont par téléportation, réinitialisez leur domicile sur l'emplacement de destination."/> + <check_box height="32" label="Réinitialiser le domicile à la téléportation" name="check reset home" tool_tip="Quand les résidents s'en vont par téléportation, réinitialisez leur domicile sur l'emplacement de destination."/> <check_box bottom_delta="-32" label="Visible" name="check visible" tool_tip="Cochez pour rendre la région visible aux non-admins."/> <check_box label="Dégâts" name="check damage" tool_tip="Cochez pour activer les dégâts dans cette région."/> <check_box label="Bloquer le suivi de trafic" name="block dwell" tool_tip="Cochez pour que la région ne comptabilise pas le trafic."/> @@ -48,8 +48,8 @@ <spinner left="320" name="land cost" width="70"/> <button label="Rafraîchir" label_selected="Rafraîchir" name="Refresh" tool_tip="Cliquez ici pour rafraîchir les informations ci-dessus."/> <button label="Appliquer" label_selected="Appliquer" name="Apply" tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus."/> - <button label="Sélectionner une région" label_selected="Sélectionner une région" left="136" name="Select Region" tool_tip="Sélectionnez une région entière à l'aide de l'outil Terrain." width="140"/> - <button label="Sauvegarde automatique" label_selected="Sauvegarde automatique" left="136" name="Autosave now" tool_tip="Sauvegarde automatique au format gzip." width="140"/> + <button label="Sélectionner une région" label_selected="Sélectionner une région" left="136" name="Select Region" tool_tip="Sélectionnez une région entière à l'aide de l'outil Terrain." width="160"/> + <button label="Sauvegarde automatique" label_selected="Sauvegarde automatique" left="136" name="Autosave now" tool_tip="Sauvegarde automatique au format gzip." width="160"/> </panel> <panel label="Objets" name="objects"> <panel.string name="no_target"> diff --git a/indra/newview/skins/default/xui/fr/floater_inspect.xml b/indra/newview/skins/default/xui/fr/floater_inspect.xml index de74f47bcf..9b1bdf106d 100644 --- a/indra/newview/skins/default/xui/fr/floater_inspect.xml +++ b/indra/newview/skins/default/xui/fr/floater_inspect.xml @@ -7,7 +7,7 @@ <scroll_list.columns label="Nom" name="object_name"/> <scroll_list.columns label="Propriétaire" name="owner_name"/> <scroll_list.columns label="Créateur" name="creator_name"/> - <scroll_list.columns label="Date de création" name="creation_date"/> + <scroll_list.columns label="Date de création" name="creation_date" width="114"/> </scroll_list> <button label="Voir le profil du propriétaire..." name="button owner" tool_tip="Voir le profil du propriétaire de l'objet en surbrillance" width="172"/> <button label="Voir le profil du créateur..." left="192" name="button creator" tool_tip="Voir le profil du créateur de l'objet en surbrillance" width="172"/> diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml index b0d5df161c..fca1a329a2 100644 --- a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml @@ -47,11 +47,11 @@ <check_box label="Éditer" name="CheckOwnerModify"/> <check_box label="Copier" name="CheckOwnerCopy"/> <check_box label="Revendre" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> + <text name="AnyoneLabel" width="80"> N'importe qui : </text> <check_box label="Copier" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> + <text name="GroupLabel" width="80"> Groupe : </text> <check_box label="Partager" name="CheckShareWithGroup"/> diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml index 52f8597dc2..6cd886d4b9 100644 --- a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml @@ -13,7 +13,7 @@ <check_box label="Photos" name="check_snapshot"/> <button label="Tout" label_selected="Tout" name="All" width="70"/> <button bottom_delta="0" label="Aucun" label_selected="Aucun" left="83" name="None" width="70"/> - <check_box bottom_delta="-20" label="Toujours montrer les dossiers" name="check_show_empty"/> + <check_box bottom_delta="-20" label="Toujours montrer les dossiers" name="check_show_empty"/> <check_box bottom_delta="-36" label="Depuis la déconnexion" name="check_since_logoff"/> <text name="- OR -"> Ou il y a... diff --git a/indra/newview/skins/default/xui/fr/floater_joystick.xml b/indra/newview/skins/default/xui/fr/floater_joystick.xml index d3a1b6c61b..e00f9564e8 100644 --- a/indra/newview/skins/default/xui/fr/floater_joystick.xml +++ b/indra/newview/skins/default/xui/fr/floater_joystick.xml @@ -1,16 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" title="CONFIGURATION DU JOYSTICK"> <check_box label="Activer :" name="enable_joystick"/> - <spinner label="Mapping axe des X " name="JoystickAxis1"/> - <spinner label="Mapping axe des Y" name="JoystickAxis2"/> - <spinner label="Mapping axe des Z" name="JoystickAxis0"/> - <spinner label="Mapping du tangage" label_width="111" left="8" name="JoystickAxis4" width="152"/> - <spinner label="Mapping du lacet" name="JoystickAxis5"/> - <spinner label="Mapping du roulis" name="JoystickAxis3"/> - <spinner label="Mapping du zoom" name="JoystickAxis6"/> + <spinner label="Mapping axe des X " name="JoystickAxis1" left="20" width="154" label_width="130"/> + <spinner label="Mapping axe des Y" name="JoystickAxis2" width="154" label_width="130"/> + <spinner label="Mapping axe des Z" name="JoystickAxis0" width="154" label_width="130"/> + <spinner label="Mapping du tangage" label_width="136" left="20" name="JoystickAxis4" width="154"/> + <spinner label="Mapping du lacet" name="JoystickAxis5" width="154" label_width="130"/> + <spinner label="Mapping du roulis" name="JoystickAxis3" width="154" label_width="130"/> + <spinner label="Mapping du zoom" name="JoystickAxis6" left="20" width="154" label_width="130"/> <check_box label="Zoom direct" name="ZoomDirect"/> - <check_box label="Curseur 3D" name="Cursor3D"/> - <check_box label="Niveau automatique" name="AutoLeveling"/> + <check_box label="Curseur 3D" name="Cursor3D" left="300"/> + <check_box label="Niveau automatique" name="AutoLeveling" left="400"/> <text name="Control Modes:"> Modes de contrôle : </text> @@ -44,13 +44,13 @@ <text name="ZDeadZone"> Zone neutre Z </text> - <text left="4" name="PitchDeadZone" width="110"> - Zone neutre Tangage + <text left="4" name="PitchDeadZone" width="116"> + Zone neutre tangage </text> - <text name="YawDeadZone"> + <text name="YawDeadZone" left="10" width="104"> Zone neutre lacet </text> - <text name="RollDeadZone"> + <text name="RollDeadZone" left="10" width="104"> Zone neutre roulis </text> <text name="Feathering"> @@ -59,7 +59,7 @@ <text name="ZoomScale2"> Échelle du zoom </text> - <text left="6" name="ZoomDeadZone" width="110"> + <text left="6" name="ZoomDeadZone" width="120"> Zone neutre du zoom </text> <button label="Options par défaut du joystick" name="SpaceNavigatorDefaults"/> diff --git a/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml index b0a2f92f7c..7e7180166d 100644 --- a/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml +++ b/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml @@ -11,5 +11,5 @@ </floater.string> <button label="Réinitialiser" label_selected="Réinitialiser" left="390" name="Reset" width="100"/> <check_box initial_value="true" label="Exécution en cours" left="4" name="running"/> - <check_box initial_value="true" label="Mono" left="130" name="mono"/> + <check_box initial_value="true" label="Mono" left_delta="160" name="mono"/> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml b/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml index b92c0944de..71d2c42578 100644 --- a/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml +++ b/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="script ed float" title="RÉFÉRENCE LSL"> - <check_box label="Suivre le curseur" name="lock_check"/> - <combo_box label="Verrouiller" left_delta="120" name="history_combo" width="70"/> - <button label="Précédente" left_delta="75" name="back_btn"/> - <button label="Suivante" name="fwd_btn"/> + + <check_box label="Suivre le curseur" name="lock_check" width="90" /> + <combo_box label="Verrouiller" left_delta="120" name="history_combo" width="82"/> + <button label="Précédente" name="back_btn" left_delta="75"/> + <button label="Suivante" name="fwd_btn" width="60"/> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_media_browser.xml b/indra/newview/skins/default/xui/fr/floater_media_browser.xml index 0677c5d41f..58535eddf5 100644 --- a/indra/newview/skins/default/xui/fr/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/fr/floater_media_browser.xml @@ -15,12 +15,12 @@ <button label="OK" left_delta="515" name="go"/> </layout_panel> <layout_panel name="time_controls"> - <button label="en arrière" name="rewind"/> + <button label="en arrière" name="rewind" width="60"/> <button label="stop" name="stop"/> - <button label="en avant" name="seek"/> + <button label="en avant" name="seek" width="60"/> </layout_panel> <layout_panel name="parcel_owner_controls"> - <button label="Envoyer la page actuelle à la parcelle" name="assign"/> + <button label="Envoyer la page actuelle à la parcelle" name="assign" width="220"/> </layout_panel> <layout_panel name="external_controls"> <button label="Ouvrir dans mon navigateur web" name="open_browser" width="196"/> diff --git a/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml b/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml index 5993f90cef..d03c4d7544 100644 --- a/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml +++ b/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml @@ -12,7 +12,7 @@ [NOTE2] </text> <button label="Commencer" name="start_btn" width="85"/> - <button label="Stop" left="100" name="stop_btn"/> - <button label="Libérer" left="177" name="release_btn"/> - <button label="Fermer" name="close_btn"/> + <button label="Stop" name="stop_btn"/> + <button label="Libérer" name="release_btn"/> + <button label="Fermer" name="close_btn" left_pad="20"/> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_notification.xml b/indra/newview/skins/default/xui/fr/floater_notification.xml index 62727da007..fe4b5f9bd6 100644 --- a/indra/newview/skins/default/xui/fr/floater_notification.xml +++ b/indra/newview/skins/default/xui/fr/floater_notification.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="notification" title="CONSOLE DE NOTIFICATIONS"> <text_editor name="payload"> - Chargement.. + Chargement... </text_editor> <combo_box label="Réponse" name="response"/> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_pay_object.xml b/indra/newview/skins/default/xui/fr/floater_pay_object.xml index c96db77721..9cac739ab0 100644 --- a/indra/newview/skins/default/xui/fr/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/fr/floater_pay_object.xml @@ -17,10 +17,10 @@ <text left="105" name="object_name_text"> ... </text> - <button label="1 L$" label_selected="1 L$" left="105" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" left="190" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" left="105" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" left="190" name="fastpay 20"/> + <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> + <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> + <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> + <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> <text halign="left" left="5" name="amount text"> Ou choisissez un montant : </text> diff --git a/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml b/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml index 2be2ae7c88..f83000cf87 100644 --- a/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml +++ b/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml @@ -4,7 +4,7 @@ <button label="?" label_selected="?" name="help"/> <check_box label="Partager avec le groupe" name="share_with_group"/> <check_box label="Autoriser tout le monde à copier" name="everyone_copy"/> - <text name="NextOwnerLabel"> + <text name="NextOwnerLabel" width="260"> Le prochain propriétaire pourra : </text> <check_box label="Modifier" name="next_owner_modify"/> diff --git a/indra/newview/skins/default/xui/fr/floater_postcard.xml b/indra/newview/skins/default/xui/fr/floater_postcard.xml index 6a9a674fac..489b90eeba 100644 --- a/indra/newview/skins/default/xui/fr/floater_postcard.xml +++ b/indra/newview/skins/default/xui/fr/floater_postcard.xml @@ -3,19 +3,19 @@ <text name="to_label" width="135"> E-mail du destinataire : </text> - <line_editor left="143" name="to_form" width="127"/> + <line_editor left="143" name="to_form" width="130" left_delta="146"/> <text name="from_label"> Votre e-mail : </text> - <line_editor left="143" name="from_form" width="127"/> + <line_editor left="143" name="from_form" width="130" left_delta="146"/> <text name="name_label"> Votre nom : </text> - <line_editor left="143" name="name_form" width="127"/> + <line_editor left="143" name="name_form" width="130" left_delta="146"/> <text name="subject_label"> Sujet : </text> - <line_editor left="143" name="subject_form" width="127"/> + <line_editor left="143" name="subject_form" width="130" left_delta="146"/> <line_editor label="Saisissez votre sujet ici." name="subject_form"/> <text name="msg_label"> Message : diff --git a/indra/newview/skins/default/xui/fr/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/fr/floater_preview_gesture_shortcut.xml index 06caf0635d..d866c32882 100644 --- a/indra/newview/skins/default/xui/fr/floater_preview_gesture_shortcut.xml +++ b/indra/newview/skins/default/xui/fr/floater_preview_gesture_shortcut.xml @@ -6,8 +6,8 @@ <text name="key_label"> Clavier : </text> - <combo_box label="Aucun" name="modifier_combo"/> - <combo_box label="Aucun" name="key_combo"/> + <combo_box label="Aucun" name="modifier_combo" width="62"/> + <combo_box label="Aucun" name="key_combo" width="62"/> <text name="replace_text" tool_tip="Remplacez le ou les mots-clés par ces mots. Par exemple, si vous remplacez le mot-clé " bonjour " par " salut ", le chat " Je voulais te dire bonjour " devient " Je voulais te dire salut " et le geste correspondant s'affiche."> Remplacer : </text> diff --git a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml index b96e15e4bb..215df18bd6 100644 --- a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml @@ -29,13 +29,13 @@ <text name="object_name_label"> Objet : </text> - <text left_delta="70" name="object_name" width="105"> + <text left_pad="26" name="object_name" width="105"> Consetetur Sadipscing </text> - <text name="owner_name_label" width="66"> + <text name="owner_name_label" width="100"> Propriétaire : </text> - <text left_delta="70" name="owner_name" width="105"> + <text left_delta="120" name="owner_name" width="105"> Hendrerit Vulputate Kamawashi Longname </text> <combo_box name="category_combo" tool_tip="Choisissez la catégorie qui décrit le mieux ce rapport"> diff --git a/indra/newview/skins/default/xui/fr/floater_sell_land.xml b/indra/newview/skins/default/xui/fr/floater_sell_land.xml index e950a64c4c..d79726e8e2 100644 --- a/indra/newview/skins/default/xui/fr/floater_sell_land.xml +++ b/indra/newview/skins/default/xui/fr/floater_sell_land.xml @@ -5,13 +5,13 @@ <text name="info_parcel_label"> Parcelle : </text> - <text name="info_parcel"> + <text name="info_parcel" left="70"> NOM DE LA PARCELLE </text> <text name="info_size_label"> Taille : </text> - <text name="info_size"> + <text name="info_size" left="70"> [AREA] m² </text> <text bottom_delta="-60" name="info_action"> diff --git a/indra/newview/skins/default/xui/fr/floater_settings_debug.xml b/indra/newview/skins/default/xui/fr/floater_settings_debug.xml index aae4729347..995837e9ee 100644 --- a/indra/newview/skins/default/xui/fr/floater_settings_debug.xml +++ b/indra/newview/skins/default/xui/fr/floater_settings_debug.xml @@ -4,7 +4,7 @@ <combo_box.item label="VRAI" name="TRUE"/> <combo_box.item label="FAUX" name="FALSE"/> </combo_box> - <color_swatch label="Couleur" name="val_color_swatch"/> + <color_swatch label="Couleur" name="val_color_swatch" width="50"/> <spinner label="x" name="val_spinner_1"/> <spinner label="x" name="val_spinner_2"/> <spinner label="x" name="val_spinner_3"/> diff --git a/indra/newview/skins/default/xui/fr/floater_snapshot.xml b/indra/newview/skins/default/xui/fr/floater_snapshot.xml index 486eafef01..74738b7e31 100644 --- a/indra/newview/skins/default/xui/fr/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/fr/floater_snapshot.xml @@ -45,8 +45,8 @@ <combo_box.item label="JPEG" name="JPEG"/> <combo_box.item label="BMP" name="BMP"/> </combo_box> - <spinner label="Largeur" label_width="41" name="snapshot_width" width="101"/> - <spinner label="Hauteur" label_width="41" left="121" name="snapshot_height" width="101"/> + <spinner label="Largeur" label_width="44" name="snapshot_width" width="101"/> + <spinner label="Hauteur" label_width="46" left="121" name="snapshot_height" width="101"/> <slider label="Qualité de l'image" name="image_quality_slider"/> <text name="layer_type_label"> Capturer : diff --git a/indra/newview/skins/default/xui/fr/floater_telehub.xml b/indra/newview/skins/default/xui/fr/floater_telehub.xml index a50cfc25c1..c529ca2736 100644 --- a/indra/newview/skins/default/xui/fr/floater_telehub.xml +++ b/indra/newview/skins/default/xui/fr/floater_telehub.xml @@ -10,8 +10,7 @@ Pour supprimer, cliquez sur Déconnecter. </text> <text bottom_delta="-18" height="38" name="help_text_not_connected"> - Sélectionner l'objet et cliquez sur Connecter -le téléhub. + Sélectionner l'objet et cliquez sur Connecter le téléhub. </text> <button label="Connecter le téléhub" name="connect_btn" width="122"/> <button label="Déconnecter" left="142" name="disconnect_btn" width="98"/> @@ -20,7 +19,7 @@ le téléhub. </text> <button label="Ajouter point" name="add_spawn_point_btn"/> <button label="Supprimer point" name="remove_spawn_point_btn"/> - <text name="spawn_point_help"> + <text name="spawn_point_help" height="100"> Sélectionnez l'objet et cliquez sur Ajouter pour indiquer la position. Vous pourrez ensuite déplacer ou supprimer l'objet. Les positions sont relatives au centre du téléhub. diff --git a/indra/newview/skins/default/xui/fr/floater_url_entry.xml b/indra/newview/skins/default/xui/fr/floater_url_entry.xml index 6a90731691..4b2be14569 100644 --- a/indra/newview/skins/default/xui/fr/floater_url_entry.xml +++ b/indra/newview/skins/default/xui/fr/floater_url_entry.xml @@ -3,11 +3,11 @@ <text name="media_label"> URL du média : </text> - <combo_box left="100" name="media_entry" width="360" /> - <button label="OK" name="ok_btn" /> + <combo_box name="media_entry"/> + <button label="OK" name="ok_btn" width="30" /> <button label="Annuler" name="cancel_btn" /> - <button label="Effacer" name="clear_btn" /> - <text name="loading_label"> + <button label="Effacer" name="clear_btn" left_pad="94"/> + <text name="loading_label" left="120"> Chargement... </text> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_water.xml b/indra/newview/skins/default/xui/fr/floater_water.xml index 287f51d9f7..1a74017330 100644 --- a/indra/newview/skins/default/xui/fr/floater_water.xml +++ b/indra/newview/skins/default/xui/fr/floater_water.xml @@ -3,7 +3,7 @@ <floater.string name="WLDefaultWaterNames"> Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez </floater.string> - <text name="KeyFramePresetsText"> + <text name="KeyFramePresetsText" width="120"> Préréglages eau : </text> <button label="Nouveau" label_selected="Nouveau" name="WaterNewPreset"/> @@ -12,8 +12,7 @@ <tab_container name="Water Tabs"> <panel label="Paramètres" name="Settings"> <text name="BHText"> - Couleur du brouillard -dans l'eau + Couleur du brouillard dans l'eau </text> <color_swatch left="75" name="WaterFogColor" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> <text name="WaterFogDensText"> diff --git a/indra/newview/skins/default/xui/fr/floater_windlight_options.xml b/indra/newview/skins/default/xui/fr/floater_windlight_options.xml index e28de71625..d92fadd048 100644 --- a/indra/newview/skins/default/xui/fr/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/fr/floater_windlight_options.xml @@ -6,7 +6,7 @@ <button label="Nouveau" label_selected="Nouveau" name="WLNewPreset"/> <button label="Enregistrer" label_selected="Enregistrer" left_delta="75" name="WLSavePreset" width="75"/> <button label="Supprimer" label_selected="Supprimer" left_delta="80" name="WLDeletePreset"/> - <button label="Éditeur du cycle du jour" label_selected="Éditeur du cycle du jour" left_delta="95" name="WLDayCycleMenuButton" width="150"/> + <button label="Éditeur du cycle du jour" label_selected="Éditeur du cycle du jour" left_pad="20" left_delta="95" name="WLDayCycleMenuButton" width="150"/> <tab_container name="WindLight Tabs" width="706"> <panel label="Atmosphère" name="Atmosphere"> <text name="BHText"> diff --git a/indra/newview/skins/default/xui/fr/inspect_remote_object.xml b/indra/newview/skins/default/xui/fr/inspect_remote_object.xml index 6d8c44578a..6d7cfadc04 100644 --- a/indra/newview/skins/default/xui/fr/inspect_remote_object.xml +++ b/indra/newview/skins/default/xui/fr/inspect_remote_object.xml @@ -7,7 +7,7 @@ <text name="object_name"> Nom d'objet de test vraiment très long </text> - <text name="object_owner_label"> + <text name="object_owner_label" width="70"> Propriétaire : </text> <text name="object_owner"> diff --git a/indra/newview/skins/default/xui/fr/panel_audio_device.xml b/indra/newview/skins/default/xui/fr/panel_audio_device.xml index a9540d8346..2caa013f54 100644 --- a/indra/newview/skins/default/xui/fr/panel_audio_device.xml +++ b/indra/newview/skins/default/xui/fr/panel_audio_device.xml @@ -6,7 +6,7 @@ <text name="Input device (microphone):"> Périphérique d'entrée (micro) : </text> - <text name="Output device (speakers):"> + <text name="Output device (speakers):" width="300"> Périphérique de sortie (haut-parleurs) : </text> <text name="Input level:"> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_alpha.xml b/indra/newview/skins/default/xui/fr/panel_edit_alpha.xml index 836dd99097..3b81ef2a5f 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_alpha.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_alpha.xml @@ -5,6 +5,6 @@ <texture_picker label="Alpha haut" name="Upper Alpha" tool_tip="Cliquez pour sélectionner une image"/> <texture_picker label="Alpha tête" name="Head Alpha" tool_tip="Cliquez pour sélectionner une image"/> <texture_picker label="Alpha yeux" name="Eye Alpha" tool_tip="Cliquez pour sélectionner une image"/> - <texture_picker label="Alpha cheveux" name="Hair Alpha" tool_tip="Cliquez pour sélectionner une image"/> + <texture_picker label="Alpha cheveux" width="80" name="Hair Alpha" tool_tip="Cliquez pour sélectionner une image"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml b/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml index e37e0b2481..73e136ade6 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml @@ -2,7 +2,7 @@ <panel name="edit_gloves_panel"> <panel name="avatar_gloves_color_panel"> <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/> - <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> + <color_swatch label="Couleur/Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> </panel> <accordion name="wearable_accordion"> <accordion_tab name="gloves_main_tab" title="Gants"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml b/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml index 759db657a6..cee44eb795 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml @@ -3,7 +3,7 @@ <panel name="avatar_jacket_color_panel"> <texture_picker label="Tissu (haut)" name="Upper Fabric" tool_tip="Cliquez pour sélectionner une image"/> <texture_picker label="Tissu (bas)" name="Lower Fabric" tool_tip="Cliquez pour sélectionner une image"/> - <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> + <color_swatch label="Couleur/Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> </panel> <accordion name="wearable_accordion"> <accordion_tab name="jacket_main_tab" title="Veste"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_pants.xml b/indra/newview/skins/default/xui/fr/panel_edit_pants.xml index 5328e885d3..71d82c817f 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_pants.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_pants.xml @@ -2,7 +2,7 @@ <panel name="edit_pants_panel"> <panel name="avatar_pants_color_panel"> <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/> - <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> + <color_swatch label="Couleur/Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> </panel> <accordion name="wearable_accordion"> <accordion_tab name="pants_main_tab" title="Pantalon"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml index 4a42858861..24cf7844b5 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml @@ -53,7 +53,7 @@ </panel> </scroll_container> <panel name="profile_me_buttons_panel"> - <button label="Enregistrer les changements" name="save_btn"/> + <button label="Enregistrer les changements" width="166" name="save_btn"/> <button label="Annuler" name="cancel_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml b/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml index 0fe7d5bbb0..cf28cd8c1e 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml @@ -2,7 +2,7 @@ <panel name="edit_shirt_panel"> <panel name="avatar_shirt_color_panel"> <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/> - <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> + <color_swatch label="Couleur/Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> </panel> <accordion name="wearable_accordion"> <accordion_tab name="shirt_main_tab" title="Chemise"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml b/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml index 588a2ca7b2..a8e0910a15 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml @@ -2,7 +2,7 @@ <panel name="edit_shoes_panel"> <panel name="avatar_shoes_color_panel"> <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/> - <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> + <color_swatch label="Couleur/Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> </panel> <accordion name="wearable_accordion"> <accordion_tab name="shoes_main_tab" title="Chaussures"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_skin.xml b/indra/newview/skins/default/xui/fr/panel_edit_skin.xml index 649b91d66d..dac005f6b6 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_skin.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_skin.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="edit_skin_panel"> <panel name="avatar_skin_color_panel"> - <texture_picker label="Tatouage tête" name="Head Tattoos" tool_tip="Cliquez pour sélectionner une image"/> - <texture_picker label="Tatouage haut" name="Upper Tattoos" tool_tip="Cliquez pour sélectionner une image"/> + <texture_picker label="Tatouage tête" name="Head Tattoos" width="76" tool_tip="Cliquez pour sélectionner une image"/> + <texture_picker label="Tatouage haut" name="Upper Tattoos" width="80" tool_tip="Cliquez pour sélectionner une image"/> <texture_picker label="Tatouage bas" name="Lower Tattoos" tool_tip="Cliquez pour sélectionner une image"/> </panel> <accordion name="wearable_accordion"> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml b/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml index 9d0f13c4e8..e9784b9510 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml @@ -2,7 +2,7 @@ <panel name="edit_skirt_panel"> <panel name="avatar_skirt_color_panel"> <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/> - <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> + <color_swatch label="Couleur/Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> </panel> <accordion name="wearable_accordion"> <accordion_tab name="skirt_main_tab" title="Jupe"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_socks.xml b/indra/newview/skins/default/xui/fr/panel_edit_socks.xml index 8b062e0145..6fc6a3dc77 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_socks.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_socks.xml @@ -2,7 +2,7 @@ <panel name="edit_socks_panel"> <panel name="avatar_socks_color_panel"> <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/> - <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> + <color_swatch label="Couleur/Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> </panel> <accordion name="wearable_accordion"> <accordion_tab name="socks_main_tab" title="Chaussettes"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml index 1faee191e0..7ab2aa6bc9 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="edit_tattoo_panel"> <panel name="avatar_tattoo_color_panel"> - <texture_picker label="Tatouage tête" name="Head Tattoo" tool_tip="Cliquez pour sélectionner une image"/> - <texture_picker label="Tatouage haut" name="Upper Tattoo" tool_tip="Cliquez pour sélectionner une image"/> - <texture_picker label="Tatouage bas" name="Lower Tattoo" tool_tip="Cliquez pour sélectionner une image"/> + <texture_picker label="Tatouage tête" name="Head Tattoo" width="76" tool_tip="Cliquez pour sélectionner une image"/> + <texture_picker label="Tatouage haut" name="Upper Tattoo" width="80" tool_tip="Cliquez pour sélectionner une image"/> + <texture_picker label="Tatouage bas" name="Lower Tattoo" width="76" tool_tip="Cliquez pour sélectionner une image"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml b/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml index b9164ad862..6323462877 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml @@ -2,7 +2,7 @@ <panel name="edit_underpants_panel"> <panel name="avatar_underpants_color_panel"> <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/> - <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> + <color_swatch label="Couleur/Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> </panel> <accordion name="wearable_accordion"> <accordion_tab name="underpants_main_tab" title="Sous-vêtements (femme)"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml index 462eff9451..5af733d8a2 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml @@ -2,7 +2,7 @@ <panel name="edit_undershirt_panel"> <panel name="avatar_undershirt_color_panel"> <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/> - <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> + <color_swatch label="Couleur/Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/> </panel> <accordion name="wearable_accordion"> <accordion_tab name="undershirt_main_tab" title="Sous-vêtements (homme)"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml index 24ea030b33..c6ab686b0e 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml @@ -96,6 +96,6 @@ </panel> <panel name="button_panel"> <button label="Enregistrer sous" name="save_as_button"/> - <button label="Annuler modification" name="revert_button"/> + <button label="Annuler modification" width="130" name="revert_button"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml index b2f61fde71..8207fd7735 100644 --- a/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml @@ -32,7 +32,7 @@ <panel name="button_row"> <button label="Créer" label_selected="Nouveau groupe" name="btn_create"/> <button label="Chat de groupe" name="btn_chat"/> - <button label="Appel de groupe" name="btn_call"/> + <button label="Appel de groupe" width="100" name="btn_call"/> <button label="Enregistrer" label_selected="Enregistrer" name="btn_apply"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml index 3ca22b6e21..02b14cb859 100644 --- a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml @@ -16,13 +16,13 @@ <text name="group_land_heading"> Terrain du groupe </text> - <scroll_list name="group_parcel_list"> - <column label="Parcelle" name="name"/> - <column label="Région" name="location"/> - <column label="Type" name="type"/> - <column label="Surface" name="area"/> - <column label="" name="hidden"/> - </scroll_list> + <scroll_list name="group_parcel_list" width="310"> + <column label="Parcelle" name="name" width="76" /> + <column label="Région" name="location" width="78" /> + <column label="Type" name="type" width="70" /> + <column label="Surface" name="area" width="50" /> + <column label="" name="hidden" width="-1" /> + </scroll_list> <button label="Carte" label_selected="Carte" name="map_button"/> <text name="total_contributed_land_label"> Total des contributions : diff --git a/indra/newview/skins/default/xui/fr/panel_group_notices.xml b/indra/newview/skins/default/xui/fr/panel_group_notices.xml index 1ec63cf027..68c74f9322 100644 --- a/indra/newview/skins/default/xui/fr/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/fr/panel_group_notices.xml @@ -27,23 +27,23 @@ Vous pouvez désactiver la réception des notices dans l'onglet Général. <text name="lbl"> Créer une notice </text> - <text bottom_delta="-79" left="20" name="lbl3"> + <text name="lbl3"> Sujet : </text> - <line_editor left_delta="61" name="create_subject" width="331"/> - <text left="20" name="lbl4"> + <line_editor name="create_subject" /> + <text name="lbl4"> Message : </text> - <text_editor bottom_delta="-90" height="104" left_delta="61" name="create_message" width="330"/> - <text name="lbl5" width="68"> + <text_editor name="create_message"/> + <text name="lbl5" > Pièce-jointe : </text> - <line_editor left_delta="74" name="create_inventory_name" width="190"/> + <line_editor name="create_inventory_name"/> <text name="string"> Faire glisser l'objet et le déposer ici pour le joindre : </text> - <button label="Supprimer" label_selected="Supprimer pièce-jointe" left="274" name="remove_attachment" width="140"/> - <button label="Envoyer" label_selected="Envoyer" left="274" name="send_notice" width="140"/> + <button label="Supprimer" label_selected="Supprimer pièce-jointe" name="remove_attachment"/> + <button label="Envoyer" label_selected="Envoyer" left="200" name="send_notice" width="100"/> <group_drop_target name="drop_target" tool_tip="Faites glisser un objet de l'inventaire jusqu'à cette case pour l'envoyer avec la notice. Vous devez avoir l'autorisation de copier et transférer l'objet pour pouvoir le joindre."/> </panel> <panel label="Voir ancienne notice" name="panel_view_past_notice"> diff --git a/indra/newview/skins/default/xui/fr/panel_group_roles.xml b/indra/newview/skins/default/xui/fr/panel_group_roles.xml index d0c9f2f302..400d4d6aee 100644 --- a/indra/newview/skins/default/xui/fr/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/fr/panel_group_roles.xml @@ -6,14 +6,14 @@ <panel.string name="want_apply_text"> Voulez-vous enregistrer vos modifications ? </panel.string> - <tab_container height="164" name="roles_tab_container"> - <panel height="148" label="MEMBRES" name="members_sub_tab" tool_tip="Membres"> + <tab_container name="roles_tab_container"> + <panel label="MEMBRES" name="members_sub_tab" tool_tip="Membres"> <panel.string name="help_text"> Vous pouvez ajouter ou supprimer les rôles assignés aux membres. Pour sélectionner plusieurs membres, cliquez sur leurs noms en maintenant la touche Ctrl enfoncée. </panel.string> <filter_editor label="Filtrer les membres" name="filter_input"/> - <name_list bottom_delta="-105" height="104" name="member_list"> + <name_list name="member_list"> <name_list.columns label="Membre" name="name"/> <name_list.columns label="Donation" name="donated" width="116"/> <name_list.columns label="Statut" name="online" width="136"/> @@ -21,7 +21,7 @@ Pour sélectionner plusieurs membres, cliquez sur leurs noms en maintenant la to <button label="Inviter" name="member_invite" width="165"/> <button label="Expulser" name="member_eject"/> </panel> - <panel height="148" label="RÔLES" name="roles_sub_tab"> + <panel label="RÔLES" name="roles_sub_tab"> <panel.string name="help_text"> Chaque rôle possède un titre et des pouvoirs. Les membres peuvent avoir @@ -41,13 +41,13 @@ notamment les rôles Tous et Propriétaire. Checkbox_Off </panel.string> <filter_editor label="Filtrer les rôles" name="filter_input"/> - <scroll_list bottom_delta="-104" height="104" name="role_list"> + <scroll_list name="role_list"> <scroll_list.columns label="Rôle" name="name"/> <scroll_list.columns label="Titre" name="title"/> <scroll_list.columns label="#" name="members"/> </scroll_list> <button label="Nouveau rôle" name="role_create"/> - <button label="Supprimer le rôle" name="role_delete"/> + <button label="Supprimer le rôle" width="120" name="role_delete"/> </panel> <panel height="148" label="POUVOIRS" name="actions_sub_tab" tool_tip="Vous pouvez afficher une description du pouvoir et voir quels membres et rôles peuvent s'en servir."> <panel.string name="help_text"> diff --git a/indra/newview/skins/default/xui/fr/panel_groups.xml b/indra/newview/skins/default/xui/fr/panel_groups.xml index 98320656fb..4cda98b9f7 100644 --- a/indra/newview/skins/default/xui/fr/panel_groups.xml +++ b/indra/newview/skins/default/xui/fr/panel_groups.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="groups"> <scroll_list bottom="50" name="group list"/> - <text bottom="16" height="32" name="groupdesc" width="268"> + <text name="groupdesc"> Le groupe actif est en gras. </text> - <text bottom="3" name="groupcount"> + <text name="groupcount" width="280"> Vous appartenez à [COUNT] groupes ([MAX] max). </text> <button label="IM/Appel" name="IM" tool_tip="Ouvrir une session de messagerie instantanée"/> diff --git a/indra/newview/skins/default/xui/fr/panel_login.xml b/indra/newview/skins/default/xui/fr/panel_login.xml index 8f0561d243..75648d3541 100644 --- a/indra/newview/skins/default/xui/fr/panel_login.xml +++ b/indra/newview/skins/default/xui/fr/panel_login.xml @@ -23,7 +23,7 @@ <text name="start_location_text"> Commencer à : </text> - <combo_box name="start_location_combo"> + <combo_box name="start_location_combo" width="152"> <combo_box.item label="Dernier emplacement" name="MyLastLocation"/> <combo_box.item label="Domicile" name="MyHome"/> <combo_box.item label="<Saisissez le nom de la région>" name="Typeregionname"/> diff --git a/indra/newview/skins/default/xui/fr/panel_media_settings_security.xml b/indra/newview/skins/default/xui/fr/panel_media_settings_security.xml index 36d5f4e860..9d070b7aff 100644 --- a/indra/newview/skins/default/xui/fr/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/fr/panel_media_settings_security.xml @@ -2,7 +2,8 @@ <panel label="Sécurité" name="Media Settings Security"> <check_box initial_value="false" label="Autoriser l'accès aux styles d'URL spécifiés uniquement" name="whitelist_enable"/> <text name="home_url_fails_some_items_in_whitelist"> - Les entrées par lesquelles la page d'accueil est rejetée sont indiquées : + Les entrées par lesquelles la page +d'accueil est rejetée sont indiquées : </text> <button label="Ajouter" name="whitelist_add"/> <button label="Supprimer" name="whitelist_del"/> diff --git a/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml b/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml index fa1ddd2430..f1a7ebb35c 100644 --- a/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml +++ b/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml @@ -2,8 +2,8 @@ <!-- All our XML is utf-8 encoded. --> <panel name="nearby_chat"> <panel name="chat_caption"> - <text name="sender_name"> - CHAT PRÈS DE VOUS - </text> + <text + name="sender_name" +width="170">CHAT PRÈS DE VOUS</text> </panel> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_notes.xml b/indra/newview/skins/default/xui/fr/panel_notes.xml index b1be274616..ba052a0e07 100644 --- a/indra/newview/skins/default/xui/fr/panel_notes.xml +++ b/indra/newview/skins/default/xui/fr/panel_notes.xml @@ -14,8 +14,8 @@ </layout_panel> <layout_panel name="notes_buttons_panel"> <button label="Devenir amis" name="add_friend" tool_tip="Proposer à ce résident de devenir votre ami"/> - <button label="IM" name="im" tool_tip="Ouvrir une session IM"/> - <button label="Appeler" name="call" tool_tip="Appeler ce résident"/> + <button label="IM" name="im" width="30" tool_tip="Ouvrir une session IM"/> + <button label="Appeler" name="call" width="60" tool_tip="Appeler ce résident"/> <button label="Carte" name="show_on_map_btn" tool_tip="Afficher le résident sur la carte"/> <button label="Téléporter" name="teleport" tool_tip="Proposez une téléportation"/> </layout_panel> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml index 04abcc8aad..0c0cc29e7a 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml @@ -9,7 +9,7 @@ <check_box label="Bulles de chat" name="bubble_text_chat"/> <color_swatch name="background" tool_tip="Choisir la couleur des bulles de chat"/> <slider label="Opacité" name="bubble_chat_opacity"/> - <text name="AspectRatioLabel1" tool_tip="largeur/hauteur"> + <text width="140" name="AspectRatioLabel1" tool_tip="largeur/hauteur"> Rapport hauteur/largeur </text> <combo_box name="aspect_ratio" tool_tip="largeur/hauteur"> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml index 4459244395..9576119eb5 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml @@ -17,7 +17,7 @@ <text name="QualitySpeed"> Qualité et vitesse : </text> - <text left="105" name="FasterText"> + <text left="35" name="FasterText"> Plus rapide </text> <text name="BetterText"> @@ -62,7 +62,7 @@ <text name="DrawDistanceMeterText2"> m </text> - <slider label="Nombre de particules max. :" label_width="143" name="MaxParticleCount"/> + <slider label="Nombre de particules max. :" label_width="147" name="MaxParticleCount"/> <slider label="Qualité post-traitement :" name="RenderPostProcess"/> <text name="MeshDetailText"> Détails des rendus : diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml b/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml index 68a735df90..d477a9532d 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml @@ -18,7 +18,7 @@ kbps </text> <check_box label="Port de connexion personnalisé" name="connection_port_enabled"/> - <spinner label="Numéro de port :" name="web_proxy_port"/> + <spinner label="Numéro de port :" label_width="95" name="web_proxy_port" width="170"/> <text name="cache_size_label_l"> Taille de la mémoire </text> diff --git a/indra/newview/skins/default/xui/fr/panel_profile.xml b/indra/newview/skins/default/xui/fr/panel_profile.xml index 0c33a0f1e0..19c6a3b090 100644 --- a/indra/newview/skins/default/xui/fr/panel_profile.xml +++ b/indra/newview/skins/default/xui/fr/panel_profile.xml @@ -39,8 +39,8 @@ </layout_panel> <layout_panel name="profile_buttons_panel"> <button label="Devenir amis" name="add_friend" tool_tip="Proposer à ce résident de devenir votre ami"/> - <button label="IM" name="im" tool_tip="Ouvrir une session IM"/> - <button label="Appeler" name="call" tool_tip="Appeler ce résident"/> + <button label="IM" name="im" width="30" tool_tip="Ouvrir une session IM"/> + <button label="Appeler" name="call" width="60" tool_tip="Appeler ce résident"/> <button label="Carte" name="show_on_map_btn" tool_tip="Afficher le résident sur la carte"/> <button label="Téléporter" name="teleport" tool_tip="Proposez une téléportation"/> </layout_panel> diff --git a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml index cf9f4e0fd0..cd1d0c4886 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml @@ -18,7 +18,7 @@ <text name="estate_cov_lbl"> Règlement : </text> - <text name="covenant_timestamp_text"> + <text name="covenant_timestamp_text" width="350"> Dernière modification le mercredi 31 décembre 1969 16:00:00 </text> <button label="?" name="covenant_help"/> @@ -27,8 +27,8 @@ </text_editor> <button label="Réinitialiser" name="reset_covenant"/> <text name="covenant_help_text"> - Les changements apportés au règlement apparaîtront sur toutes - les parcelles du domaine. + Les changements apportés au règlement apparaîtront sur +toutes les parcelles du domaine. </text> <text bottom_delta="-31" name="covenant_instructions"> Faire glisser une note pour changer le règlement de ce domaine. diff --git a/indra/newview/skins/default/xui/fr/panel_region_debug.xml b/indra/newview/skins/default/xui/fr/panel_region_debug.xml index 0fabf92889..cb4a74e142 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_debug.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_debug.xml @@ -13,7 +13,7 @@ <check_box label="Désactiver la physique" name="disable_physics_check" tool_tip="Désactiver tous les effets liés à la physique dans cette région"/> <button label="?" name="disable_physics_help"/> <button bottom_delta="-38" label="Appliquer" name="apply_btn"/> - <text bottom_delta="-42" name="objret_text_lbl"> + <text bottom_delta="-42" name="objret_text_lbl" width="260"> Renvoi de l'objet </text> <text name="resident_text_lbl"> diff --git a/indra/newview/skins/default/xui/fr/panel_region_estate.xml b/indra/newview/skins/default/xui/fr/panel_region_estate.xml index a0282dd940..f9262ea478 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_estate.xml @@ -1,9 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Domaine" name="Estate"> <text bottom="-34" name="estate_help_text"> - Les modifications des paramètres de cet onglet affecteront toutes les régions du domaine. + Les modifications des paramètres de cet +onglet affecteront toutes les régions du +domaine. </text> - <text bottom_delta="-34" name="estate_text"> + <text top_pad="8" bottom_delta="-34" name="estate_text"> Domaine : </text> <text name="estate_name"> diff --git a/indra/newview/skins/default/xui/fr/panel_region_general.xml b/indra/newview/skins/default/xui/fr/panel_region_general.xml index 8a59adbd93..711278d614 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_general.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_general.xml @@ -32,9 +32,9 @@ <button label="?" name="parcel_changes_help"/> <check_box label="Ne pas afficher dans la recherche" name="block_parcel_search_check" tool_tip="Afficher cette région et ses parcelles dans les résultats de recherche"/> <button label="?" name="parcel_search_help"/> - <spinner label="Nombre maximum d'avatars" label_width="127" name="agent_limit_spin" width="190"/> + <spinner label="Nombre maximum d'avatars" name="agent_limit_spin" label_width="160" width="240"/> <button label="?" name="agent_limit_help"/> - <spinner label="Bonus objet" label_width="127" name="object_bonus_spin" width="190"/> + <spinner label="Bonus objet" name="object_bonus_spin" label_width="160" width="240"/> <button label="?" name="object_bonus_help"/> <text label="Maturité" name="access_text"> Catégorie : diff --git a/indra/newview/skins/default/xui/fr/panel_region_general_layout.xml b/indra/newview/skins/default/xui/fr/panel_region_general_layout.xml index 0e72bbc9f5..e709100fa2 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_general_layout.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_general_layout.xml @@ -3,19 +3,19 @@ <text name="region_text_lbl"> Région : </text> - <text name="region_text"> + <text name="region_text" left_delta="56"> inconnu </text> <text name="version_channel_text_lbl"> Version : </text> - <text name="version_channel_text"> + <text name="version_channel_text" left_delta="56"> inconnu </text> <text name="region_type_lbl"> Type : </text> - <text name="region_type"> + <text name="region_type" left_delta="56"> inconnu </text> <check_box label="Interdire le terraformage" name="block_terraform_check"/> @@ -25,8 +25,8 @@ <check_box label="Autoriser la revente de terrains" name="allow_land_resell_check"/> <check_box label="Autoriser la fusion/division de terrains" name="allow_parcel_changes_check"/> <check_box label="Interdire l'affichage du terrain dans les recherches" name="block_parcel_search_check" tool_tip="Permettre aux autres résidents de voir cette région et ses parcelles dans les résultats de recherche"/> - <spinner label="Nombre maximum d'avatars" name="agent_limit_spin"/> - <spinner label="Bonus objet" name="object_bonus_spin"/> + <spinner label="Nombre maximum d'avatars" name="agent_limit_spin" label_width="160" width="240"/> + <spinner label="Bonus objet" name="object_bonus_spin" label_width="160" width="240"/> <text label="Accès" name="access_text"> Catégorie : </text> diff --git a/indra/newview/skins/default/xui/fr/panel_region_texture.xml b/indra/newview/skins/default/xui/fr/panel_region_texture.xml index a7abb49b1a..e95d911c01 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_texture.xml @@ -39,7 +39,7 @@ <text name="height_text_lbl9"> Nord-est </text> - <text name="height_text_lbl10"> + <text name="height_text_lbl10" width="460"> Ces valeurs représentent les limites de mélange pour les textures ci-dessus. </text> <text name="height_text_lbl11"> diff --git a/indra/newview/skins/default/xui/fr/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/fr/panel_script_limits_my_avatar.xml index 24656bf379..47d8382e57 100644 --- a/indra/newview/skins/default/xui/fr/panel_script_limits_my_avatar.xml +++ b/indra/newview/skins/default/xui/fr/panel_script_limits_my_avatar.xml @@ -4,7 +4,7 @@ Chargement... </text> <scroll_list name="scripts_list"> - <scroll_list.columns label="Taille (Ko)" name="size"/> + <scroll_list.columns label="Taille (Ko)" width="80" name="size"/> <scroll_list.columns label="URL" name="urls"/> <scroll_list.columns label="Nom de l'objet" name="name"/> <scroll_list.columns label="Endroit" name="location"/> diff --git a/indra/newview/skins/default/xui/fr/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/fr/panel_script_limits_region_memory.xml index 1e5e680c09..9426047ee1 100644 --- a/indra/newview/skins/default/xui/fr/panel_script_limits_region_memory.xml +++ b/indra/newview/skins/default/xui/fr/panel_script_limits_region_memory.xml @@ -13,9 +13,9 @@ Chargement... </text> <scroll_list name="scripts_list"> - <scroll_list.columns label="Taille (Ko)" name="size"/> + <scroll_list.columns label="Taille (Ko)" width="80" name="size"/> <scroll_list.columns label="Nom de l'objet" name="name"/> - <scroll_list.columns label="Propriétaire d'objet" name="owner"/> + <scroll_list.columns label="Propriétaire d'objet" width="140" name="owner"/> <scroll_list.columns label="Parcelle/emplacement" name="location"/> </scroll_list> <button label="Rafraîchir la liste" name="refresh_list_btn"/> diff --git a/indra/newview/skins/default/xui/fr/panel_side_tray.xml b/indra/newview/skins/default/xui/fr/panel_side_tray.xml index 3ad1671921..6329324a23 100644 --- a/indra/newview/skins/default/xui/fr/panel_side_tray.xml +++ b/indra/newview/skins/default/xui/fr/panel_side_tray.xml @@ -2,26 +2,26 @@ <!-- Side tray cannot show background because it is always partially on screen to hold tab buttons. --> <side_tray name="sidebar"> - <sidetray_tab description="Activer/désactiver le panneau latéral." name="sidebar_openclose"/> - <sidetray_tab description="Domicile." name="sidebar_home"> + <sidetray_tab description="Activer/désactiver le panneau latéral." name="sidebar_openclose" tab_title="Activer/désactiver le panneau latéral"/> + <sidetray_tab description="Domicile." name="sidebar_home" tab_title="Accueil"> <panel label="domicile" name="panel_home"/> </sidetray_tab> - <sidetray_tab description="Modifiez votre profil public et vos Favoris." name="sidebar_me"> + <sidetray_tab description="Modifiez votre profil public et vos Favoris." name="sidebar_me" tab_title="Mon profil"> <panel label="Moi" name="panel_me"/> </sidetray_tab> - <sidetray_tab description="Trouvez vos amis, vos contacts et les personnes se trouvant près de vous." name="sidebar_people"> + <sidetray_tab description="Trouvez vos amis, vos contacts et les personnes se trouvant près de vous." name="sidebar_people" tab_title="Personnes"> <panel_container name="panel_container"> <panel label="Profil du groupe" name="panel_group_info_sidetray"/> <panel label="Résidents et objets ignorés" name="panel_block_list_sidetray"/> </panel_container> </sidetray_tab> - <sidetray_tab description="Trouvez de nouveaux lieux à découvrir et les lieux que vous connaissez déjà." label="Lieux" name="sidebar_places"> + <sidetray_tab description="Trouvez de nouveaux lieux à découvrir et les lieux que vous connaissez déjà." label="Lieux" name="sidebar_places" tab_title="Endroits"> <panel label="Lieux" name="panel_places"/> </sidetray_tab> - <sidetray_tab description="Parcourez votre inventaire." name="sidebar_inventory"> + <sidetray_tab description="Parcourez votre inventaire." name="sidebar_inventory" tab_title="Mon inventaire"> <panel label="Modifier l'inventaire" name="sidepanel_inventory"/> </sidetray_tab> - <sidetray_tab description="Modifiez votre apparence actuelle." name="sidebar_appearance"> + <sidetray_tab description="Modifiez votre apparence actuelle." name="sidebar_appearance" tab_title="Mon apparence"> <panel label="Changer d'apparence" name="sidepanel_appearance"/> </sidetray_tab> </side_tray> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index 1888dc1827..c6f73dde21 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -1486,8 +1486,8 @@ <string name="covenant_last_modified"> Dernière modification : </string> - <string name="none_text" value=" (aucun) "/> - <string name="never_text" value=" (jamais) "/> + <string name="none_text" value=" (aucun)"/> + <string name="never_text" value=" (jamais)"/> <string name="GroupOwned"> Propriété du groupe </string> diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml index 0fa20ab1ac..78bc355f4b 100644 --- a/indra/newview/skins/default/xui/ja/floater_about.xml +++ b/indra/newview/skins/default/xui/ja/floater_about.xml @@ -61,7 +61,8 @@ Vivox バージョン: [VIVOX_VERSION] FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). GL Copyright (C) 1999-2004 Brian Paul. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. - jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) + jpeg2000 Copyright (C) 2001, David Taubman, The University of New South + Wales (UNSW) jpeglib Copyright (C) 1991-1998, Thomas G. Lane. ogg/vorbis Copyright (C) 2001, Xiphophorus OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. 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 71a38391cd..b3278a8f9e 100644 --- a/indra/newview/skins/default/xui/ja/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml @@ -97,7 +97,7 @@ <text name="For Sale: Price L$[PRICE]."> 価格: L$[PRICE] (L$[PRICE_PER_SQM]/平方メートル) </text> - <button label="土地を売る" label_selected="土地を販売..." name="Sell Land..."/> + <button label="土地を売る" label_selected="土地を販売..." name="Sell Land..." width="100"/> <text name="For sale to"> 販売先:[BUYER] </text> @@ -107,7 +107,7 @@ <text name="Selling with no objects in parcel."> オブジェクトは販売しない </text> - <button label="土地販売の取り消し" label_selected="土地販売の取り消し" name="Cancel Land Sale"/> + <button label="土地販売の取り消し" label_selected="土地販売の取り消し" name="Cancel Land Sale" width="100"/> <text name="Claimed:"> 取得日時: </text> @@ -126,10 +126,10 @@ <text name="DwellText"> 誤 </text> - <button label="土地の購入" label_selected="土地を購入..." left="130" name="Buy Land..." width="125"/> - <button label="スクリプト情報" name="Scripts..."/> + <button label="土地の購入" label_selected="土地を購入..." left="130" name="Buy Land..." width="100"/> + <button label="スクリプト情報" name="Scripts..." width="100"/> <button label="グループに購入" label_selected="グループ用に購入..." name="Buy For Group..."/> - <button label="入場許可を購入" label_selected="入場許可を購入..." left="130" name="Buy Pass..." tool_tip="この土地への一時的なアクセスを許可します。" width="125"/> + <button label="入場許可を購入" label_selected="入場許可を購入..." left="130" name="Buy Pass..." tool_tip="この土地への一時的なアクセスを許可します。" width="100"/> <button label="土地の放棄" label_selected="土地を放棄..." name="Abandon Land..."/> <button label="土地を取り戻す" label_selected="土地の返還を要求..." name="Reclaim Land..."/> <button label="リンデンセール" label_selected="Lindenセール..." name="Linden Sale..." tool_tip="土地が所有されており、コンテンツが設定されている必要があります。オークションの対象になっていないことも必要条件です。"/> @@ -206,7 +206,7 @@ [MAX]の内[COUNT]([DELETED]を削除) </panel.string> <text name="parcel_object_bonus"> - 地域オブジェクトボーナス要因: [BONUS] + オブジェクトボーナス: [BONUS] </text> <text name="Simulator primitive usage:" width="500"> プリム使用状況: @@ -263,7 +263,7 @@ <text name="Object Owners:" width="150"> オブジェクトのオーナー: </text> - <button label="リスト更新" label_selected="リスト更新" left="146" name="Refresh List" tool_tip="オブジェクトのリストを更新"/> + <button label="リスト更新" label_selected="リスト更新" left="146" name="Refresh List" tool_tip="オブジェクトのリストを更新します"/> <button label="オブジェクトを返却する" label_selected="オブジェクトの返却..." left="256" name="Return objects..."/> <name_list label="カウント" name="owner list"> <name_list.columns label="タイプ" name="type"/> @@ -329,8 +329,8 @@ 土地オプション: </text> <check_box label="安全(ダメージなし)" name="check safe" tool_tip="チェックを入れるとこの土地でのダメージコンバットが無効になり、「安全」に設定されます。 チェックを外すとダメージコンバットが有効になります。"/> - <check_box label="プッシングを制限" name="PushRestrictCheck" tool_tip="スクリプトによるプッシングを制限します。 このオプションを選択することにより、あなたの土地での破壊的行動を妨げることができます。"/> - <check_box label="検索に区画を表示(週 L$30)" name="ShowDirectoryCheck" tool_tip="検索結果でこの区画を表示させる"/> + <check_box label="プッシングを制限" name="PushRestrictCheck" tool_tip="スクリプトによるプッシングを制限します。 このオプションを選択することにより、あなたの土地での破壊的行動を防ぐことができます。"/> + <check_box label="検索に区画を表示(週 L$30)" name="ShowDirectoryCheck" tool_tip="この区画を検索結果に表示します"/> <combo_box name="land category with adult"> <combo_box.item label="全カテゴリ" name="item0"/> <combo_box.item label="Linden所在地" name="item1"/> @@ -364,7 +364,7 @@ <text name="Snapshot:"> スナップショット: </text> - <texture_picker label="" left="116" name="snapshot_ctrl" tool_tip="写真をクリックして選択"/> + <texture_picker label="" name="snapshot_ctrl" tool_tip="写真をクリックして選択"/> <text name="landing_point"> 着地点: [LANDING] </text> @@ -383,7 +383,7 @@ <text name="with media:"> 種類: </text> - <combo_box name="media type" tool_tip="URL が動画、ウェブ・ページ、その他のメディアの場合に指定します"/> + <combo_box name="media type" tool_tip="URL が動画、Webページ、その他のメディアの場合に指定します"/> <text name="at URL:"> ホームページ: </text> @@ -396,20 +396,20 @@ <text name="Description:"> 説明: </text> - <line_editor name="url_description" tool_tip="[再生]/[ロード]ボタンの隣に表示されるテキスト"/> + <line_editor name="url_description" tool_tip="「再生」「ロード」ボタンの隣に表示されるテキストです"/> <text name="Media texture:"> - テクスチャの置き換え: + テクスチャ置き換え: </text> - <texture_picker label="" name="media texture" tool_tip="写真をクリックして選択"/> + <texture_picker label="" name="media texture" tool_tip="写真をクリックして選択" left="120"/> <text name="replace_texture_help" width="290"> このテクスチャを使用するオブジェクトのプレイをクリックすると、ムービーや Web ページを表示します。 テクスチャを変更するにはサムネイルを選択してください。 </text> <check_box label="スケールを自動設定" name="media_auto_scale" tool_tip="このオプションをチェックすると、この区画のコンテンツのスケールが自動的に設定されます。 動作速度と画質が少し低下することがありますが、他のテクスチャーのスケーリングや整列が必要になることはありません。"/> - <text name="media_size" tool_tip="レンダリングするウェブ・メディアのサイズ。デフォルトの 0 のままにします。"> + <text name="media_size" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの 0 のままにします。"> サイズ: </text> - <spinner name="media_size_width" tool_tip="レンダリングするウェブ・メディアのサイズ。デフォルトの 0 のままにします。"/> - <spinner name="media_size_height" tool_tip="レンダリングするウェブ・メディアのサイズ。デフォルトの 0 のままにします。"/> + <spinner name="media_size_width" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの 0 のままにします。"/> + <spinner name="media_size_height" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの 0 のままにします。"/> <text name="pixels"> ピクセル </text> @@ -425,13 +425,13 @@ <text name="Sound:"> サウンド: </text> - <check_box label="ジェスチャーとオブジェクトの音をこの区画だけに限定" name="check sound local"/> + <check_box label="ジェスチャーとオブジェクトの音をこの区画だけに限定する" name="check sound local"/> <text name="Voice settings:"> ボイス: </text> <check_box label="ボイスを有効にする" name="parcel_enable_voice_channel"/> <check_box label="ボイスを有効にする(不動産設定)" name="parcel_enable_voice_channel_is_estate_disabled"/> - <check_box label="この区画でのボイス使用を制限" name="parcel_enable_voice_channel_parcel"/> + <check_box label="ボイスをこの区画に限定する" name="parcel_enable_voice_channel_parcel"/> </panel> <panel label="アクセス" name="land_access_panel"> <panel.string name="access_estate_defined"> @@ -441,16 +441,16 @@ 1つ以上のオプションが、不動産レベルで設定されています。 </panel.string> <text name="Limit access to this parcel to:"> - この区画にアクセス + この区画へのアクセス </text> - <check_box label="パブリックアクセスを許可 [MATURITY]" name="public_access"/> + <check_box label="パブリックアクセスを許可する [MATURITY]" name="public_access"/> <text name="Only Allow"> - 次の住人のアクセス禁止: + 次の住人のアクセスを許可: </text> <check_box label="支払情報登録済 [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="未確認の住人の立入を禁止します。"/> <check_box label="年齢確認 [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="年齢確認を済ませていない住人の立入を禁止します。 詳しい情報は [SUPPORT_SITE] をご覧下さい。"/> - <check_box label="グループ・アクセスを許可:[GROUP]" name="GroupCheck" tool_tip="[一般]タブで、グループを選択してください。"/> - <check_box label="入場許可を販売:" name="PassCheck" tool_tip="この区画への一時的なアクセスを許可"/> + <check_box label="グループのアクセスを許可:[GROUP]" name="GroupCheck" tool_tip="[一般]タブで、グループを選択してください。"/> + <check_box label="入場許可を販売:" name="PassCheck" tool_tip="この区画への一時的なアクセスを許可します"/> <combo_box name="pass_combo"> <combo_box.item label="誰でも" name="Anyone"/> <combo_box.item label="グループ" name="Group"/> @@ -467,7 +467,7 @@ </panel> <panel name="Banned_layout_panel"> <text label="禁止" name="BanCheck"> - 立入禁止された住人 + 立入を禁止された住人 </text> <name_list name="BannedList" tool_tip="(合計 [LISTED] 人、最大 [MAX] 人)"/> <button label="追加" name="add_banned"/> diff --git a/indra/newview/skins/default/xui/ja/floater_animation_preview.xml b/indra/newview/skins/default/xui/ja/floater_animation_preview.xml index c355924f33..4674df8bec 100644 --- a/indra/newview/skins/default/xui/ja/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/ja/floater_animation_preview.xml @@ -114,8 +114,8 @@ </text> <spinner label="優先順位" name="priority" tool_tip="このアニメーションがどのアニメーションを上書きするかを決めます"/> <check_box label="ループ" name="loop_check" tool_tip="このアニメーションをループ再生します"/> - <spinner label="イン(%)" label_width="45" left="70" name="loop_in_point" tool_tip="アニメーションのループ復帰点を設定します" width="100"/> - <spinner label="アウト(%)" label_width="60" left="170" name="loop_out_point" tool_tip="アニメーションのループ終了点を設定します" width="100"/> + <spinner label="イン(%)" label_width="45" left="60" name="loop_in_point" tool_tip="アニメーションのループ復帰点を設定します" width="100"/> + <spinner label="アウト(%)" label_width="50" left="170" name="loop_out_point" tool_tip="アニメーションのループ終了点を設定します" width="100"/> <text name="hand_label"> 手の動き </text> @@ -168,17 +168,17 @@ <combo_box.item label="座る" name="Sitting"/> <combo_box.item label="飛ぶ" name="Flying"/> </combo_box> - <spinner label="フェーズイン(秒)" name="ease_in_time" tool_tip="アニメーションのブレンドイン時間(秒)"/> - <spinner label="フェーズアウト(秒)" name="ease_out_time" tool_tip="アニメーションのブレンドアウト時間(秒)"/> + <spinner label="イーズイン(秒)" name="ease_in_time" tool_tip="アニメーションのブレンドイン時間(秒)"/> + <spinner label="イーズアウト(秒)" name="ease_out_time" tool_tip="アニメーションのブレンドアウト時間(秒)"/> <button label="" name="play_btn" tool_tip="アニメーションを再生する"/> <button name="pause_btn" tool_tip="アニメーションを一時停止する"/> <button label="" name="stop_btn" tool_tip="アニメーションの再生を停止"/> <slider label="" name="playback_slider"/> <text name="bad_animation_text"> - アニメーション・ファイルを読み込めません。 + アニメーションファイルを読み込めません。 Poser 4からエクスポートされたBVHファイルを推奨します。 </text> - <button label="アップロードL$[AMOUNT]" name="ok_btn"/> + <button label="アップロードL$[AMOUNT]" name="ok_btn"/> <button label="取り消し" name="cancel_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml index a199a10823..0ea913e66a 100644 --- a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml @@ -3,13 +3,13 @@ <floater.string name="InvalidAvatar"> 無効なアバター </floater.string> - <text name="label"> + <text name="label" width="100"> ベークドテクスチャ </text> <text name="composite_label" width="128"> - 合成テクスチャー + 合成テクスチャ </text> - <button label="テクスチャID一覧をコンソールに書き込む" label_selected="捨てる" name="Dump"/> + <button label="テクスチャID一覧をコンソールに書き込む" label_selected="捨てる" name="Dump" width="200"/> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> <texture_picker label="髪" name="hair-baked"/> diff --git a/indra/newview/skins/default/xui/ja/floater_build_options.xml b/indra/newview/skins/default/xui/ja/floater_build_options.xml index 8d3dba3883..9fd788d9cb 100644 --- a/indra/newview/skins/default/xui/ja/floater_build_options.xml +++ b/indra/newview/skins/default/xui/ja/floater_build_options.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="build options floater" title="グリッドオプション"> <spinner label="グリッドユニット(メートル)" name="GridResolution"/> - <spinner label="グリッド範囲(メートル)" name="GridDrawSize"/> + <spinner label="グリッド゙範囲(メートル)" name="GridDrawSize"/> <check_box label="サブユニットにスナップ" name="GridSubUnit"/> <check_box label="横断面を表示" name="GridCrossSection"/> <text name="grid_opacity_label" tool_tip="グリッドの透明度"> diff --git a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml index fbbbd85890..be24960c6e 100644 --- a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floaterbulkperms" title="コンテンツ権限の編集"> +<floater name="floaterbulkperms" title="中身の権限の編集"> <floater.string name="nothing_to_modify_text"> - 選択した中に編集できないコンテンツが含まれています + 選択した中に編集できないものが含まれています </floater.string> <floater.string name="status_text"> [NAME]に権限を設定中です。 @@ -28,12 +28,12 @@ <icon name="icon_script" tool_tip="スクリプト"/> <check_box label="サウンド" name="check_sound"/> <icon name="icon_sound" tool_tip="サウンド"/> - <check_box label="テクスチャー" name="check_texture"/> + <check_box label="テクスチャ" name="check_texture"/> <icon name="icon_texture" tool_tip="テクスチャ"/> <button label="すべてに √" label_selected="全て" name="check_all"/> <button label="クリア" label_selected="なし" name="check_none"/> <text name="newperms"> - 新しいコンテンツ権限 + 新しい中身の権限 </text> <text name="GroupLabel"> グループ: @@ -43,7 +43,7 @@ 全員: </text> <check_box label="コピー" name="everyone_copy"/> - <text name="NextOwnerLabel"> + <text name="NextOwnerLabel" left="160"> 次の所有者: </text> <check_box label="修正" name="next_owner_modify"/> diff --git a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml index 53b7f24141..69d4faf5b8 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml @@ -1,22 +1,22 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater min_width="340" name="floater_buy_contents" title="コンテンツの購入" width="340"> +<floater min_width="340" name="floater_buy_contents" title="中身の購入" width="340"> <text name="contains_text" width="320"> - [NAME]の内容: + [NAME]の中身: </text> <scroll_list name="item_list" width="310"/> <text name="buy_text" width="320"> - コンテンツを[NAME]からL$[AMOUNT]で購入しますか? + 中身を[NAME]からL$[AMOUNT]で購入しますか? </text> <button label="取り消し" label_selected="取り消し" name="cancel_btn" width="73"/> <button label="購入" label_selected="購入" left_delta="-77" name="buy_btn" width="73"/> <check_box label="今すぐ服を着る" left_delta="-125" name="wear_check"/> <text name="no_copy_text"> - (コピーなし) + (コピー不可) </text> <text name="no_modify_text"> - (修正なし) + (修正不可) </text> <text name="no_transfer_text"> - (転送なし) + (再販・プレゼント不可) </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml index 357b3682ba..32de533dc4 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml @@ -40,7 +40,7 @@ [NAME] L$ [PRICE] </text> <text name="total_label"> - 新しい残高 + 購入後の残高 </text> <text name="total_amount"> L$ [AMT] diff --git a/indra/newview/skins/default/xui/ja/floater_buy_land.xml b/indra/newview/skins/default/xui/ja/floater_buy_land.xml index 13b43d1257..f332c3d988 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_land.xml @@ -27,10 +27,10 @@ <text name="resellable_changeable_label"> この地域で購入した土地: </text> - <text name="resellable_clause"> + <text name="resellable_clause" left="460"> 再販できる場合とできない場合があります。 </text> - <text name="changeable_clause"> + <text name="changeable_clause" left="460"> 統合または再分割できる場合とできない場合があります。 </text> <text name="covenant_text"> @@ -67,12 +67,12 @@ <text name="error_message"> 何か変です </text> - <button label="ウェブ・サイトに移動" name="error_web"/> + <button label="Webサイトに移動" name="error_web"/> <text name="account_action"> - プレミアム・メンバーにアップグレード + プレミアム会員にアップグレード </text> <text name="account_reason"> - 土地を保有できるのはプレミアム・メンバーだけです + 土地を保有できるのはプレミアム会員だけです </text> <combo_box name="account_level"> <combo_box.item label="月額 9.95米ドル、 月払い" name="US$9.95/month,billedmonthly"/> @@ -114,10 +114,10 @@ 再販不可能 </string> <string name="can_change"> - 統合/再分割可能 + 統合・再分割可能 </string> <string name="can_not_change"> - 統合/再分割不可能 + 統合・再分割不可能 </string> <string name="cant_buy_for_group"> あなたはアクティブなグループ用の土地購入を許可されていません @@ -127,7 +127,7 @@ </string> <string name="multiple_parcels_selected"> 複数の異なった区画を選択しました。 -これより小さなエリアを選択してください。 +これより小さな範囲を選択してください。 </string> <string name="no_permission"> あなたはアクティブなグループ用の土地購入を許可されていません @@ -149,7 +149,7 @@ </string> <string name="not_owned_by_you"> 他の使用者に所有された土地が選択されています。 -これより小さなエリアを選択してください。 +これより小さな範囲を選択してください。 </string> <string name="processing"> 購入処理中... @@ -203,7 +203,7 @@ オブジェクト [AMOUNT2] 個サポート </string> <string name="sold_with_objects"> - オブジェクトと共に販売済み + オブジェクト込みで販売 </string> <string name="sold_without_objects"> オブジェクトは含まれていません diff --git a/indra/newview/skins/default/xui/ja/floater_buy_object.xml b/indra/newview/skins/default/xui/ja/floater_buy_object.xml index f807e91573..7a5b7dc140 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_object.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_object.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="contents" title="オブジェクトのコピーを購入"> <text name="contents_text"> - 内容: + 中身: </text> <text name="buy_text"> [NAME]からL$[AMOUNT]で購入しますか? @@ -12,15 +12,15 @@ 購入 </text> <string name="title_buy_copy_text"> - 次のものを買う + 次のものを購入 </string> <text name="no_copy_text"> - (コピーなし) + (コピー不可) </text> <text name="no_modify_text"> - (修正なし) + (修正不可) </text> <text name="no_transfer_text"> - (転送なし) + (再販・プレゼント不可) </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_camera.xml b/indra/newview/skins/default/xui/ja/floater_camera.xml index be118273fa..3730bcd385 100644 --- a/indra/newview/skins/default/xui/ja/floater_camera.xml +++ b/indra/newview/skins/default/xui/ja/floater_camera.xml @@ -11,7 +11,7 @@ </floater.string> <panel name="controls"> <joystick_track name="cam_track_stick" tool_tip="カメラを上下左右に動かします"/> - <panel name="zoom" tool_tip="向いてる方法にカメラをズーム"> + <panel name="zoom" tool_tip="向いている方法にカメラをズーム"> <slider_bar name="zoom_slider" tool_tip="向いている方向にカメラをズーム"/> </panel> <joystick_rotate name="cam_rotate_stick" tool_tip="自分を軸にカメラを回す"/> diff --git a/indra/newview/skins/default/xui/ja/floater_color_picker.xml b/indra/newview/skins/default/xui/ja/floater_color_picker.xml index a98da4b8ba..dc87d27a15 100644 --- a/indra/newview/skins/default/xui/ja/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/ja/floater_color_picker.xml @@ -18,7 +18,7 @@ <text name="l_val_text"> 輝度: </text> - <check_box label="今すぐ適用" name="apply_immediate"/> + <check_box label="すぐ適用" name="apply_immediate"/> <button label="" label_selected="" name="color_pipette"/> <button label="取り消し" label_selected="取り消し" name="cancel_btn"/> <button label="OK" label_selected="OK" name="select_btn"/> diff --git a/indra/newview/skins/default/xui/ja/floater_critical.xml b/indra/newview/skins/default/xui/ja/floater_critical.xml index 39f6ee8e3f..f69c24622a 100644 --- a/indra/newview/skins/default/xui/ja/floater_critical.xml +++ b/indra/newview/skins/default/xui/ja/floater_critical.xml @@ -3,10 +3,10 @@ <button label="続行" label_selected="続行" name="Continue" /> <button label="取り消し" label_selected="取り消し" name="Cancel" /> <text name="tos_title"> - クリティカル・メッセージ + クリティカルメッセージ </text> <text name="tos_heading"> - 次のメッセージを注意深くお読みください。 + 次のメッセージを注意してよくお読みください。 </text> <text_editor name="tos_text"> TOS_TEXT diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml index 7d1809f1ed..27ce1adede 100644 --- a/indra/newview/skins/default/xui/ja/floater_customize.xml +++ b/indra/newview/skins/default/xui/ja/floater_customize.xml @@ -50,7 +50,7 @@ <panel label="スキン" name="Skin"> <button label="スキンの色" label_selected="スキンの色" name="Skin Color"/> <button label="顔の細部" label_selected="顔の細部" name="Face Detail"/> - <button label="メイクアップ" label_selected="メイクアップ" name="Makeup"/> + <button label="メイク" label_selected="メイク" name="Makeup"/> <button label="身体細部" label_selected="身体細部" name="Body Detail"/> <text name="title"> [DESC] @@ -186,10 +186,10 @@ シャツ: </text> </panel> - <panel label="ズボン" name="Pants"> + <panel label="パンツ" name="Pants"> <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/> <color_swatch label="色/明暗" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/> - <button label="新しいズボンを作成" label_selected="新しいズボンを作成" name="Create New"/> + <button label="新しいパンツを作成" label_selected="新しいパンツを作成" name="Create New"/> <button label="取り外す" label_selected="取り外す" name="Take Off"/> <button label="保存" label_selected="保存" name="Save"/> <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/> @@ -216,7 +216,7 @@ あなたはこの服の修正を許されていません。 </text> <text name="Item Action Label"> - ズボン: + パンツ: </text> </panel> <panel label="靴" name="Shoes"> diff --git a/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml index 2d8b54cdd5..3bd5ed2837 100644 --- a/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml @@ -84,10 +84,10 @@ <text name="DayCycleText3"> プレビュー: </text> - <button label="再生" label_selected="再生" name="WLAnimSky" /> + <button label="再生" label_selected="再生" name="WLAnimSky" left_delta="70"/> <button label="停止!" label_selected="停止" name="WLStopAnimSky" /> <button label="不動産の時刻を使用" - label_selected="不動産の時刻に変更" name="WLUseLindenTime" /> + label_selected="不動産の時刻に変更" name="WLUseLindenTime" width="140"/> <button label="デイ・テストを保存" label_selected="デイ・テストを保存" name="WLSaveDayCycle" /> <button label="デイ・テストをロード" diff --git a/indra/newview/skins/default/xui/ja/floater_god_tools.xml b/indra/newview/skins/default/xui/ja/floater_god_tools.xml index 18380bddc2..075cde8dec 100644 --- a/indra/newview/skins/default/xui/ja/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_god_tools.xml @@ -2,7 +2,7 @@ <floater name="godtools floater" title="ゴッド・ツール"> <tab_container name="GodTools Tabs"> <panel label="グリッド" name="grid"> - <button label="すべてのユーザーを追い出す" label_selected="すべてのユーザーを追い出す" name="Kick all users"/> + <button label="すべてのユーザーを追い出す" label_selected="すべてのユーザーを追い出す" name="Kick all users" width="160"/> <button label="この地域の地図の表示キャッシュを消去" label_selected="この地域の地図の表示キャッシュを消去" name="Flush This Region's Map Visibility Caches"/> </panel> <panel label="地域" name="region"> @@ -33,13 +33,15 @@ <line_editor name="gridposx" tool_tip="これは、この地域のグリッドxの位置です。"/> <line_editor name="gridposy" tool_tip="これは、この地域のグリッドyの位置です。"/> <text name="Redirect to Grid: "> - グリッドにリダイレクト: + グリッドにリダ +イレクト: </text> <text name="billable factor text"> 請求率: </text> <text name="land cost text"> - 平方メートル当たりL$: + 平方メートル当 +たりL$: </text> <button label="更新" label_selected="更新" name="Refresh" tool_tip="上記の情報を更新するには、ここをクリックします。"/> <button label="適用" label_selected="適用" name="Apply" tool_tip="上記の変更を適用するには、ここをクリックします。"/> diff --git a/indra/newview/skins/default/xui/ja/floater_image_preview.xml b/indra/newview/skins/default/xui/ja/floater_image_preview.xml index 57ed139e54..2e57acf0d2 100644 --- a/indra/newview/skins/default/xui/ja/floater_image_preview.xml +++ b/indra/newview/skins/default/xui/ja/floater_image_preview.xml @@ -7,7 +7,7 @@ 説明: </text> <text name="preview_label"> - イメージのプレビュー: + プレビュー: </text> <combo_box label="服の種類" name="clothing_type_combo"> <combo_box.item label="画像" name="Image"/> @@ -26,7 +26,7 @@ 24bitTarga(.tga)でイメージを保存してください。 </text> - <check_box label="ロスのない圧縮を使用" name="lossless_check"/> + <check_box label="可逆圧縮" name="lossless_check"/> <button label="取り消し" name="cancel_btn"/> - <button label="アップロードL$[AMOUNT]" name="ok_btn"/> + <button label="アップロード゙L$[AMOUNT]" name="ok_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_inspect.xml b/indra/newview/skins/default/xui/ja/floater_inspect.xml index b7c657c2f9..b3825c0b7f 100644 --- a/indra/newview/skins/default/xui/ja/floater_inspect.xml +++ b/indra/newview/skins/default/xui/ja/floater_inspect.xml @@ -3,12 +3,12 @@ <floater.string name="timeStamp"> [year,datetime,local] [mth,datetime,local] [day,datetime,local] [wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] </floater.string> - <scroll_list name="object_list" tool_tip="このリストからオブジェクトを選択し、この世界で強調表示します。"> - <scroll_list.columns label="オブジェクト名" name="object_name"/> + <scroll_list name="object_list" tool_tip="リストからオブジェクトを選択し、インワールドで強調表示します。"> + <scroll_list.columns label="名前" name="object_name"/> <scroll_list.columns label="所有者名" name="owner_name"/> <scroll_list.columns label="制作者名" name="creator_name"/> <scroll_list.columns label="作成日" name="creation_date"/> </scroll_list> - <button label="所有者のプロフィールを表示..." name="button owner" tool_tip="選択されたオブジェクトの所有者のプロフィールを見る"/> - <button label="制作者のプロフィールを表示..." name="button creator" tool_tip="選択されたオブジェクトの制作者のプロフィールを見る"/> + <button label="所有者のプロフィールを表示..." name="button owner" tool_tip="選択したオブジェクトの所有者のプロフィールを表示します" width="180"/> + <button label="制作者のプロフィールを表示..." name="button creator" tool_tip="選択したオブジェクトの制作者のプロフィールを表示します" width="180"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_inventory.xml b/indra/newview/skins/default/xui/ja/floater_inventory.xml index 7cf16b8ff2..b113fde94a 100644 --- a/indra/newview/skins/default/xui/ja/floater_inventory.xml +++ b/indra/newview/skins/default/xui/ja/floater_inventory.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Inventory" title="持ち物"> <floater.string name="Title"> - インベントリ + 持ち物 </floater.string> <floater.string name="TitleFetching"> 持ち物 ( [ITEM_COUNT] アイテムを取得中...) [FILTER] diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml index 86bb5dcf62..47a63e5e20 100644 --- a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml @@ -9,7 +9,7 @@ <check_box label="オブジェクト" name="check_object"/> <check_box label="スクリプト" name="check_script"/> <check_box label="サウンド" name="check_sound"/> - <check_box label="テクスチャー" name="check_texture"/> + <check_box label="テクスチャ" name="check_texture"/> <check_box label="スナップショット" name="check_snapshot"/> <button label="すべて" label_selected="すべて" name="All"/> <button label="なし" label_selected="なし" name="None"/> diff --git a/indra/newview/skins/default/xui/ja/floater_joystick.xml b/indra/newview/skins/default/xui/ja/floater_joystick.xml index 9d91fe8db9..65eeebe4ed 100644 --- a/indra/newview/skins/default/xui/ja/floater_joystick.xml +++ b/indra/newview/skins/default/xui/ja/floater_joystick.xml @@ -71,7 +71,7 @@ <spinner left="135" name="AvatarAxisDeadZone0" width="50"/> <spinner left="205" name="BuildAxisDeadZone0" width="50"/> <spinner left="275" name="FlycamAxisDeadZone0" width="50"/> - <text left="0" name="PitchDeadZone" width="135"> + <text left="0" name="PitchDeadZone" width="125"> ピッチ・デッド・ゾーン </text> <spinner left="135" name="AvatarAxisDeadZone4" width="50"/> @@ -83,7 +83,7 @@ <spinner left="135" name="AvatarAxisDeadZone5" width="50"/> <spinner left="205" name="BuildAxisDeadZone5" width="50"/> <spinner left="275" name="FlycamAxisDeadZone5" width="50"/> - <text left="0" name="RollDeadZone" width="135"> + <text left="0" name="RollDeadZone" width="125"> ロール・デッド・ゾーン </text> <spinner left="205" name="BuildAxisDeadZone3" width="50"/> diff --git a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml index 474bd32cb0..aca916f22f 100644 --- a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml @@ -7,17 +7,17 @@ <column label="面積" name="area"/> <column label="" name="hidden"/> </scroll_list> - <button label="テレポート" label_selected="テレポート" name="Teleport" tool_tip="この土地の中心にテレポート"/> + <button label="テレポート" label_selected="テレポート" name="Teleport" tool_tip="この土地の中心にテレポートします"/> <button label="地図" label_selected="地図" name="Show on Map" tool_tip="この土地を世界地図に表示します"/> <text name="contrib_label"> - あなたのグループへの貢献: + 所属グループへの貢献: </text> <scroll_list name="grant list"> <column label="グループ名" name="group"/> <column label="面積" name="area"/> </scroll_list> <text name="allowed_label"> - 現在の支払いプランでの許可された保有地: + 現在の支払いプランで許可された保有地: </text> <text name="allowed_text"> [AREA] 平方メートル @@ -29,7 +29,7 @@ [AREA] 平方メートル </text> <text name="available_label"> - 土地購入可: + 購入可能な土地: </text> <text name="available_text"> [AREA] 平方メートル diff --git a/indra/newview/skins/default/xui/ja/floater_map.xml b/indra/newview/skins/default/xui/ja/floater_map.xml index f3cba7e674..78af3cec07 100644 --- a/indra/newview/skins/default/xui/ja/floater_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_map.xml @@ -25,7 +25,7 @@ 北西 </floater.string> <floater.string name="ToolTipMsg"> - [AGENT][REGION] (ダブルクリックで地図を開く) + [AGENT][REGION] (ダブルクリックで地図を開きます) </floater.string> <text label="北" name="floater_map_north" text="北"> 北 diff --git a/indra/newview/skins/default/xui/ja/floater_media_browser.xml b/indra/newview/skins/default/xui/ja/floater_media_browser.xml index 4f67523eec..c4731b73a3 100644 --- a/indra/newview/skins/default/xui/ja/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/ja/floater_media_browser.xml @@ -22,8 +22,8 @@ <button label="現在のページを区画に送る" name="assign"/> </layout_panel> <layout_panel name="external_controls"> - <button label="外部ウェブ・ブラウザで開く" name="open_browser"/> - <check_box label="常に外部のウェブ・ブラウザで開く" name="open_always"/> + <button label="外部Webブラウザで開く" name="open_browser"/> + <check_box label="常に外部のWebブラウザで開く" name="open_always"/> <button label="閉じる" name="close"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml index 6167b6db91..f48bb94e32 100644 --- a/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml +++ b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="MemLeak" title="メモリリークのシミュレート"> - <spinner label="リークスピード(1フレームごとのバイト数):" label_width="244" name="leak_speed"/> - <spinner label="リークした最大メモリ数(MB):" label_width="244" name="max_leak"/> + <spinner label="リーク速度(1フレームごとのバイト数):" label_width="244" name="leak_speed"/> + <spinner label="最大メモリリーク(MB):" label_width="244" name="max_leak"/> <text name="total_leaked_label"> - 現在のリークメモリサイズ: [SIZE] KB + 現在のメモリリーク: [SIZE] KB </text> <text name="note_label_1"> [NOTE1] diff --git a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml b/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml index adbb8596d3..98cda25a81 100644 --- a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml +++ b/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml @@ -5,11 +5,11 @@ <check_box label="グループで共同管理" name="share_with_group"/> <check_box label="誰に対してもコピーを許可" name="everyone_copy"/> <text name="NextOwnerLabel"> - 次のオーナーができる操作: + 次の所有者ができる操作: </text> <check_box label="修正" name="next_owner_modify"/> <check_box label="コピー" name="next_owner_copy"/> - <check_box label="再販/プレゼント" name="next_owner_transfer"/> + <check_box label="再販・プレゼント" name="next_owner_transfer"/> </panel> <button label="OK" label_selected="OK" name="ok"/> <button label="取り消し" label_selected="取り消し" name="cancel"/> diff --git a/indra/newview/skins/default/xui/ja/floater_postcard.xml b/indra/newview/skins/default/xui/ja/floater_postcard.xml index b2ca059ccd..5a2b047fe0 100644 --- a/indra/newview/skins/default/xui/ja/floater_postcard.xml +++ b/indra/newview/skins/default/xui/ja/floater_postcard.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Postcard" title="スナップショットをメール"> <text name="to_label"> - 住人のEメール: + 住人のメール: </text> <line_editor left="145" name="to_form" width="125"/> <text name="from_label"> - あなたのEメール: + あなたのメール: </text> <line_editor left="145" name="from_form" width="125"/> <text name="name_label"> @@ -15,14 +15,14 @@ <text name="subject_label"> 件名: </text> - <line_editor label="件名をここに入力" left="145" name="subject_form" width="125"/> + <line_editor label="件名を入力してください" left="145" name="subject_form" width="125"/> <text name="msg_label"> メッセージ: </text> <text_editor bottom_delta="-120" height="110" name="msg_form"> メッセージをここに入力してください。 </text_editor> - <check_box label="ウェブ上で公開" name="allow_publish_check" tool_tip="このポストカードをウェブ上で公開します。"/> + <check_box label="Web上で公開" name="allow_publish_check" tool_tip="このポストカードをWeb上で公開します。"/> <check_box label="成人向けコンテンツ" name="mature_check" tool_tip="このポストカードには成人向け内容が含まれます。"/> <button label="?" left="300" name="publish_help_btn"/> <text name="fine_print"> diff --git a/indra/newview/skins/default/xui/ja/floater_preferences.xml b/indra/newview/skins/default/xui/ja/floater_preferences.xml index 1493219b83..e2893d5eab 100644 --- a/indra/newview/skins/default/xui/ja/floater_preferences.xml +++ b/indra/newview/skins/default/xui/ja/floater_preferences.xml @@ -8,7 +8,7 @@ <panel label="プライバシー" name="im"/> <panel label="サウンド" name="audio"/> <panel label="チャット" name="chat"/> - <panel label="通知" name="msgs"/> + <panel label="メッセージ" name="msgs"/> <panel label="セットアップ" name="input"/> <panel label="詳細" name="advanced1"/> </tab_container> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_animation.xml b/indra/newview/skins/default/xui/ja/floater_preview_animation.xml index fb2f2c7433..2c0d6a0097 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_animation.xml @@ -6,6 +6,6 @@ <text name="desc txt"> 説明: </text> - <button label="世界で再生" label_selected="停止" name="Anim play btn" tool_tip="他人に見えるように再生"/> - <button label="ローカルに再生" label_selected="停止" name="Anim audition btn" tool_tip="自分だけが見えるように再生"/> + <button label="ワールド再生" label_selected="停止" name="Anim play btn" tool_tip="他人にも見えるように再生します"/> + <button label="ローカル再生" label_selected="停止" name="Anim audition btn" tool_tip="自分だけが見えるように再生します"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml index a378700d15..8a0aea717c 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml @@ -38,7 +38,7 @@ </text> <line_editor name="replace_editor" tool_tip="トリガー・ワードをこれらの単語に置き換えます。 たとえば、トリガー「hello」を「Howdy」に置換すると、「I wanted to say hello」というチャット文が「I wanted to say howdy」に変わり、ジェスチャーにも置換が反映されます。"/> <text name="key_label"> - ショートカット・キー: + ショートカット: </text> <combo_box label="なし" left="160" name="modifier_combo"/> <combo_box label="なし" name="key_combo"/> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture_shortcut.xml index 596699d6c1..e96a43d0c1 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_gesture_shortcut.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_gesture_shortcut.xml @@ -6,8 +6,8 @@ <text name="key_label"> キーボード: </text> - <combo_box label="なし" name="modifier_combo"/> - <combo_box label="なし" name="key_combo"/> + <combo_box label="なし" name="modifier_combo" width="60"/> + <combo_box label="なし" name="key_combo" width="60"/> <text name="replace_text" tool_tip="これらの単語にトリガーとなる単語を置き換えます。 例えば、「howdy」と「hello」を置き換えると、「I wanted to say hello」というチャットは、ジェスチャーを交えながらの「I wanted to say howdy」に変わります。"> 置き換え: </text> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_sound.xml b/indra/newview/skins/default/xui/ja/floater_preview_sound.xml index d3c06cbef4..dc334dfc1f 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_sound.xml @@ -6,6 +6,6 @@ <text name="desc txt"> 説明: </text> - <button label="世界で再生" label_selected="世界で再生" name="Sound play btn" tool_tip="他人が聞こえるように再生"/> - <button label="ローカルに再生" label_selected="ローカルに再生" name="Sound audition btn" tool_tip="自分だけが聞こえるように再生"/> + <button label="ワールド再生" label_selected="ワールド再生" name="Sound play btn" tool_tip="他人にも聞こえるように再生します"/> + <button label="ローカル再生" label_selected="ローカル再生" name="Sound audition btn" tool_tip="自分だけが聞こえるように再生します"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml index ca6faf59c2..c66f307f23 100644 --- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml @@ -25,7 +25,7 @@ <text name="select_object_label"> ボタンをクリックしてから、悪意のあるオブジェクトをクリック: </text> - <button label="" label_selected="" name="pick_btn" tool_tip="オブジェクト・ピッカー - この報告の主題となるオブジェクトを特定"/> + <button label="" label_selected="" name="pick_btn" tool_tip="オブジェクトピッカー - 報告対象のオブジェクトを選択してください"/> <text name="object_name_label"> オブジェクト: </text> @@ -33,13 +33,13 @@ Consetetur Sadipscing </text> <text name="owner_name_label"> - オーナー: + 所有者: </text> <text name="owner_name"> Hendrerit Vulputate Kamawashi Longname </text> - <combo_box name="category_combo" tool_tip="カテゴリー -- この報告に最も適したカテゴリーを選択してください"> - <combo_box.item label="カテゴリーを選択" name="Select_category"/> + <combo_box name="category_combo" tool_tip="カテゴリ -- この報告に最も適したカテゴリを選択してください"> + <combo_box.item label="カテゴリを選択してください" name="Select_category"/> <combo_box.item label="年齢>年齢偽証" name="Age__Age_play"/> <combo_box.item label="年齢 > 成人の住人が Teen Second Life にいる" name="Age__Adult_resident_on_Teen_Second_Life"/> <combo_box.item label="年齢 > 未成年の住人がTeen Second Life の外にいる" name="Age__Underage_resident_outside_of_Teen_Second_Life"/> @@ -92,7 +92,7 @@ <text name="dscr_title"> 詳細: </text> - <text name="bug_aviso"> + <text name="bug_aviso" width="210"> できるだけ具体的に詳しく記入してください。 </text> <text name="incomplete_title"> diff --git a/indra/newview/skins/default/xui/ja/floater_sell_land.xml b/indra/newview/skins/default/xui/ja/floater_sell_land.xml index b06b16bbb3..1e884af5f2 100644 --- a/indra/newview/skins/default/xui/ja/floater_sell_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_sell_land.xml @@ -36,7 +36,7 @@ 2. 特定の人に販売: </text> <text name="sell_to_text" right="-6"> - 販売先の指定なしか、特定の人に販売するか選択してください。 + 販売先の指定なしか、特定の人に販売するかを選択してください。 </text> <combo_box name="sell_to"> <combo_box.item label="- 1つ選択 -" name="--selectone--"/> diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml index 6c84de9b19..4ad54ec7ab 100644 --- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml @@ -28,21 +28,21 @@ 形式 </text> <combo_box label="解像度" name="postcard_size_combo"> - <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> + <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> <combo_box.item label="640x480" name="640x480"/> <combo_box.item label="800x600" name="800x600"/> <combo_box.item label="1024x768" name="1024x768"/> <combo_box.item label="カスタム" name="Custom"/> </combo_box> <combo_box label="解像度" name="texture_size_combo"> - <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> + <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> <combo_box.item label="小(128x128)" name="Small(128x128)"/> <combo_box.item label="中(256x256)" name="Medium(256x256)"/> <combo_box.item label="大(512x512)" name="Large(512x512)"/> <combo_box.item label="カスタム" name="Custom"/> </combo_box> <combo_box label="解像度" name="local_size_combo"> - <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> + <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> <combo_box.item label="320x240" name="320x240"/> <combo_box.item label="640x480" name="640x480"/> <combo_box.item label="800x600" name="800x600"/> @@ -61,7 +61,7 @@ <check_box label="縦横比の固定" name="keep_aspect_check"/> <slider label="画質" name="image_quality_slider"/> <text name="layer_type_label"> - キャプチャ: + キャプチャ: </text> <combo_box label="画像レイヤー" name="layer_types"> <combo_box.item label="色" name="Colors"/> diff --git a/indra/newview/skins/default/xui/ja/floater_sound_preview.xml b/indra/newview/skins/default/xui/ja/floater_sound_preview.xml index a24ba6e075..7d83309c46 100644 --- a/indra/newview/skins/default/xui/ja/floater_sound_preview.xml +++ b/indra/newview/skins/default/xui/ja/floater_sound_preview.xml @@ -9,7 +9,7 @@ <button label="取り消し" label_selected="取り消し" name="cancel_btn"/> <button label="アップロード (L$[AMOUNT])" label_selected="アップロード (L$[AMOUNT])" name="ok_btn"/> <text name="text"> - ビットレート(kbps): + ビットレート(kbps): </text> <radio_group name="bitrate"> <radio_item label="32" name="32"/> diff --git a/indra/newview/skins/default/xui/ja/floater_telehub.xml b/indra/newview/skins/default/xui/ja/floater_telehub.xml index bdb92c8e30..7318083771 100644 --- a/indra/newview/skins/default/xui/ja/floater_telehub.xml +++ b/indra/newview/skins/default/xui/ja/floater_telehub.xml @@ -10,7 +10,7 @@ 「切断」をクリックして削除します。 </text> <text name="help_text_not_connected"> - 物体を選択し「テレハブの接続」をクリックする + 物体を選択して「テレハブの接続」をクリックしてください。 </text> <button label="テレハブの接続" name="connect_btn"/> <button label="切断" name="disconnect_btn"/> @@ -20,9 +20,6 @@ <button label="出現位置を追加" name="add_spawn_point_btn"/> <button label="出現地点を削除" name="remove_spawn_point_btn"/> <text name="spawn_point_help"> - オブジェクトを選び、「出現地点を追加」をクリックして位置を指定します。 -そうするとそのオブジェクトを移動させたり削除できます。 -位置はテレハブセンターに関連します。 -リストのアイテムを選択してインワールドでハイライトさせます。 + オブジェクトを選び、「出現地点を追加」をクリックして位置を指定します。そうするとそのオブジェクトを移動させたり削除できます。位置はテレハブセンターに関連します。リストのアイテムを選択してインワールドでハイライトさせます。 </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml index 1500808e60..399cffcce5 100644 --- a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="texture picker" title="選択: テクスチャ"> +<floater name="texture picker" title="テクスチャの選択"> <string name="choose_picture"> クリックして写真を選択 </string> @@ -9,12 +9,12 @@ <text name="unknown"> サイズ: [DIMENSIONS] </text> - <button label="デフォルト" label_selected="デフォルト" name="Default"/> + <button label="デフォルト" label_selected="デフォルト" name="Default"/> <button label="なし" label_selected="なし" name="None"/> <button label="ブランク" label_selected="ブランク" name="Blank"/> <check_box label="フォルダを表示" name="show_folders_check"/> <search_editor label="テクスチャをフィルター" name="inventory search editor"/> - <check_box label="今すぐ適用" name="apply_immediate_check"/> + <check_box label="すぐ適用" name="apply_immediate_check"/> <button label="" label_selected="" name="Pipette"/> <button label="取り消し" label_selected="取り消し" name="Cancel"/> <button label="OK" label_selected="OK" name="Select"/> diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml index 52d3537d9a..456e30c2b4 100644 --- a/indra/newview/skins/default/xui/ja/floater_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_tools.xml @@ -171,7 +171,7 @@ Esbee Linden </text> <text name="Owner:"> - オーナー: + 所有者: </text> <text name="Owner Name"> Erica Linden @@ -197,7 +197,7 @@ <check_box label="販売対象:" name="checkbox for sale"/> <combo_box name="sale type"> <combo_box.item label="コピー" name="Copy"/> - <combo_box.item label="コンテンツ" name="Contents"/> + <combo_box.item label="中身" name="Contents"/> <combo_box.item label="オリジナル" name="Original"/> </combo_box> <spinner label="価格: L$" name="Edit Cost"/> @@ -239,9 +239,9 @@ </panel> <panel label="形状" name="Object"> <check_box label="ロック済み" name="checkbox locked" tool_tip="オブジェクトの移動と削除を禁止します。 この機能を使うと、構築中に意図しない編集を防ぐことができます。"/> - <check_box label="物理" name="Physical Checkbox Ctrl" tool_tip="オブジェクトに対する重力の作用と影響を有効にする"/> + <check_box label="物理" name="Physical Checkbox Ctrl" tool_tip="オブジェクトに対する重力の作用と影響を有効にします"/> <check_box label="臨時" name="Temporary Checkbox Ctrl" tool_tip="制作後 1 分でオブジェクトは削除されます"/> - <check_box label="ファントム" name="Phantom Checkbox Ctrl" tool_tip="オブジェクト同士の衝突またはオブジェクトとアバターの衝突を回避"/> + <check_box label="ファントム" name="Phantom Checkbox Ctrl" tool_tip="オブジェクト同士の衝突またはオブジェクトとアバターの衝突を回避します"/> <text name="label position"> 位置(メートル) </text> @@ -280,7 +280,7 @@ <combo_box.item label="ゴム" name="Rubber"/> </combo_box> <text name="text cut"> - パスカット (始点/終点) + パスカット (始点・終点) </text> <spinner label="B" name="cut begin"/> <spinner label="E" name="cut end"/> @@ -300,7 +300,7 @@ <combo_box.item label="三角形" name="Triangle"/> </combo_box> <text name="text twist"> - ひねり (始点/終点) + ひねり (始点・終点) </text> <spinner label="B" name="Twist Begin"/> <spinner label="E" name="Twist End"/> @@ -318,13 +318,13 @@ <spinner label="X" name="Shear X"/> <spinner label="Y" name="Shear Y"/> <text name="advanced_cut"> - プロフィールカット (始点/終点) + プロフィールカット (始点・終点) </text> <text name="advanced_dimple"> - くぼみ (始点/終点) + くぼみ (始点・終点) </text> <text name="advanced_slice"> - 切り取り (始点/終点) + 切り取り (始点・終点) </text> <spinner label="B" name="Path Limit Begin"/> <spinner label="E" name="Path Limit End"/> @@ -340,8 +340,8 @@ 回転体 </text> <texture_picker label="スカルプトテクスチャー" name="sculpt texture control" tool_tip="クリックして写真を選択してください。"/> - <check_box label="ミラー" name="sculpt mirror control" tool_tip="スカルプトプリムを X 軸上で反転させる"/> - <check_box label="裏返し" name="sculpt invert control" tool_tip="スカルプトプリムを反転させて裏返す"/> + <check_box label="ミラー" name="sculpt mirror control" tool_tip="スカルプトプリムを X 軸上で反転させます"/> + <check_box label="裏返し" name="sculpt invert control" tool_tip="スカルプトプリムを反転させて裏返します"/> <text name="label sculpt type"> 縫い目のタイプ </text> @@ -360,7 +360,7 @@ <text name="edit_object"> オブジェクトの特徴を編集: </text> - <check_box label="フレキシブル・パス" name="Flexible1D Checkbox Ctrl" tool_tip="Z 軸を中心にオブジェクトの屈曲を有効にする(クライアント側のみ)"/> + <check_box label="フレキシブル・パス" name="Flexible1D Checkbox Ctrl" tool_tip="Z 軸を中心にオブジェクトの屈曲を有効にします(クライアント側のみ)"/> <spinner label="柔軟性" label_width="72" name="FlexNumSections" width="135"/> <spinner label="重力" label_width="72" name="FlexGravity" width="135"/> <spinner label="ドラッグ" label_width="72" name="FlexFriction" width="135"/> @@ -369,9 +369,9 @@ <spinner label="X軸方向の力" label_width="72" name="FlexForceX" width="135"/> <spinner label="Y軸方向の力" label_width="72" name="FlexForceY" width="135"/> <spinner label="Z軸方向の力" label_width="72" name="FlexForceZ" width="135"/> - <check_box label="光" name="Light Checkbox Ctrl" tool_tip="オブジェクトが発光"/> + <check_box label="光" name="Light Checkbox Ctrl" tool_tip="オブジェクトが発光します"/> <color_swatch label="" left_delta="74" name="colorswatch" tool_tip="クリックしてカラーピッカーを開きます"/> - <texture_picker label="" name="light texture control" tool_tip="クリックで投影画を選択(遅延レンダリング有効時のみ)"/> + <texture_picker label="" name="light texture control" tool_tip="クリックで投影画を選択します(遅延レンダリング有効時のみ)"/> <spinner label="輝度" label_width="72" name="Light Intensity" width="135"/> <spinner label="FOV" name="Light FOV"/> <spinner label="半径" label_width="72" name="Light Radius" width="135"/> @@ -381,7 +381,7 @@ </panel> <panel label="材質" name="Texture"> <panel.string name="string repeats per meter"> - メートルごとに繰返す + メートルごとに繰り返す </panel.string> <panel.string name="string repeats per face"> 面ごとに繰り返す @@ -453,10 +453,10 @@ <text name="media_tex"> メディア </text> - <button name="add_media" tool_tip="メディアを追加"/> - <button name="delete_media" tool_tip="このメディアテクスチャを削除"/> - <button name="edit_media" tool_tip="このメディアを編集"/> - <button label="揃える" label_selected="メディアを一列に揃える" name="button align" tool_tip="メディアテクスチャを一列に揃える(最初に読み込む必要があります)"/> + <button name="add_media" tool_tip="メディアを追加します"/> + <button name="delete_media" tool_tip="このメディアテクスチャを削除します"/> + <button name="edit_media" tool_tip="このメディアを編集します"/> + <button label="揃える" label_selected="メディアを一列に揃える" name="button align" tool_tip="メディアテクスチャを一列に揃えます(最初に読み込む必要があります)"/> </panel> </panel> <panel label="中身" name="Contents"> @@ -475,7 +475,7 @@ 面積: [AREA] 平方メートル </text> <button label="土地情報" label_selected="土地情報" name="button about land"/> - <check_box label="オーナーを表示" name="checkbox show owners" tool_tip="所有者の種類別に区画を色づけ: 緑 = あなたの土地 アクア = あなたのグループ所有地 赤 = 他人が所有する土地 黄色 = 売り出し中 紫 = オークション グレー = パブリック"/> + <check_box label="所有者を表示" name="checkbox show owners" tool_tip="所有者の種類別に区画を色づけます: 緑 = あなたの土地 アクア = あなたのグループ所有地 赤 = 他人が所有する土地 黄色 = 売り出し中 紫 = オークション グレー = パブリック"/> <text name="label_parcel_modify"> 区画の編集 </text> diff --git a/indra/newview/skins/default/xui/ja/floater_url_entry.xml b/indra/newview/skins/default/xui/ja/floater_url_entry.xml index 9d3ca20c7c..8e09e4748a 100644 --- a/indra/newview/skins/default/xui/ja/floater_url_entry.xml +++ b/indra/newview/skins/default/xui/ja/floater_url_entry.xml @@ -3,11 +3,11 @@ <text name="media_label"> メディア URL: </text> - <combo_box left="100" name="media_entry" width="360" /> - <button label="OK" name="ok_btn" width="78"/> + <combo_box name="media_entry"/> + <button label="OK" name="ok_btn" width="38"/> <button label="キャンセル" name="cancel_btn" width="80"/> - <button label="クリア" name="clear_btn" /> - <text name="loading_label"> + <button label="クリア" name="clear_btn" left_pad="76"/> + <text name="loading_label" left="140"> ロード中... </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_window_size.xml b/indra/newview/skins/default/xui/ja/floater_window_size.xml index a31336c0f8..152a5f4806 100644 --- a/indra/newview/skins/default/xui/ja/floater_window_size.xml +++ b/indra/newview/skins/default/xui/ja/floater_window_size.xml @@ -4,7 +4,7 @@ [RES_X] x [RES_Y] </string> <text name="windowsize_text"> - ウィンドウのサイズの設定: + ウィンドウのサイズを設定: </text> <combo_box name="window_size_combo" tool_tip="横幅 x 高さ"> <combo_box.item label="1000 x 700 (標準)" name="item0"/> diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml index a0f2d98adf..af9c05de91 100644 --- a/indra/newview/skins/default/xui/ja/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml @@ -2,13 +2,13 @@ <floater name="worldmap" title="世界地図"> <panel name="layout_panel_1"> <text name="events_label"> - レジェンド + 表記・記号 </text> </panel> <panel> - <button label="現在地を表示" label_selected="現在地を表示" name="Show My Location" tool_tip="マップを中央に表示する"/> + <button label="現在地を表示" label_selected="現在地を表示" name="Show My Location" tool_tip="アバターの位置を地図の中心に表示します"/> <text name="me_label"> - ミー + 自分 </text> <check_box label="住人" name="people_chk"/> <text name="person_label"> @@ -23,12 +23,12 @@ 土地販売 </text> <text name="by_owner_label"> - by owner + 所有者の販売 </text> <text name="auction_label"> 土地オークション </text> - <button label="ホームへ" label_selected="ホームへ" name="Go Home" tool_tip="「ホーム」にテレポート"/> + <button label="ホームへ" label_selected="ホームへ" name="Go Home" tool_tip="「ホーム」にテレポートします"/> <text name="Home_label"> ホーム </text> @@ -50,14 +50,14 @@ </panel> <panel> <text name="find_on_map_label"> - 地図で探す + 地図上で探す </text> </panel> <panel> - <combo_box label="オンラインのフレンド" name="friend combo" tool_tip="フレンドを地図に表示"> + <combo_box label="オンラインのフレンド" name="friend combo" tool_tip="フレンドを地図上に表示します"> <combo_box.item label="オンラインのフレンド" name="item1"/> </combo_box> - <combo_box label="マイ ランドマーク" name="landmark combo" tool_tip="地図に表示するランドマーク"> + <combo_box label="マイ ランドマーク" name="landmark combo" tool_tip="地図上に表示するランドマーク"> <combo_box.item label="マイ ランドマーク" name="item1"/> </combo_box> <search_editor label="リージョン名" name="location" tool_tip="地域名を入力してください。"/> @@ -66,9 +66,9 @@ <scroll_list.columns label="" name="icon"/> <scroll_list.columns label="" name="sim_name"/> </scroll_list> - <button label="テレポート" label_selected="テレポート" name="Teleport" tool_tip="選択されたロケーションにテレポート"/> - <button label="SLurl をコピー" name="copy_slurl" tool_tip="現在地を SLurl としてコピーして、Webで使用します。"/> - <button label="選択したリージョンを表示する" label_selected="目的地を表示" name="Show Destination" tool_tip="選択したロケーションを地図の中心にする"/> + <button label="テレポート" label_selected="テレポート" name="Teleport" tool_tip="選択した場所にレポートします"/> + <button label="SLurl をコピー" name="copy_slurl" tool_tip="現在地を SLurl でコピーして、Webで使用します。"/> + <button label="選択したリージョンを表示する" label_selected="目的地を表示" name="Show Destination" tool_tip="選択した場所を地図の中心に表示します"/> </panel> <panel> <text name="zoom_label"> diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml index 1bfadf8d45..9d5ce3dada 100644 --- a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml @@ -23,5 +23,5 @@ <menu_item_call label="容姿" name="Appearance..."/> <menu_item_call label="フレンド" name="Friends..."/> <menu_item_call label="グループ" name="Groups..."/> - <menu_item_call label="マイ プロフィール" name="Profile..."/> + <menu_item_call label="プロフィール" name="Profile..."/> </context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml index 76c01d6109..d02701b400 100644 --- a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml +++ b/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <menu name="Gear Menu"> <menu_item_call label="立ち上がる" name="stand_up"/> - <menu_item_call label="マイ 容姿" name="my_appearance"/> + <menu_item_call label="容姿" name="my_appearance"/> <menu_item_call label="プロフィール" name="my_profile"/> <menu_item_call label="フレンド" name="my_friends"/> <menu_item_call label="グループ" name="my_groups"/> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml index 78c0dd0a78..3d661f96e0 100644 --- a/indra/newview/skins/default/xui/ja/menu_inventory.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml @@ -62,13 +62,13 @@ <menu_item_call label="リンクを外す" name="Remove Link"/> <menu_item_call label="削除" name="Delete"/> <menu_item_call label="システムフォルダを削除する" name="Delete System Folder"/> - <menu_item_call label="会議チャット開始" name="Conference Chat Folder"/> + <menu_item_call label="コンファレンスチャットを開始" name="Conference Chat Folder"/> <menu_item_call label="再生" name="Sound Play"/> <menu_item_call label="ランドマークの情報" name="About Landmark"/> - <menu_item_call label="世界で再生" name="Animation Play"/> - <menu_item_call label="ローカルに再生" name="Animation Audition"/> - <menu_item_call label="インスタント・メッセージを送信" name="Send Instant Message"/> - <menu_item_call label="テレポートを贈る..." name="Offer Teleport..."/> + <menu_item_call label="ワールド再生" name="Animation Play"/> + <menu_item_call label="ローカル再生" name="Animation Audition"/> + <menu_item_call label="インスタントメッセージを送信" name="Send Instant Message"/> + <menu_item_call label="テレポートを送る..." name="Offer Teleport..."/> <menu_item_call label="会議チャット開始" name="Conference Chat"/> <menu_item_call label="アクティブ" name="Activate"/> <menu_item_call label="非アクティブ" name="Deactivate"/> diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml index 42a95ac3d3..d6f13f0e59 100644 --- a/indra/newview/skins/default/xui/ja/menu_login.xml +++ b/indra/newview/skins/default/xui/ja/menu_login.xml @@ -24,7 +24,7 @@ <menu_item_call label="UI/色の設定" name="UI/Color Settings"/> <menu_item_call label="XUI プレビューツール" name="UI Preview Tool"/> <menu label="UI テスト" name="UI Tests"/> - <menu_item_call label="ウィンドウのサイズの設定..." name="Set Window Size..."/> + <menu_item_call label="ウィンドウのサイズを設定..." name="Set Window Size..."/> <menu_item_call label="利用規約を表示" name="TOS"/> <menu_item_call label="クリティカルメッセージを表示" name="Critical"/> <menu_item_call label="Web ブラウザのテスト" name="Web Browser Test"/> diff --git a/indra/newview/skins/default/xui/ja/menu_object.xml b/indra/newview/skins/default/xui/ja/menu_object.xml index a161c01514..d218b48c98 100644 --- a/indra/newview/skins/default/xui/ja/menu_object.xml +++ b/indra/newview/skins/default/xui/ja/menu_object.xml @@ -9,8 +9,8 @@ <menu_item_call label="ズームイン" name="Zoom In"/> <context_menu label="装着 >" name="Put On"> <menu_item_call label="装着" name="Wear"/> - <context_menu label="取り付け >" name="Object Attach"/> - <context_menu label="HUD を取り付け >" name="Object Attach HUD"/> + <context_menu label="取り付ける >" name="Object Attach"/> + <context_menu label="HUD を取り付ける >" name="Object Attach HUD"/> </context_menu> <context_menu label="削除 >" name="Remove"> <menu_item_call label="取る" name="Pie Object Take"/> diff --git a/indra/newview/skins/default/xui/ja/menu_people_groups.xml b/indra/newview/skins/default/xui/ja/menu_people_groups.xml index 4e5dc60a3d..842d79dc4b 100644 --- a/indra/newview/skins/default/xui/ja/menu_people_groups.xml +++ b/indra/newview/skins/default/xui/ja/menu_people_groups.xml @@ -3,6 +3,6 @@ <menu_item_call label="情報を表示" name="View Info"/> <menu_item_call label="チャット" name="Chat"/> <menu_item_call label="コール" name="Call"/> - <menu_item_call label="有効化" name="Activate"/> + <menu_item_call label="アクティブ" name="Activate"/> <menu_item_call label="脱退" name="Leave"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/menu_slurl.xml b/indra/newview/skins/default/xui/ja/menu_slurl.xml index 2e06c53494..eb24cee7e0 100644 --- a/indra/newview/skins/default/xui/ja/menu_slurl.xml +++ b/indra/newview/skins/default/xui/ja/menu_slurl.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> <menu_item_call label="URLについて" name="about_url"/> - <menu_item_call label="URLへテレポートする" name="teleport_to_url"/> + <menu_item_call label="URLにテレポートする" name="teleport_to_url"/> <menu_item_call label="地図" name="show_on_map"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml index db8583ca15..c5d5914f3f 100644 --- a/indra/newview/skins/default/xui/ja/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml @@ -49,12 +49,12 @@ <menu_item_call label="日没" name="Sunset"/> <menu_item_call label="深夜" name="Midnight"/> <menu_item_call label="エステートタイム" name="Revert to Region Default"/> - <menu_item_call label="環境編集" name="Environment Editor"/> + <menu_item_call label="自然環境エディター" name="Environment Editor"/> </menu> </menu> <menu label="制作" name="BuildTools"> <menu_item_check label="制作" name="Show Build Tools"/> - <menu label="制作ツールを選択" name="Select Tool"> + <menu label="制作ツールを選択する" name="Select Tool"> <menu_item_call label="フォーカスツール" name="Focus"/> <menu_item_call label="移動ツール" name="Move"/> <menu_item_call label="編集ツール" name="Edit"/> @@ -77,9 +77,9 @@ <menu_item_call label="選択したものに焦点を合わせる" name="Focus on Selection"/> <menu_item_call label="選択したものをズームする" name="Zoom to Selection"/> <menu label="オブジェクト" name="Object"> - <menu_item_call label="買う" name="Menu Object Take"/> + <menu_item_call label="取る" name="Menu Object Take"/> <menu_item_call label="コピーを取る" name="Take Copy"/> - <menu_item_call label="「マイ 持ち物」に保存" name="Save Object Back to My Inventory"/> + <menu_item_call label="「持ち物」に保存" name="Save Object Back to My Inventory"/> <menu_item_call label="オブジェクトの中身に保存" name="Save Object Back to Object Contents"/> </menu> <menu label="スクリプト" name="Scripts"> @@ -119,8 +119,8 @@ </menu> <menu label="ヘルプ" name="Help"> <menu_item_call label="[SECOND_LIFE] ヘルプ" name="Second Life Help"/> - <menu_item_call label="嫌がらせを報告" name="Report Abuse"/> - <menu_item_call label="バグ報告" name="Report Bug"/> + <menu_item_call label="嫌がらせを報告する" name="Report Abuse"/> + <menu_item_call label="バグを報告する" name="Report Bug"/> <menu_item_call label="[APP_NAME] について" name="About Second Life"/> </menu> <menu label="アドバンス" name="Advanced"> diff --git a/indra/newview/skins/default/xui/ja/mime_types.xml b/indra/newview/skins/default/xui/ja/mime_types.xml index 2f945b2010..54663a0367 100644 --- a/indra/newview/skins/default/xui/ja/mime_types.xml +++ b/indra/newview/skins/default/xui/ja/mime_types.xml @@ -2,13 +2,13 @@ <mimetypes name="default"> <widgetset name="web"> <label name="web_label"> - ウェブ・コンテンツ + Webコンテンツ </label> <tooltip name="web_tooltip"> - ここにウェブ・コンテンツがあります。 + ここにWebコンテンツがあります。 </tooltip> <playtip name="web_playtip"> - ウェブ・コンテンツを表示 + Webコンテンツを表示 </playtip> </widgetset> <widgetset name="movie"> @@ -119,7 +119,7 @@ </mimetype> <mimetype name="application/xhtml+xml"> <label name="application/xhtml+xml_label"> - ウェブ・ページ (XHTML) + Webページ (XHTML) </label> </mimetype> <mimetype name="application/x-director"> @@ -184,7 +184,7 @@ </mimetype> <mimetype menu="1" name="text/html"> <label name="text/html_label"> - ウェブ・ページ + Webページ </label> </mimetype> <mimetype menu="1" name="text/plain"> diff --git a/indra/newview/skins/default/xui/ja/panel_bottomtray.xml b/indra/newview/skins/default/xui/ja/panel_bottomtray.xml index 414413a980..81a852522b 100644 --- a/indra/newview/skins/default/xui/ja/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/ja/panel_bottomtray.xml @@ -17,11 +17,11 @@ <button label="視界" name="camera_btn" tool_tip="カメラコントロールの表示・非表示"/> </layout_panel> <layout_panel name="snapshot_panel"> - <button label="" name="snapshots" tool_tip="スナップショットを撮る"/> + <button label="" name="snapshots" tool_tip="スナップショットを撮ります"/> </layout_panel> <layout_panel name="im_well_panel"> <chiclet_im_well name="im_well"> - <button name="Unread IM messages" tool_tip="Conversations"/> + <button name="Unread IM messages" tool_tip="会話"/> </chiclet_im_well> </layout_panel> <layout_panel name="notification_well_panel"> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_alpha.xml b/indra/newview/skins/default/xui/ja/panel_edit_alpha.xml index 7825d81c53..f2e3e6e993 100644 --- a/indra/newview/skins/default/xui/ja/panel_edit_alpha.xml +++ b/indra/newview/skins/default/xui/ja/panel_edit_alpha.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="edit_alpha_panel"> <panel name="avatar_alpha_color_panel"> - <texture_picker label="アルファ(下)" name="Lower Alpha" tool_tip="クリックして写真を選択します"/> - <texture_picker label="アルファ(上)" name="Upper Alpha" tool_tip="クリックして写真を選択します"/> - <texture_picker label="頭部のアルファ" name="Head Alpha" tool_tip="クリックして写真を選択します"/> + <texture_picker label="アルファ (下)" name="Lower Alpha" tool_tip="クリックして写真を選択します"/> + <texture_picker label="アルファ (上)" name="Upper Alpha" tool_tip="クリックして写真を選択します"/> + <texture_picker label="頭部のア ルファ" name="Head Alpha" tool_tip="クリックして写真を選択します"/> <texture_picker label="目のアルファ" name="Eye Alpha" tool_tip="クリックして写真を選択します"/> <texture_picker label="髪のアルファ" name="Hair Alpha" tool_tip="クリックして写真を選択します"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml index 2a850ab29c..d1a2b31934 100644 --- a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml @@ -45,7 +45,7 @@ <text name="my_account_link" value="[[URL] マイアカウントに移動]"/> <text name="acc_status_text" value="住人。 支払情報未登録。"/> <text name="title_partner_text" value="マイパートナー:"/> - <text name="partner_edit_link" value="[[URL] 編集]"/> + <text name="partner_edit_link" value="[[URL] 編集]" width="100"/> <panel name="partner_data_panel"> <name_box name="partner_text" value="[FIRST] [LAST]"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml index d6aec87b45..78ddae47f9 100644 --- a/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml +++ b/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="edit_tattoo_panel"> <panel name="avatar_tattoo_color_panel"> - <texture_picker label="頭部のタトゥー" name="Head Tattoo" tool_tip="クリックして写真を選択"/> - <texture_picker label="上部のタトゥー" name="Upper Tattoo" tool_tip="クリックして写真を選択"/> - <texture_picker label="下部のタトゥー" name="Lower Tattoo" tool_tip="クリックして写真を選択"/> + <texture_picker label="頭部のタトゥー" name="Head Tattoo" tool_tip="クリックして写真を選択" width="70"/> + <texture_picker label="上部のタトゥー" name="Upper Tattoo" tool_tip="クリックして写真を選択" width="70"/> + <texture_picker label="下部のタトゥー" name="Lower Tattoo" tool_tip="クリックして写真を選択" width="70"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_friends.xml b/indra/newview/skins/default/xui/ja/panel_friends.xml index 80a68f8258..97e58ceaed 100644 --- a/indra/newview/skins/default/xui/ja/panel_friends.xml +++ b/indra/newview/skins/default/xui/ja/panel_friends.xml @@ -4,7 +4,7 @@ 複数のフレンド </string> <scroll_list name="friend_list" tool_tip="複数のフレンドを選択するには、ShiftキーまたはCtrlキーを押しながら名前をクリックします。"> - <column name="icon_online_status" tool_tip="オンライン・ステータス"/> + <column name="icon_online_status" tool_tip="オンライン状況"/> <column label="名前" name="friend_name" tool_tip="名前"/> <column name="icon_visible_online" tool_tip="フレンドは、あなたがオンラインかどうか確認することができます。"/> <column name="icon_visible_map" tool_tip="フレンドは、地図であなたの居場所を見つけることができます。"/> @@ -15,18 +15,18 @@ <text name="friend_name_label" right="-10"> フレンドを選択して権利を変更... </text> - <check_box label="オンライン・ステータスの確認を許可する" name="online_status_cb" tool_tip="コーリングカードあるいはフレンドリストでこのフレンドがオンライン状態を確認できるよう設定"/> - <check_box label="世界地図上であなたの居場所を検索可能にする" name="map_status_cb" tool_tip="このフレンドが地図で私の位置を発見できるように設定"/> - <check_box label="オブジェクトの修正を許可する" name="modify_status_cb" tool_tip="このフレンドがオブジェクトを改造できる許可を与える"/> + <check_box label="オンライン状況の確認を許可する" name="online_status_cb" tool_tip="コーリングカードあるいはフレンドリストでこのフレンドがオンライン状況を確認できるよう設定します"/> + <check_box label="世界地図上であなたの居場所を検索可能にする" name="map_status_cb" tool_tip="このフレンドが地図で私の位置を発見できるように設定します"/> + <check_box label="オブジェクトの修正を許可する" name="modify_status_cb" tool_tip="このフレンドに私のオブジェクトを改造する許可を与えます"/> <text name="process_rights_label"> 権利変更をプロセス中... </text> </panel> <pad left="-95"/> - <button label="IM/コール" name="im_btn" tool_tip="インスタントメッセージ・セッションを開く" width="90"/> + <button label="IM・コール" name="im_btn" tool_tip="インスタントメッセージ・セッションを開きます。" width="90"/> <button label="プロフィール" name="profile_btn" tool_tip="写真、グループ、およびその他の情報を表示します。" width="90"/> - <button label="テレポート" name="offer_teleport_btn" tool_tip="このフレンドに、あなたの現在のロケーションまでのテレポートを申し出ます。" width="90"/> - <button label="支払う" name="pay_btn" tool_tip="リンデンドル (L$) をこのフレンドにあげる" width="90"/> + <button label="テレポート" name="offer_teleport_btn" tool_tip="このフレンドに、あなたの現在地へのテレポートを申し出ます。" width="90"/> + <button label="支払う" name="pay_btn" tool_tip="リンデンドル (L$) をこのフレンドにあげます。" width="90"/> <button label="削除" name="remove_btn" tool_tip="この人物をフレンドリストから外します。" width="90"/> - <button label="追加" name="add_btn" tool_tip="フレンド登録を申し出る" width="90"/> + <button label="追加" name="add_btn" tool_tip="フレンド登録を申し出ます。" width="90"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml index 1c89675c1e..f7f575206a 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml @@ -5,7 +5,7 @@ <button label="グループ情報" name="group_info_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> - <button label="グループにコール" name="call_btn"/> + <button label="グループコール" name="call_btn"/> </layout_panel> <layout_panel name="end_call_btn_panel"> <button label="コール終了" name="end_call_btn"/> diff --git a/indra/newview/skins/default/xui/ja/panel_group_general.xml b/indra/newview/skins/default/xui/ja/panel_group_general.xml index 538f3800bd..247294c158 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml @@ -9,7 +9,7 @@ 一般的なグループ情報が変更されました。 </panel.string> <panel.string name="incomplete_member_data_str"> - メンバー・データを検索 + メンバーのデータを検索 </panel.string> <text_editor name="charter"> グループの理念、指針を記入してください diff --git a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml index 0af1ce2ef2..252220b64d 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml @@ -31,7 +31,7 @@ </accordion> <panel name="button_row"> <button label="作成" label_selected="新しいグループ" name="btn_create"/> - <button label="グループチャット" name="btn_chat"/> + <button label="グループチャット" name="btn_chat" width="100"/> <button label="グループコール" name="btn_call"/> <button label="保存" label_selected="保存" name="btn_apply"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_invite.xml b/indra/newview/skins/default/xui/ja/panel_group_invite.xml index dc58359133..a21b340fdd 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_invite.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="メンバーを招待" name="invite_panel"> <panel.string name="confirm_invite_owner_str"> - 本当に新しい所有者を招待しますか?この操作は取り消しできません。 + 本当に新しい所有者を招待しますか?この操作は取り消しできません。 </panel.string> <panel.string name="loading"> (ローディング...) diff --git a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml index cfbc51a44e..0f014bcd2f 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml @@ -18,12 +18,12 @@ </text> <scroll_list name="group_parcel_list"> <column label="区画" name="name"/> - <column label="地域(リージョン)" name="location"/> + <column label="地域" name="location"/> <column label="種類" name="type"/> <column label="面積" name="area"/> <column label="" name="hidden"/> </scroll_list> - <button label="地図" label_selected="地図" name="map_button"/> + <button label="地図" label_selected="地図" name="map_button" width="60"/> <text name="total_contributed_land_label"> 寄付合計: </text> @@ -48,10 +48,10 @@ <string name="land_contrib_error"> 土地の貢献を設定することができません </string> - <text name="your_contribution_units"> + <text name="your_contribution_units" width="80"> 平方メートル </text> - <text name="your_contribution_max_value"> + <text name="your_contribution_max_value" width="100"> (最大 [AMOUNT]) </text> <text name="group_over_limit_text"> diff --git a/indra/newview/skins/default/xui/ja/panel_group_notices.xml b/indra/newview/skins/default/xui/ja/panel_group_notices.xml index c5168c4d7c..e33d3d854e 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml @@ -21,8 +21,8 @@ <text name="notice_list_none_found"> 見つかりませんでした </text> - <button label="新しい通知を作成" label_selected="新しい通知を作成" name="create_new_notice" tool_tip="新しい通知を作成"/> - <button label="更新" label_selected="リスト更新" name="refresh_notices" tool_tip="通知リストを更新"/> + <button label="新しい通知を作成" label_selected="新しい通知を作成" name="create_new_notice" tool_tip="新しい通知を作成します"/> + <button label="更新" label_selected="リスト更新" name="refresh_notices" tool_tip="通知リストを更新します"/> <panel label="新しい通知を作成" name="panel_create_new_notice"> <text name="lbl"> 通知を作成 @@ -31,7 +31,7 @@ 件名: </text> <text name="lbl4"> - メッセージ: + 内容: </text> <text name="lbl5"> 添付: @@ -54,7 +54,7 @@ 件名: </text> <text name="lbl4"> - メッセージ: + 内容: </text> <button label="添付アイテムを開く" label_selected="添付物を開く" name="open_attachment"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_groups.xml b/indra/newview/skins/default/xui/ja/panel_groups.xml index 785fd868ab..de81a6431a 100644 --- a/indra/newview/skins/default/xui/ja/panel_groups.xml +++ b/indra/newview/skins/default/xui/ja/panel_groups.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="groups"> <text name="groupdesc"> - アクティブなグループ名は太字で表示されています + アクティブなグループは太字で表示されています </text> - <text name="groupcount"> - あなたは[COUNT] グループに所属しています (最大[MAX]) + <text name="groupcount" width="270"> + [COUNT] のグループに所属しています (最大[MAX]) </text> - <button label="IM/コール" name="IM" + <button label="IM・コール" name="IM" tool_tip="インスタントメッセージ・セッションを開く" /> <button label="情報" name="Info" /> <button label="アクティブ" name="Activate" /> diff --git a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml index 9129c66a45..87477c2651 100644 --- a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml @@ -36,7 +36,7 @@ </panel> <panel name="landmark_edit_panel"> <text name="title_label" value="タイトル:"/> - <text name="notes_label" value="個人的メモ:"/> + <text name="notes_label" value="メモ:"/> <text name="folder_label" value="ランドマークの位置:"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_landmarks.xml b/indra/newview/skins/default/xui/ja/panel_landmarks.xml index 45767e8c50..151fbf33f2 100644 --- a/indra/newview/skins/default/xui/ja/panel_landmarks.xml +++ b/indra/newview/skins/default/xui/ja/panel_landmarks.xml @@ -7,8 +7,8 @@ <accordion_tab name="tab_library" title="ライブラリ"/> </accordion> <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="その他のオプションを表示"/> - <button name="add_btn" tool_tip="新しいランドマークを追加"/> - <dnd_button name="trash_btn" tool_tip="選択したランドマークを削除"/> + <button name="options_gear_btn" tool_tip="その他のオプションを表示します"/> + <button name="add_btn" tool_tip="新しいランドマークを追加します"/> + <dnd_button name="trash_btn" tool_tip="選択したランドマークを削除します"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml index 82c52abf38..1d18a86b53 100644 --- a/indra/newview/skins/default/xui/ja/panel_login.xml +++ b/indra/newview/skins/default/xui/ja/panel_login.xml @@ -23,12 +23,12 @@ <text name="start_location_text"> 開始地点: </text> - <combo_box name="start_location_combo"> + <combo_box name="start_location_combo" width="160"> <combo_box.item label="最後にログアウトした場所" name="MyLastLocation"/> <combo_box.item label="ホーム" name="MyHome"/> <combo_box.item label="<地域名を入力>" name="Typeregionname"/> </combo_box> - <button label="ログイン" name="connect_btn"/> + <button label="ログイン" name="connect_btn" left_pad="30" width="60"/> </layout_panel> <layout_panel name="links"> <text name="create_new_account_text"> diff --git a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml index d533ce5e0d..36c7b75f97 100644 --- a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml @@ -9,9 +9,9 @@ <inventory_panel label="最新" name="Recent Items"/> </tab_container> <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="その他のオプションを表示"/> - <button name="add_btn" tool_tip="新しいアイテムの追加"/> - <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除"/> + <button name="options_gear_btn" tool_tip="その他のオプションを表示します"/> + <button name="add_btn" tool_tip="新しいアイテムを追加します"/> + <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除します"/> </panel> <menu_bar name="Inventory Menu"> <menu label="ファイル" name="File"> @@ -32,7 +32,7 @@ <menu label="新規作成" name="Create"> <menu_item_call label="フォルダ" name="New Folder"/> <menu_item_call label="スクリプト" name="New Script"/> - <menu_item_call label="新しいノートカード" name="New Note"/> + <menu_item_call label="ノートカード" name="New Note"/> <menu_item_call label="ジェスチャー" name="New Gesture"/> <menu label="衣類" name="New Clothes"> <menu_item_call label="シャツ" name="New Shirt"/> @@ -40,7 +40,7 @@ <menu_item_call label="靴" name="New Shoes"/> <menu_item_call label="靴下" name="New Socks"/> <menu_item_call label="ジャケット" name="New Jacket"/> - <menu_item_call label="シャツ" name="New Skirt"/> + <menu_item_call label="スカート" name="New Skirt"/> <menu_item_call label="手袋" name="New Gloves"/> <menu_item_call label="下着(上)" name="New Undershirt"/> <menu_item_call label="下着(下)" name="New Underpants"/> diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml index 74e414c381..eba26bbe3d 100644 --- a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml @@ -20,7 +20,7 @@ <check_box initial_value="false" label="自動ズーム" name="auto_zoom"/> <check_box initial_value="false" label="自動メディア再生" name="auto_play"/> <text name="media_setting_note"> - 注: 住人はこの設定を無視できます + 注意: 住人はこの設定を無視できます </text> <check_box initial_value="false" label="オブジェクトの表面のメディアの自動スケール" name="auto_scale"/> <text name="size_label"> diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml index 7822123a30..6accbd4852 100644 --- a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="セキュリティ" name="Media Settings Security"> - <check_box initial_value="false" label="指定したURLパターンにのみアクセスを許可する" name="whitelist_enable"/> + <check_box initial_value="false" label="指定したURLパターンのみアクセスを許可する" name="whitelist_enable"/> <text name="home_url_fails_some_items_in_whitelist"> ホームページに失敗したエントリーがマークされました: </text> diff --git a/indra/newview/skins/default/xui/ja/panel_my_profile.xml b/indra/newview/skins/default/xui/ja/panel_my_profile.xml index 4cce3798cf..e74a726d11 100644 --- a/indra/newview/skins/default/xui/ja/panel_my_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_my_profile.xml @@ -28,7 +28,7 @@ <icon label="" name="real_world_edit_icon" tool_tip="下の「プロフィールの編集」ボタンを押して画像を変更します"/> <text name="title_rw_descr_text" value="現実世界:"/> </panel> - <text name="title_member_text" value="住人となった日:"/> + <text name="title_member_text" value="メンバー登録:"/> <text name="title_acc_status_text" value="アカウントの状態:"/> <text name="acc_status_text"> 住人。 支払情報未登録。 diff --git a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml index a154442095..b271e86852 100644 --- a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="navigation_bar"> <panel name="navigation_panel"> - <button name="back_btn" tool_tip="前の場所"/> - <button name="forward_btn" tool_tip="次の場所"/> + <button name="back_btn" tool_tip="前の場所へ戻ります"/> + <button name="forward_btn" tool_tip="次の場所へ進みます"/> <button name="home_btn" tool_tip="「ホーム」にテレポート"/> <location_input label="場所" name="location_combo"/> <search_combo_box label="検索" name="search_combo_box" tool_tip="検索"> diff --git a/indra/newview/skins/default/xui/ja/panel_notes.xml b/indra/newview/skins/default/xui/ja/panel_notes.xml index 1948c54359..6023bf125f 100644 --- a/indra/newview/skins/default/xui/ja/panel_notes.xml +++ b/indra/newview/skins/default/xui/ja/panel_notes.xml @@ -15,9 +15,9 @@ <layout_panel name="notes_buttons_panel"> <button label="フレンド登録" name="add_friend" tool_tip="フレンド登録を申し出ます"/> <button label="IM" name="im" tool_tip="インスタントメッセージを開きます"/> - <button label="コール" name="call" tool_tip="この住人にコールする"/> - <button label="地図" name="show_on_map_btn" tool_tip="住人を地図上で表示する"/> - <button label="テレポート" name="teleport" tool_tip="テレポートを送る"/> + <button label="コール" name="call" tool_tip="この住人にコールします"/> + <button label="地図" name="show_on_map_btn" tool_tip="住人を地図上で表示します"/> + <button label="テレポート" name="teleport" tool_tip="テレポートを送ります"/> </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml index a109b1ab51..7681ee461f 100644 --- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml @@ -5,10 +5,10 @@ <inventory_panel label="着用中" name="cof_accordionpanel"/> </tab_container> <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="その他のオプションを表示"/> - <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除"/> - <button label="アウトフィットを保存する" name="make_outfit_btn" tool_tip="容姿をアウトフィットに保存する"/> - <button label="装着" name="wear_btn" tool_tip="選択したアウトフィットを着用する"/> + <button name="options_gear_btn" tool_tip="その他のオプションを表示します"/> + <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除します"/> + <button label="アウトフィットを保存する" name="make_outfit_btn" tool_tip="容姿をアウトフィットに保存します" width="140"/> + <button label="装着" name="wear_btn" tool_tip="選択したアウトフィットを着用します"/> <button label="M" name="look_edit_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_people.xml b/indra/newview/skins/default/xui/ja/panel_people.xml index c955cf6e48..0c3690a10c 100644 --- a/indra/newview/skins/default/xui/ja/panel_people.xml +++ b/indra/newview/skins/default/xui/ja/panel_people.xml @@ -23,15 +23,15 @@ </accordion> <panel label="bottom_panel" name="bottom_panel"> <button name="friends_viewsort_btn" tool_tip="オプション"/> - <button name="add_btn" tool_tip="フレンド登録を申し出る"/> - <button name="del_btn" tool_tip="選択した人をフレンドリストから削除"/> + <button name="add_btn" tool_tip="フレンド登録を申し出ます"/> + <button name="del_btn" tool_tip="選択した人をフレンドリストから削除します"/> </panel> </panel> <panel label="グループ" name="groups_panel"> <panel label="bottom_panel" name="bottom_panel"> <button name="groups_viewsort_btn" tool_tip="オプション"/> - <button name="plus_btn" tool_tip="グループに参加 / 新規グループを作成"/> - <button name="activate_btn" tool_tip="選択したグループをアクティベート"/> + <button name="plus_btn" tool_tip="グループに参加 / 新規グループを作成します"/> + <button name="activate_btn" tool_tip="選択したグループをアクティブにします"/> </panel> </panel> <panel label="最新" name="recent_panel"> @@ -42,13 +42,13 @@ </panel> </tab_container> <panel name="button_bar"> - <button label="プロフィール" name="view_profile_btn" tool_tip="写真、グループ、その他住人情報を表示"/> - <button label="IM" name="im_btn" tool_tip="インスタントメッセージを開く"/> - <button label="コール" name="call_btn" tool_tip="この住人にコールする"/> + <button label="プロフィール" name="view_profile_btn" tool_tip="写真、グループ、その他住人情報を表示します"/> + <button label="IM" name="im_btn" tool_tip="インスタントメッセージを開きます"/> + <button label="コール" name="call_btn" tool_tip="この住人にコールします"/> <button label="共有" name="share_btn"/> - <button label="テレポート" name="teleport_btn" tool_tip="テレポートを送る"/> - <button label="グループ情報" name="group_info_btn" tool_tip="グループ情報を表示"/> - <button label="グループチャット" name="chat_btn" tool_tip="チャットを開始"/> - <button label="グループにコールする" name="group_call_btn" tool_tip="このグループにコールする"/> + <button label="テレポート" name="teleport_btn" tool_tip="テレポートを送ります"/> + <button label="グループ情報" name="group_info_btn" tool_tip="グループ情報を表示します"/> + <button label="グループチャット" name="chat_btn" tool_tip="チャットを開始します"/> + <button label="グループコール" name="group_call_btn" tool_tip="このグループにコールします"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_picks.xml b/indra/newview/skins/default/xui/ja/panel_picks.xml index f74bf7a073..4f58c032da 100644 --- a/indra/newview/skins/default/xui/ja/panel_picks.xml +++ b/indra/newview/skins/default/xui/ja/panel_picks.xml @@ -10,8 +10,8 @@ <button name="new_btn" tool_tip="現在地の新しいピック、またはクラシファイド広告を作成します"/> </panel> <panel name="buttons_cucks"> - <button label="情報" name="info_btn" tool_tip="ピックの情報を表示"/> - <button label="テレポート" name="teleport_btn" tool_tip="該当するエリアにテレポート"/> - <button label="地図" name="show_on_map_btn" tool_tip="世界地図に該当するエリアを表示"/> + <button label="情報" name="info_btn" tool_tip="ピックの情報を表示します"/> + <button label="テレポート" name="teleport_btn" tool_tip="該当するエリアにテレポートします"/> + <button label="地図" name="show_on_map_btn" tool_tip="世界地図に該当するエリアを表示します"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_place_profile.xml b/indra/newview/skins/default/xui/ja/panel_place_profile.xml index ef4b71c4aa..b9a0744372 100644 --- a/indra/newview/skins/default/xui/ja/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_place_profile.xml @@ -86,9 +86,10 @@ <button label="土地情報" name="about_land_btn"/> </panel> </accordion_tab> - <accordion_tab name="region_information_tab" title="リージョン"> + <accordion_tab name="region_information_tab" title="リージョン(地域) + "> <panel> - <text name="region_name_label" value="リージョン:"/> + <text name="region_name_label" value="地域:"/> <text name="region_name" value="Mooseland"/> <text name="region_type_label" value="種類:"/> <text name="region_type" value="Moose"/> @@ -105,7 +106,7 @@ </accordion_tab> <accordion_tab name="estate_information_tab" title="エステート(不動産)"> <panel> - <text name="estate_name_label" value="エステート(不動産):"/> + <text name="estate_name_label" value="不動産:"/> <text name="estate_rating_label" value="レーティング区分:"/> <text name="estate_owner_label" value="所有者:"/> <text name="covenant_label" value="約款:"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml index 16af659326..f0780a6cf8 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml @@ -6,9 +6,9 @@ <check_box label="リンデンドルを使用・受け取るとき" name="notify_money_change_checkbox"/> <check_box label="フレンドがログアウト・ログインするとき" name="friends_online_notify_checkbox"/> <text name="show_label" width="300"> - 常に表示する通知: + 常に表示するメッセージ: </text> <text name="dont_show_label"> - 表示しない通知: + 表示しないメッセージ: </text> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml index ece18a75ca..73d0855273 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml @@ -7,27 +7,27 @@ </radio_group> <color_swatch label="自分" name="user"/> <text name="text_box1"> - ミー + 自分 </text> <color_swatch label="その他" name="agent"/> <text name="text_box2"> - その他 + 他人 </text> <color_swatch label="IM" name="im"/> <text name="text_box3"> IM </text> - <color_swatch label="システム" name="system"/> + <color_swatch label="システム" name="system"/> <text name="text_box4"> - システム + システム </text> <color_swatch label="エラー" name="script_error"/> <text name="text_box5"> エラー </text> - <color_swatch label="オブジェクト" name="objects"/> + <color_swatch label="オブジェクト" name="objects"/> <text name="text_box6"> - オブジェクト + オブジェクト </text> <color_swatch label="所有者" name="owner"/> <text name="text_box7"> @@ -37,9 +37,9 @@ <text name="text_box9"> URL </text> - <check_box initial_value="true" label="チャット中はタイピング動作のアニメーションを再生" name="play_typing_animation"/> - <check_box label="オフライン時に受け取った IM をメールで送信" name="send_im_to_email"/> - <check_box label="文字チャットの履歴を有効にする" name="plain_text_chat_history"/> + <check_box initial_value="true" label="チャット中にタイピング動作のアニメーションを再生" name="play_typing_animation"/> + <check_box label="オフライン時に受け取った IM をメールで受信" name="send_im_to_email"/> + <check_box label="チャット履歴に文字だけで表示する" name="plain_text_chat_history"/> <radio_group name="chat_window" tool_tip="インスタントメッセージを別ウィンドウ、または1つのウィンドウに複数タブで表示(要再起動)"> <radio_item label="複数ウィンドウ" name="radio" value="0"/> <radio_item label="1つのウィンドウ" name="radio2" value="1"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml index 765662b96a..f216c3acbc 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml @@ -33,7 +33,7 @@ </text> <combo_box name="start_location_combo"> <combo_box.item label="最後にログアウトした場所" name="MyLastLocation" tool_tip="常に最後にいた場所にログイン"/> - <combo_box.item label="自宅(ホーム)" name="MyHome" tool_tip="常に自宅(ホーム)にログイン"/> + <combo_box.item label="ホーム" name="MyHome" tool_tip="常にホーム(自宅)にログイン"/> </combo_box> <check_box initial_value="true" label="ログイン画面に表示する" name="show_location_checkbox"/> <text name="name_tags_textbox"> @@ -48,7 +48,7 @@ <check_box initial_value="true" label="小さいアバター名" name="small_avatar_names_checkbox"/> <check_box label="グループタイトルを表示" name="show_all_title_checkbox1"/> <text name="effects_color_textbox"> - 私のビームの色: + ビームの色: </text> <text name="title_afk_text"> 一時退席までの時間: diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml index 191748fe91..8df829c296 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml @@ -55,7 +55,7 @@ <text name="AvatarRenderingText"> アバター表示: </text> - <check_box initial_value="true" label="アバターの精度を上げる" name="AvatarImpostors"/> + <check_box initial_value="true" label="アバターの描画を簡略化" name="AvatarImpostors"/> <check_box initial_value="true" label="ハードウェアスキニング" name="AvatarVertexProgram"/> <check_box initial_value="true" label="アバターの布" name="AvatarCloth"/> <slider label="描画距離:" name="DrawDistance"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml index 7a7cb8b96b..12e8b04f84 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml @@ -11,13 +11,13 @@ <check_box label="フレンドとグループ以外からはコールとIMを受信しない" name="voice_call_friends_only_check"/> <check_box label="コールが終了したらマイクのスイッチを切る" name="auto_disengage_mic_check"/> <check_box label="Cookieを受け入れる" name="cookies_enabled"/> - <check_box label="メディアが有効です" name="media_enabled"/> + <check_box label="メディアを有効にする" name="media_enabled"/> <check_box label="メディアを自動再生する" name="autoplay_enabled"/> <text name="Logs:"> ログ: </text> - <check_box label="コンピューターに近くのチャットログを保存する" name="log_nearby_chat"/> - <check_box label="コンピューターに IM ログを保存する" name="log_instant_messages"/> + <check_box label="近くのチャットログをコンピューターに保存する" name="log_nearby_chat"/> + <check_box label="IM ログをコンピューターに保存する" name="log_instant_messages"/> <check_box label="タイムスタンプを追加する" name="show_timestamps_check_im"/> <text name="log_path_desc"> ログの保存場所: diff --git a/indra/newview/skins/default/xui/ja/panel_profile.xml b/indra/newview/skins/default/xui/ja/panel_profile.xml index 98969f5ab3..8968b7c61e 100644 --- a/indra/newview/skins/default/xui/ja/panel_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_profile.xml @@ -26,7 +26,7 @@ <panel name="first_life_image_panel"> <text name="title_rw_descr_text" value="現実世界:"/> </panel> - <text name="title_member_text" value="住人となった日:"/> + <text name="title_member_text" value="住人登録:"/> <text name="title_acc_status_text" value="アカウントの状態:"/> <text name="acc_status_text"> 住人。 支払情報未登録。 @@ -40,9 +40,9 @@ <layout_panel name="profile_buttons_panel"> <button label="フレンド登録" name="add_friend" tool_tip="フレンド登録を申し出ます"/> <button label="IM" name="im" tool_tip="インスタントメッセージを開きます"/> - <button label="コール" name="call" tool_tip="この住人にコールする"/> - <button label="地図" name="show_on_map_btn" tool_tip="住人を地図上で表示する"/> - <button label="テレポート" name="teleport" tool_tip="テレポートを送る"/> + <button label="コール" name="call" tool_tip="この住人にコールします"/> + <button label="地図" name="show_on_map_btn" tool_tip="住人を地図上で表示します"/> + <button label="テレポート" name="teleport" tool_tip="テレポートを送ります"/> </layout_panel> <layout_panel name="profile_me_buttons_panel"> <button label="プロフィールの編集" name="edit_profile_btn" tool_tip="個人的な情報を編集します"/> diff --git a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml index 5f43f93113..9a517d79e9 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="約款" name="Covenant"> - <text font="SansSerifLarge" name="estate_section_lbl"> - エステート(不動産) + <text font="SansSerifLarge" name="estate_section_lbl" width="200"> + 不動産 </text> <text name="estate_name_lbl"> 名前: @@ -26,14 +26,14 @@ この不動産には約款がありません。 </text_editor> <button label="リセット" name="reset_covenant"/> - <text name="covenant_help_text"> + <text name="covenant_help_text" left="100"> 約款の変更は不動産全区画に適用となります。 </text> - <text name="covenant_instructions"> + <text name="covenant_instructions" width="390"> この不動産約款の変更をする際は、ノートカードをドラッグ&ドロップしてください。 </text> - <text bottom_delta="-34" font="SansSerifLarge" name="region_section_lbl"> - リージョン(地域) + <text bottom_delta="-34" font="SansSerifLarge" name="region_section_lbl" width="200"> + 地域 </text> <text name="region_name_lbl"> 名前: diff --git a/indra/newview/skins/default/xui/ja/panel_region_debug.xml b/indra/newview/skins/default/xui/ja/panel_region_debug.xml index 4209fb17e5..f6865c12b1 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_debug.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_debug.xml @@ -6,11 +6,11 @@ <text name="region_text"> 未知 </text> - <check_box label="スクリプト無効化" name="disable_scripts_check" tool_tip="この地域のスクリプトをすべて無効化"/> + <check_box label="スクリプト無効化" name="disable_scripts_check" tool_tip="この地域のスクリプトをすべて無効にします"/> <button label="?" name="disable_scripts_help"/> - <check_box label="衝突を無効化" name="disable_collisions_check" tool_tip="この地域の非アバター衝突を無効化"/> + <check_box label="衝突を無効化" name="disable_collisions_check" tool_tip="この地域の非アバター衝突を無効にします"/> <button label="?" name="disable_collisions_help"/> - <check_box label="物理作用を無効化" name="disable_physics_check" tool_tip="この地域の物理作用をすべて無効化"/> + <check_box label="物理作用を無効化" name="disable_physics_check" tool_tip="この地域の物理作用をすべて無効にします"/> <button label="?" name="disable_physics_help"/> <button label="適用" name="apply_btn"/> <text name="objret_text_lbl" width="120"> @@ -27,14 +27,14 @@ オプション: </text> <check_box label="スクリプト付きのもの" name="return_scripts" tool_tip="スクリプトのオブジェクトだけ返却します"/> - <check_box label="他人の土地にあるもの" name="return_other_land" tool_tip="他人に属する土地にあるオブジェクトのみを返却"/> - <check_box label="この不動産に属するすべてのリージョンのもの" name="return_estate_wide" tool_tip="この不動産に含まれているすべての地域のオブジェクトを返却"/> + <check_box label="他人の土地にあるもの" name="return_other_land" tool_tip="他人に属する土地にあるオブジェクトのみを返却します"/> + <check_box label="この不動産に属するすべてのリージョンのもの" name="return_estate_wide" tool_tip="この不動産に含まれているすべての地域のオブジェクトを返却します"/> <button label="返却" name="return_btn"/> <button label="上部コライダー取得" name="top_colliders_btn" tool_tip="衝突する可能性が最も高いオブジェクトのリスト"/> <button label="?" name="top_colliders_help"/> <button label="上部スクリプト取得" name="top_scripts_btn" tool_tip="スクリプトの実行に最も時間を費やしているオブジェクトのリスト"/> <button label="?" name="top_scripts_help"/> - <button label="地域再起動" name="restart_btn" tool_tip="2分間のカウントダウン後、地域を再起動"/> + <button label="地域再起動" name="restart_btn" tool_tip="2分間のカウントダウン後、地域を再起動します"/> <button label="?" name="restart_help"/> - <button label="再起動を遅延" name="cancel_restart_btn" tool_tip="地域の再起動を1時間遅延する"/> + <button label="再起動を遅延" name="cancel_restart_btn" tool_tip="地域の再起動を1時間遅延します"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml index 976cfacb3f..fcc225c333 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="不動産" name="Estate"> - <text name="estate_help_text"> + <text name="estate_help_text" width="400"> このタブの設定への変更は、エステート内のすべてのリージョンに影響されます。 </text> <text name="estate_text"> @@ -40,7 +40,7 @@ <check_box label="太陽固定" name="fixed_sun_check"/> <button label="?" name="fixed_sun_help"/> <slider label="段階" name="sun_hour_slider"/> - <check_box label="パブリック・アクセスを許可" name="externally_visible_check"/> + <check_box label="パブリックアクセスを許可" name="externally_visible_check"/> <button label="?" name="externally_visible_help"/> <check_box label="直接テレポートを許可" name="allow_direct_teleport"/> <button label="?" name="allow_direct_teleport_help"/> diff --git a/indra/newview/skins/default/xui/ja/panel_region_general.xml b/indra/newview/skins/default/xui/ja/panel_region_general.xml index 00be5b6b03..168141ee77 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml @@ -3,19 +3,19 @@ <text name="region_text_lbl"> 地域: </text> - <text left="90" name="region_text"> + <text left_delta="70" name="region_text"> 未知 </text> <text name="version_channel_text_lbl" width="100"> バージョン: </text> - <text left="90" name="version_channel_text"> + <text left_delta="70" name="version_channel_text"> 不明 </text> <text name="region_type_lbl"> 種類: </text> - <text name="region_type"> + <text name="region_type" left_delta="70"> 不明 </text> <check_box label="土地整備をブロック" name="block_terraform_check"/> @@ -28,9 +28,9 @@ <button label="?" name="restrict_pushobject_help"/> <check_box label="土地の再販を許可" name="allow_land_resell_check"/> <button label="?" name="land_resell_help"/> - <check_box label="土地の統合/分割を許可" name="allow_parcel_changes_check"/> + <check_box label="土地の統合・分割を許可" name="allow_parcel_changes_check"/> <button label="?" name="parcel_changes_help"/> - <check_box label="土地の検索表示をブロック" name="block_parcel_search_check" tool_tip="検索結果で、この地域と区画を人に見せる"/> + <check_box label="土地の検索表示をブロック" name="block_parcel_search_check" tool_tip="検索結果で、この地域と区画を表示するかどうかの設定です"/> <button label="?" name="parcel_search_help"/> <spinner label="アバター数上限" name="agent_limit_spin"/> <button label="?" name="agent_limit_help"/> @@ -40,14 +40,14 @@ 区分: </text> <combo_box label="控えめ" name="access_combo"> - <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="アダルト" name="Adult"/> <combo_box.item label="控えめ" name="Mature"/> <combo_box.item label="一般" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="適用" name="apply_btn"/> - <button label="ユーザー1人ホームテレポート" name="kick_btn"/> - <button label="ユーザー全員ホームテレポート" name="kick_all_btn"/> - <button label="メッセージを地域へ送信..." name="im_btn"/> + <button label="ユーザー1名をホームにテレポート" name="kick_btn"/> + <button label="ユーザー全員をホームにテレポート" name="kick_all_btn"/> + <button label="メッセージを地域に送信..." name="im_btn"/> <button label="テレハブの管理..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml b/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml index 9673953d06..df7e5d9129 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml @@ -1,21 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="リージョン(地域)" name="General"> <text name="region_text_lbl"> - リージョン: + 地域: </text> - <text name="region_text"> + <text name="region_text" left_delta="70"> 不明 </text> <text name="version_channel_text_lbl"> バージョン: </text> - <text name="version_channel_text"> + <text name="version_channel_text" left_delta="70"> 不明 </text> <text name="region_type_lbl"> 種類: </text> - <text name="region_type"> + <text name="region_type" left_delta="70"> 不明 </text> <check_box label="地形編集をブロック" name="block_terraform_check"/> @@ -24,9 +24,9 @@ <check_box label="プッシュを制限" name="restrict_pushobject"/> <check_box label="土地の再販を許可" name="allow_land_resell_check"/> <check_box label="土地の統合・分割を許可" name="allow_parcel_changes_check"/> - <check_box label="土地の検索教示をブロック" name="block_parcel_search_check" tool_tip="このリージョンとリージョン内の区画を検索結果に表示する"/> - <spinner label="アバター数上限" name="agent_limit_spin"/> - <spinner label="オブジェクトボーナス" name="object_bonus_spin"/> + <check_box label="土地の検索表示をブロック" name="block_parcel_search_check" tool_tip="検索結果で、この地域と区画を表示するかどうかの設定です"/> + <spinner label="アバター数上限" name="agent_limit_spin" label_width="110" width="190"/> + <spinner label="物体ボーナス" name="object_bonus_spin" label_width="110" width="190"/> <text label="レーティング区分" name="access_text"> レーティング区分: </text> @@ -38,6 +38,6 @@ <button label="適用" name="apply_btn"/> <button label="ユーザー1名をホームにテレポート..." name="kick_btn"/> <button label="ユーザー全員をホームにテレポート..." name="kick_all_btn"/> - <button label="リージョンにメッセージを送信..." name="im_btn"/> + <button label="メッセージを地域に送信..." name="im_btn"/> <button label="テレハブの管理..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_texture.xml b/indra/newview/skins/default/xui/ja/panel_region_texture.xml index ea784df127..17e3260460 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_texture.xml @@ -48,7 +48,8 @@ 数値は上のテクスチャのブレンド範囲を示します。 </text> <text name="height_text_lbl11"> - 計測単位はメートルで、「低」の値は、1番のテクスチャの高さの「最大値」です。「高」の値は、4番のテクスチャの高さの「最低値」です。 + 計測単位はメートルで、「低」の値は、1番のテクスチャの高さの +「最大値」です。「高」の値は、4番のテクスチャの高さの「最低値」です。 </text> <text name="height_text_lbl12"> そして「高」の値はテクスチャー#4の高さの下限となります。 diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml index e8b5be63ae..1d81304860 100644 --- a/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml +++ b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml @@ -4,7 +4,7 @@ ローディング... </text> <scroll_list name="scripts_list"> - <scroll_list.columns label="サイズ (kb)" name="size"/> + <scroll_list.columns label="サイズ (kb)" name="size" width="90"/> <scroll_list.columns label="URL" name="urls"/> <scroll_list.columns label="オブジェクト名" name="name"/> <scroll_list.columns label="場所" name="location"/> diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml index fe0b44d8f4..6a62af4ec6 100644 --- a/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml +++ b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml @@ -13,9 +13,9 @@ ローディング... </text> <scroll_list name="scripts_list"> - <scroll_list.columns label="サイズ (kb)" name="size"/> + <scroll_list.columns label="サイズ (kb)" name="size" width="90"/> <scroll_list.columns label="オブジェクト名" name="name"/> - <scroll_list.columns label="オブジェクトの所有者" name="owner"/> + <scroll_list.columns label="オブジェクトの所有者" name="owner" width="120"/> <scroll_list.columns label="区画・位置" name="location"/> </scroll_list> <button label="リスト更新" name="refresh_list_btn"/> diff --git a/indra/newview/skins/default/xui/ja/panel_side_tray.xml b/indra/newview/skins/default/xui/ja/panel_side_tray.xml index ce5f0b940c..48636f1e3b 100644 --- a/indra/newview/skins/default/xui/ja/panel_side_tray.xml +++ b/indra/newview/skins/default/xui/ja/panel_side_tray.xml @@ -2,26 +2,26 @@ <!-- Side tray cannot show background because it is always partially on screen to hold tab buttons. --> <side_tray name="sidebar"> - <sidetray_tab description="サイドバーを表示・非表示" name="sidebar_openclose"/> - <sidetray_tab description="ホーム。" name="sidebar_home"> + <sidetray_tab description="サイドバーを表示・非表示" name="sidebar_openclose" tab_title="サイドバーを開く・閉じる"/> + <sidetray_tab description="ホーム。" name="sidebar_home" tab_title="ホーム"> <panel label="ホーム" name="panel_home"/> </sidetray_tab> - <sidetray_tab description="あなたの公開プロフィールとピックを編集してください。" name="sidebar_me"> + <sidetray_tab description="あなたの公開プロフィールとピックを編集してください。" name="sidebar_me" tab_title="マイ プロフィール"> <panel label="ミー" name="panel_me"/> </sidetray_tab> - <sidetray_tab description="フレンド、連絡先、近くの人を探してください。" name="sidebar_people"> + <sidetray_tab description="フレンド、連絡先、近くの人を探してください。" name="sidebar_people" tab_title="人"> <panel_container name="panel_container"> <panel label="グループ情報" name="panel_group_info_sidetray"/> <panel label="ブロックされた住人とオブジェクト" name="panel_block_list_sidetray"/> </panel_container> </sidetray_tab> - <sidetray_tab description="行きたい場所、行ったことのある場所を探してください。" label="場所" name="sidebar_places"> + <sidetray_tab description="行きたい場所、行ったことのある場所を探してください。" label="場所" name="sidebar_places" tab_title="場所"> <panel label="場所" name="panel_places"/> </sidetray_tab> - <sidetray_tab description="あなたの持ち物を眺めてください。" name="sidebar_inventory"> + <sidetray_tab description="あなたの持ち物を眺めてください。" name="sidebar_inventory" tab_title="マイ 持ち物"> <panel label="持ち物を編集" name="sidepanel_inventory"/> </sidetray_tab> - <sidetray_tab description="あなたの容姿や現在の見た目を変更してください。" name="sidebar_appearance"> + <sidetray_tab description="あなたの容姿や現在の見た目を変更してください。" name="sidebar_appearance" tab_title="マイ 容姿"> <panel label="容姿の編集" name="sidepanel_appearance"/> </sidetray_tab> </side_tray> diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml index 063e584762..8d375aa6cd 100644 --- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml @@ -21,7 +21,7 @@ <panel.string name="buycurrencylabel"> L$ [AMT] </panel.string> - <button label="" label_selected="" name="buycurrency" tool_tip="私の残高"/> + <button label="" label_selected="" name="buycurrency" tool_tip="所持金"/> <button label="L$ の購入" name="buyL" tool_tip="クリックして L$ を購入します"/> <text name="TimeText" tool_tip="現在時刻(太平洋)"> 12:00 AM diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 288ad4bc1d..de628943ad 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -339,7 +339,7 @@ リンク </string> <string name="AvatarEditingAppearance"> - (容姿の編集) + (容姿の編集中) </string> <string name="AvatarAway"> 一時退席中 @@ -588,7 +588,7 @@ 接続しました </string> <string name="unavailable"> - あなたの現在のロケーションでは、ボイスを利用できません。 + 現在地では、ボイスを利用できません。 </string> <string name="hang_up"> インワールドボイスチャットの通話が切断されました @@ -642,7 +642,7 @@ 控えめ </string> <string name="SIM_ACCESS_ADULT"> - Adult + アダルト </string> <string name="SIM_ACCESS_DOWN"> オフライン @@ -786,7 +786,7 @@ 添付アイテムを保存 </string> <string name="TeleportOffer"> - テレポートを渡す + テレポートを送る </string> <string name="StartUpNotifications"> 不在中に新しい通知が届きました。 @@ -833,7 +833,7 @@ <string name="InventoryNoTexture"> 持ち物内にこのテクスチャのコピーがありません </string> - <string name="no_transfer" value=" (再販/プレゼント不可)"/> + <string name="no_transfer" value=" (再販・プレゼント不可)"/> <string name="no_modify" value=" (編集不可)"/> <string name="no_copy" value=" (コピー不可)"/> <string name="worn" value=" (着用中)"/> @@ -874,7 +874,7 @@ <string name="No Filters" value="いいえ "/> <string name="Since Logoff" value=" - ログオフ以来"/> <string name="InvFolder My Inventory"> - マイ 持ち物 + 持ち物 </string> <string name="InvFolder My Favorites"> お気に入り @@ -1706,7 +1706,7 @@ Linden 所在地 </string> <string name="Adult"> - Adult + アダルト </string> <string name="Arts&Culture"> アートとカルチャー @@ -3190,7 +3190,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 現在地の詳細を見る </string> <string name="LocationCtrlComboBtnTooltip"> - マイロケーション履歴 + マイ ロケーション履歴 </string> <string name="LocationCtrlForSaleTooltip"> この土地を購入 @@ -3247,7 +3247,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ -- インスタントメッセージの保存開始 -- </string> <string name="IM_typing_start_string"> - [NAME] は入力中... + [NAME] は入力中です... </string> <string name="Unnamed"> (名前なし) diff --git a/indra/test_apps/llplugintest/llmediaplugintest.cpp b/indra/test_apps/llplugintest/llmediaplugintest.cpp index d183aac208..0ff53f3e00 100644 --- a/indra/test_apps/llplugintest/llmediaplugintest.cpp +++ b/indra/test_apps/llplugintest/llmediaplugintest.cpp @@ -1169,8 +1169,8 @@ void LLMediaPluginTest::keyboard( int key ) exit( 0 ); }; - mSelectedPanel->mMediaSource->keyEvent( LLPluginClassMedia::KEY_EVENT_DOWN, key, 0 ); - mSelectedPanel->mMediaSource->keyEvent( LLPluginClassMedia::KEY_EVENT_UP, key, 0 ); + mSelectedPanel->mMediaSource->keyEvent( LLPluginClassMedia::KEY_EVENT_DOWN, key, 0 , LLSD()); + mSelectedPanel->mMediaSource->keyEvent( LLPluginClassMedia::KEY_EVENT_UP, key, 0, LLSD()); }; //////////////////////////////////////////////////////////////////////////////// |