summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llcommon/linden_common.h6
-rw-r--r--indra/llcommon/llapr.cpp22
-rw-r--r--indra/llcommon/llapr.h14
-rw-r--r--indra/llcommon/lldqueueptr.h8
-rw-r--r--indra/llcommon/llthread.cpp12
-rw-r--r--indra/llcommon/llversionviewer.h2
-rw-r--r--indra/llmessage/llpacketbuffer.cpp23
-rw-r--r--indra/llmessage/llpacketbuffer.h1
-rw-r--r--indra/llmessage/llpacketring.cpp4
-rw-r--r--indra/llmessage/llpacketring.h2
-rw-r--r--indra/llmessage/llxfer.cpp4
-rw-r--r--indra/llmessage/llxfer.h2
-rw-r--r--indra/llmessage/llxfer_file.cpp6
-rw-r--r--indra/llmessage/llxfer_file.h2
-rw-r--r--indra/llmessage/llxfer_mem.cpp6
-rw-r--r--indra/llmessage/llxfer_mem.h2
-rw-r--r--indra/llmessage/llxfer_vfile.cpp6
-rw-r--r--indra/llmessage/llxfer_vfile.h2
-rw-r--r--indra/llmessage/llxfermanager.cpp4
-rw-r--r--indra/llmessage/llxfermanager.h2
-rw-r--r--indra/llrender/llgl.cpp22
-rw-r--r--indra/llrender/llrender.cpp6
-rw-r--r--indra/llrender/llrender.h3
-rw-r--r--indra/llrender/llvertexbuffer.cpp2
-rw-r--r--indra/llui/lltexteditor.cpp16
-rw-r--r--indra/llui/llui.cpp2
-rw-r--r--indra/llvfs/lldir.cpp3
-rw-r--r--indra/llvfs/lldir_win32.cpp10
-rw-r--r--indra/llwindow/llwindow.cpp5
-rw-r--r--indra/llwindow/llwindow.h1
-rw-r--r--indra/llwindow/llwindowwin32.cpp4
-rw-r--r--indra/lscript/lscript_compile/indra.l7
-rw-r--r--indra/lscript/lscript_compile/indra.y71
-rw-r--r--indra/newview/app_settings/keywords.ini4
-rw-r--r--indra/newview/app_settings/settings.xml68
-rw-r--r--indra/newview/gpu_table.txt6
-rw-r--r--indra/newview/llappviewer.cpp13
-rw-r--r--indra/newview/llappviewerwin32.cpp35
-rw-r--r--indra/newview/llfloaterfriends.cpp33
-rw-r--r--indra/newview/llfloaterfriends.h3
-rw-r--r--indra/newview/llfloaterimagepreview.cpp3
-rw-r--r--indra/newview/llfloatertopobjects.cpp23
-rw-r--r--indra/newview/llglsandbox.cpp41
-rw-r--r--indra/newview/llinventorymodel.cpp76
-rw-r--r--indra/newview/llinventorymodel.h15
-rw-r--r--indra/newview/llpanellogin.cpp14
-rw-r--r--indra/newview/llsky.h1
-rw-r--r--indra/newview/llspatialpartition.cpp7
-rw-r--r--indra/newview/lltexturecache.cpp12
-rw-r--r--indra/newview/lltexturecache.h3
-rw-r--r--indra/newview/lltoolpie.cpp2
-rw-r--r--indra/newview/llurl.cpp4
-rw-r--r--indra/newview/llurl.h2
-rw-r--r--indra/newview/llviewercontrol.cpp17
-rw-r--r--indra/newview/llviewerdisplay.cpp11
-rw-r--r--indra/newview/llviewermedia.cpp6
-rw-r--r--indra/newview/llviewermenu.cpp213
-rw-r--r--indra/newview/llviewerstats.cpp1
-rw-r--r--indra/newview/llviewerwindow.h5
-rw-r--r--indra/newview/llvoavatar.cpp13
-rw-r--r--indra/newview/llvoiceclient.cpp41
-rw-r--r--indra/newview/llvoiceclient.h4
-rw-r--r--indra/newview/llvovolume.cpp11
-rw-r--r--indra/newview/llxmlrpctransaction.cpp2
-rw-r--r--indra/newview/llxmlrpctransaction.h2
-rw-r--r--indra/newview/pipeline.cpp1
-rw-r--r--indra/newview/pipeline.h3
-rw-r--r--indra/newview/skins/default/xui/de/floater_about.xml38
-rw-r--r--indra/newview/skins/default/xui/de/floater_about_land.xml22
-rw-r--r--indra/newview/skins/default/xui/de/floater_im.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_live_lsleditor.xml1
-rw-r--r--indra/newview/skins/default/xui/de/floater_mem_leaking.xml18
-rw-r--r--indra/newview/skins/default/xui/de/floater_postcard.xml18
-rw-r--r--indra/newview/skins/default/xui/de/floater_report_abuse.xml113
-rw-r--r--indra/newview/skins/default/xui/de/floater_snapshot.xml30
-rw-r--r--indra/newview/skins/default/xui/de/floater_tools.xml25
-rw-r--r--indra/newview/skins/default/xui/de/floater_top_objects.xml21
-rw-r--r--indra/newview/skins/default/xui/de/floater_tos.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_viewer.xml14
-rw-r--r--indra/newview/skins/default/xui/de/mime_types.xml11
-rw-r--r--indra/newview/skins/default/xui/de/panel_login.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_chat.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_debug.xml14
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/de/role_actions.xml15
-rw-r--r--indra/newview/skins/default/xui/de/strings.xml24
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about.xml40
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about_land.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_im.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/floater_mem_leaking.xml19
-rw-r--r--indra/newview/skins/default/xui/ja/floater_postcard.xml23
-rw-r--r--indra/newview/skins/default/xui/ja/floater_report_abuse.xml115
-rw-r--r--indra/newview/skins/default/xui/ja/floater_snapshot.xml30
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tools.xml25
-rw-r--r--indra/newview/skins/default/xui/ja/floater_top_objects.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tos.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_viewer.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/mime_types.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/panel_login.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_chat.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_debug.xml15
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/role_actions.xml27
-rw-r--r--indra/newview/skins/default/xui/ja/strings.xml24
-rw-r--r--indra/win_crash_logger/llcrashloggerwindows.cpp2
-rw-r--r--indra/win_crash_logger/llcrashloggerwindows.h1
-rw-r--r--indra/win_crash_logger/win_crash_logger.cpp2
110 files changed, 1137 insertions, 589 deletions
diff --git a/indra/llcommon/linden_common.h b/indra/llcommon/linden_common.h
index 60ea21d642..1581522a2e 100644
--- a/indra/llcommon/linden_common.h
+++ b/indra/llcommon/linden_common.h
@@ -32,6 +32,12 @@
#ifndef LL_LINDEN_COMMON_H
#define LL_LINDEN_COMMON_H
+#if defined(LL_WINDOWS) && defined(_DEBUG)
+# define _CRTDBG_MAP_ALLOC
+# include <stdlib.h>
+# include <crtdbg.h>
+#endif
+
#include "llpreprocessor.h"
#include <cstring>
diff --git a/indra/llcommon/llapr.cpp b/indra/llcommon/llapr.cpp
index e83473216a..697f380f98 100644
--- a/indra/llcommon/llapr.cpp
+++ b/indra/llcommon/llapr.cpp
@@ -73,6 +73,28 @@ void ll_cleanup_apr()
}
//
+//LLAPRPool
+//
+LLAPRPool::LLAPRPool(apr_pool_t *parent, apr_size_t size)
+{
+ mStatus = apr_pool_create(&mPool, parent);
+
+ if(size > 0) //size is the number of blocks (which is usually 4K), NOT bytes.
+ {
+ apr_allocator_t *allocator = apr_pool_allocator_get(mPool);
+ if (allocator)
+ {
+ apr_allocator_max_free_set(allocator, size) ;
+ }
+ }
+}
+
+LLAPRPool::~LLAPRPool()
+{
+ apr_pool_destroy(mPool) ;
+}
+
+//
// LLScopedLock
//
LLScopedLock::LLScopedLock(apr_thread_mutex_t* mutex) : mMutex(mutex)
diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h
index 403d504932..7d6dd4590f 100644
--- a/indra/llcommon/llapr.h
+++ b/indra/llcommon/llapr.h
@@ -60,6 +60,20 @@ void ll_init_apr();
*/
void ll_cleanup_apr();
+class LLAPRPool
+{
+public:
+ LLAPRPool(apr_pool_t *parent = NULL, apr_size_t size = 0) ;
+ ~LLAPRPool() ;
+
+ apr_pool_t* getAPRPool() {return mPool ; }
+ apr_status_t getStatus() {return mStatus ; }
+
+private:
+ apr_pool_t* mPool ;
+ apr_status_t mStatus ;
+} ;
+
/**
* @class LLScopedLock
* @brief Small class to help lock and unlock mutexes.
diff --git a/indra/llcommon/lldqueueptr.h b/indra/llcommon/lldqueueptr.h
index 06eee34cbc..0999e6754a 100644
--- a/indra/llcommon/lldqueueptr.h
+++ b/indra/llcommon/lldqueueptr.h
@@ -47,7 +47,7 @@ public:
void init();
void destroy();
void reset();
- void realloc(U32 newsize);
+ void reallocate(U32 newsize);
// ACCESSORS
const Type& get(const S32 index) const; // no bounds checking
@@ -115,7 +115,7 @@ template <class Type>
inline LLDynamicQueuePtr<Type>::LLDynamicQueuePtr(const S32 size)
{
init();
- realloc(size);
+ reallocate(size);
}
template <class Type>
@@ -134,7 +134,7 @@ inline void LLDynamicQueuePtr<Type>::init()
}
template <class Type>
-inline void LLDynamicQueuePtr<Type>::realloc(U32 newsize)
+inline void LLDynamicQueuePtr<Type>::reallocate(U32 newsize)
{
if (newsize)
{
@@ -308,7 +308,7 @@ inline S32 LLDynamicQueuePtr<Type>::push(const Type &obj)
{
if (mMaxObj - count() <= 1)
{
- realloc(mMaxObj * 2);
+ reallocate(mMaxObj * 2);
}
mMemory[mLastObj++] = obj;
diff --git a/indra/llcommon/llthread.cpp b/indra/llcommon/llthread.cpp
index cc58552099..81cae60f3b 100644
--- a/indra/llcommon/llthread.cpp
+++ b/indra/llcommon/llthread.cpp
@@ -266,12 +266,12 @@ void LLThread::wakeLocked()
LLMutex::LLMutex(apr_pool_t *poolp) :
mAPRMutexp(NULL)
{
- if (poolp)
- {
- mIsLocalPool = FALSE;
- mAPRPoolp = poolp;
- }
- else
+ //if (poolp)
+ //{
+ // mIsLocalPool = FALSE;
+ // mAPRPoolp = poolp;
+ //}
+ //else
{
mIsLocalPool = TRUE;
apr_pool_create(&mAPRPoolp, NULL); // Create a subpool for this thread
diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index 0555b9ea3c..ce8d1e5759 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -34,7 +34,7 @@
const S32 LL_VERSION_MAJOR = 1;
const S32 LL_VERSION_MINOR = 21;
-const S32 LL_VERSION_PATCH = 0;
+const S32 LL_VERSION_PATCH = 2;
const S32 LL_VERSION_BUILD = 0;
const char * const LL_CHANNEL = "Second Life Release";
diff --git a/indra/llmessage/llpacketbuffer.cpp b/indra/llmessage/llpacketbuffer.cpp
index cb71fcd773..f264e8f495 100644
--- a/indra/llmessage/llpacketbuffer.cpp
+++ b/indra/llmessage/llpacketbuffer.cpp
@@ -65,7 +65,6 @@ LLPacketBuffer::LLPacketBuffer (S32 hSocket)
LLPacketBuffer::~LLPacketBuffer ()
{
- free();
}
///////////////////////////////////////////////////////////
@@ -76,25 +75,3 @@ void LLPacketBuffer::init (S32 hSocket)
mHost = ::get_sender();
}
-///////////////////////////////////////////////////////////
-
-void LLPacketBuffer::free ()
-{
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/indra/llmessage/llpacketbuffer.h b/indra/llmessage/llpacketbuffer.h
index 1e57517f29..9308202f1b 100644
--- a/indra/llmessage/llpacketbuffer.h
+++ b/indra/llmessage/llpacketbuffer.h
@@ -47,7 +47,6 @@ public:
const char *getData() const { return mData; }
LLHost getHost() const { return mHost; }
void init(S32 hSocket);
- void free();
protected:
char mData[NET_BUFFER_SIZE]; // packet data /* Flawfinder : ignore */
diff --git a/indra/llmessage/llpacketring.cpp b/indra/llmessage/llpacketring.cpp
index 48a02fede5..646d1865ea 100644
--- a/indra/llmessage/llpacketring.cpp
+++ b/indra/llmessage/llpacketring.cpp
@@ -59,11 +59,11 @@ LLPacketRing::LLPacketRing () :
///////////////////////////////////////////////////////////
LLPacketRing::~LLPacketRing ()
{
- free();
+ cleanup();
}
///////////////////////////////////////////////////////////
-void LLPacketRing::free ()
+void LLPacketRing::cleanup ()
{
LLPacketBuffer *packetp;
diff --git a/indra/llmessage/llpacketring.h b/indra/llmessage/llpacketring.h
index 0e1450ac1b..20aea5950d 100644
--- a/indra/llmessage/llpacketring.h
+++ b/indra/llmessage/llpacketring.h
@@ -47,7 +47,7 @@ public:
LLPacketRing();
~LLPacketRing();
- void free();
+ void cleanup();
void dropPackets(U32);
void setDropPercentage (F32 percent_to_drop);
diff --git a/indra/llmessage/llxfer.cpp b/indra/llmessage/llxfer.cpp
index 5682b1c454..8091184fda 100644
--- a/indra/llmessage/llxfer.cpp
+++ b/indra/llmessage/llxfer.cpp
@@ -55,7 +55,7 @@ LLXfer::LLXfer (S32 chunk_size)
LLXfer::~LLXfer ()
{
- free();
+ cleanup();
}
///////////////////////////////////////////////////////////
@@ -90,7 +90,7 @@ void LLXfer::init (S32 chunk_size)
///////////////////////////////////////////////////////////
-void LLXfer::free ()
+void LLXfer::cleanup ()
{
if (mBuffer)
{
diff --git a/indra/llmessage/llxfer.h b/indra/llmessage/llxfer.h
index 57abc28960..9a8696e143 100644
--- a/indra/llmessage/llxfer.h
+++ b/indra/llmessage/llxfer.h
@@ -88,7 +88,7 @@ class LLXfer
virtual ~LLXfer();
void init(S32 chunk_size);
- virtual void free();
+ virtual void cleanup();
virtual S32 startSend (U64 xfer_id, const LLHost &remote_host);
virtual void sendPacket(S32 packet_num);
diff --git a/indra/llmessage/llxfer_file.cpp b/indra/llmessage/llxfer_file.cpp
index 3643c4880d..4926311adb 100644
--- a/indra/llmessage/llxfer_file.cpp
+++ b/indra/llmessage/llxfer_file.cpp
@@ -67,7 +67,7 @@ LLXfer_File::LLXfer_File (const std::string& local_filename, BOOL delete_local_o
LLXfer_File::~LLXfer_File ()
{
- free();
+ cleanup();
}
///////////////////////////////////////////////////////////
@@ -95,7 +95,7 @@ void LLXfer_File::init (const std::string& local_filename, BOOL delete_local_on_
///////////////////////////////////////////////////////////
-void LLXfer_File::free ()
+void LLXfer_File::cleanup ()
{
if (mFp)
{
@@ -115,7 +115,7 @@ void LLXfer_File::free ()
lldebugs << "Keeping local file: " << mLocalFilename << llendl;
}
- LLXfer::free();
+ LLXfer::cleanup();
}
///////////////////////////////////////////////////////////
diff --git a/indra/llmessage/llxfer_file.h b/indra/llmessage/llxfer_file.h
index 04336c75fe..8fdfd5e71f 100644
--- a/indra/llmessage/llxfer_file.h
+++ b/indra/llmessage/llxfer_file.h
@@ -53,7 +53,7 @@ class LLXfer_File : public LLXfer
virtual ~LLXfer_File();
virtual void init(const std::string& local_filename, BOOL delete_local_on_completion, S32 chunk_size);
- virtual void free();
+ virtual void cleanup();
virtual S32 initializeRequest(U64 xfer_id,
const std::string& local_filename,
diff --git a/indra/llmessage/llxfer_mem.cpp b/indra/llmessage/llxfer_mem.cpp
index dbaa3aebed..20b3db3e0b 100644
--- a/indra/llmessage/llxfer_mem.cpp
+++ b/indra/llmessage/llxfer_mem.cpp
@@ -48,7 +48,7 @@ LLXfer_Mem::LLXfer_Mem ()
LLXfer_Mem::~LLXfer_Mem ()
{
- free();
+ cleanup();
}
///////////////////////////////////////////////////////////
@@ -62,9 +62,9 @@ void LLXfer_Mem::init ()
///////////////////////////////////////////////////////////
-void LLXfer_Mem::free ()
+void LLXfer_Mem::cleanup ()
{
- LLXfer::free();
+ LLXfer::cleanup();
}
///////////////////////////////////////////////////////////
diff --git a/indra/llmessage/llxfer_mem.h b/indra/llmessage/llxfer_mem.h
index a6b95c0fcf..c251348553 100644
--- a/indra/llmessage/llxfer_mem.h
+++ b/indra/llmessage/llxfer_mem.h
@@ -55,7 +55,7 @@ class LLXfer_Mem : public LLXfer
virtual ~LLXfer_Mem();
virtual void init();
- virtual void free();
+ virtual void cleanup();
virtual S32 startSend (U64 xfer_id, const LLHost &remote_host);
virtual U64 registerXfer(U64 xfer_id, const void *datap, const S32 length);
diff --git a/indra/llmessage/llxfer_vfile.cpp b/indra/llmessage/llxfer_vfile.cpp
index 6dd683043b..aff1636290 100644
--- a/indra/llmessage/llxfer_vfile.cpp
+++ b/indra/llmessage/llxfer_vfile.cpp
@@ -60,7 +60,7 @@ LLXfer_VFile::LLXfer_VFile (LLVFS *vfs, const LLUUID &local_id, LLAssetType::ETy
LLXfer_VFile::~LLXfer_VFile ()
{
- free();
+ cleanup();
}
///////////////////////////////////////////////////////////
@@ -82,7 +82,7 @@ void LLXfer_VFile::init (LLVFS *vfs, const LLUUID &local_id, LLAssetType::EType
///////////////////////////////////////////////////////////
-void LLXfer_VFile::free ()
+void LLXfer_VFile::cleanup ()
{
LLVFile file(mVFS, mTempID, mType, LLVFile::WRITE);
file.remove();
@@ -90,7 +90,7 @@ void LLXfer_VFile::free ()
delete mVFile;
mVFile = NULL;
- LLXfer::free();
+ LLXfer::cleanup();
}
///////////////////////////////////////////////////////////
diff --git a/indra/llmessage/llxfer_vfile.h b/indra/llmessage/llxfer_vfile.h
index 84457edf26..c883d27854 100644
--- a/indra/llmessage/llxfer_vfile.h
+++ b/indra/llmessage/llxfer_vfile.h
@@ -58,7 +58,7 @@ class LLXfer_VFile : public LLXfer
virtual ~LLXfer_VFile();
virtual void init(LLVFS *vfs, const LLUUID &local_id, LLAssetType::EType type);
- virtual void free();
+ virtual void cleanup();
virtual S32 initializeRequest(U64 xfer_id,
LLVFS *vfs,
diff --git a/indra/llmessage/llxfermanager.cpp b/indra/llmessage/llxfermanager.cpp
index 7f05404636..2afb9845c0 100644
--- a/indra/llmessage/llxfermanager.cpp
+++ b/indra/llmessage/llxfermanager.cpp
@@ -64,7 +64,7 @@ LLXferManager::LLXferManager (LLVFS *vfs)
LLXferManager::~LLXferManager ()
{
- free();
+ cleanup();
}
///////////////////////////////////////////////////////////
@@ -86,7 +86,7 @@ void LLXferManager::init (LLVFS *vfs)
///////////////////////////////////////////////////////////
-void LLXferManager::free ()
+void LLXferManager::cleanup ()
{
LLXfer *xferp;
LLXfer *delp;
diff --git a/indra/llmessage/llxfermanager.h b/indra/llmessage/llxfermanager.h
index dff8181584..1a3e37102f 100644
--- a/indra/llmessage/llxfermanager.h
+++ b/indra/llmessage/llxfermanager.h
@@ -114,7 +114,7 @@ class LLXferManager
virtual ~LLXferManager();
virtual void init(LLVFS *vfs);
- virtual void free();
+ virtual void cleanup();
void setUseAckThrottling(const BOOL use);
void setAckThrottleBPS(const F32 bps);
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index 42beddc5c7..570a0cbed1 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -60,6 +60,8 @@ BOOL gClothRipple = FALSE;
BOOL gNoRender = FALSE;
LLMatrix4 gGLObliqueProjectionInverse;
+#define LL_GL_NAME_POOLING 0
+
LLGLNamePool::pool_list_t LLGLNamePool::sInstances;
#if (LL_WINDOWS || LL_LINUX) && !LL_MESA_HEADLESS
@@ -1627,6 +1629,7 @@ void LLGLNamePool::cleanup()
GLuint LLGLNamePool::allocate()
{
+#if LL_GL_NAME_POOLING
for (name_list_t::iterator iter = mNameList.begin(); iter != mNameList.end(); ++iter)
{
if (!iter->used)
@@ -1642,18 +1645,33 @@ GLuint LLGLNamePool::allocate()
mNameList.push_back(entry);
return entry.name;
+#else
+ return allocateName();
+#endif
}
void LLGLNamePool::release(GLuint name)
{
+#if LL_GL_NAME_POOLING
for (name_list_t::iterator iter = mNameList.begin(); iter != mNameList.end(); ++iter)
{
if (iter->name == name)
{
- iter->used = FALSE;
- return;
+ if (iter->used)
+ {
+ iter->used = FALSE;
+ return;
+ }
+ else
+ {
+ llerrs << "Attempted to release a pooled name that is not in use!" << llendl;
+ }
}
}
+ llerrs << "Attempted to release a non pooled name!" << llendl;
+#else
+ releaseName(name);
+#endif
}
//static
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 4a87424bb8..9b116d6410 100644
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -439,10 +439,16 @@ LLRender::LLRender()
LLRender::~LLRender()
{
+ shutdown();
+}
+
+void LLRender::shutdown()
+{
for (U32 i = 0; i < mTexUnits.size(); i++)
{
delete mTexUnits[i];
}
+ mTexUnits.clear();
}
void LLRender::translatef(const GLfloat& x, const GLfloat& y, const GLfloat& z)
diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h
index 7896f6c922..5133f2804e 100644
--- a/indra/llrender/llrender.h
+++ b/indra/llrender/llrender.h
@@ -176,7 +176,8 @@ public:
LLRender();
~LLRender();
-
+ void shutdown();
+
void translatef(const GLfloat& x, const GLfloat& y, const GLfloat& z);
void scalef(const GLfloat& x, const GLfloat& y, const GLfloat& z);
void pushMatrix();
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
index 3f2eb61641..2414d2adff 100644
--- a/indra/llrender/llvertexbuffer.cpp
+++ b/indra/llrender/llvertexbuffer.cpp
@@ -195,6 +195,7 @@ void LLVertexBuffer::drawRange(U32 mode, U32 start, U32 end, U32 count, U32 indi
glDrawRangeElements(sGLMode[mode], start, end, count, GL_UNSIGNED_SHORT,
((U16*) getIndicesPointer()) + indices_offset);
+ stop_glerror();
}
void LLVertexBuffer::draw(U32 mode, U32 count, U32 indices_offset) const
@@ -246,6 +247,7 @@ void LLVertexBuffer::drawArrays(U32 mode, U32 first, U32 count) const
}
glDrawArrays(sGLMode[mode], first, count);
+ stop_glerror();
}
//static
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index bf5cfd9934..0440d4c68b 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -4252,26 +4252,29 @@ void LLTextEditor::setTextEditorParameters(LLXMLNodePtr node)
}
///////////////////////////////////////////////////////////////////
+// Refactoring note: We may eventually want to replace this with boost::regex or
+// boost::tokenizer capabilities since we've already fixed at least two JIRAs
+// concerning logic issues associated with this function.
S32 LLTextEditor::findHTMLToken(const std::string &line, S32 pos, BOOL reverse) const
{
std::string openers=" \t\n('\"[{<>";
std::string closers=" \t\n)'\"]}><;";
- S32 m2;
- S32 retval;
+ S32 m2 = 0;
+ S32 retval = 0;
if (reverse)
{
- for (retval=pos; retval>0; retval--)
+ for (retval=pos; retval >= 0; retval--)
{
m2 = openers.find(line.substr(retval,1));
if (m2 >= 0)
{
- retval++;
break;
}
}
+ return retval+1;
}
else
{
@@ -4284,9 +4287,8 @@ S32 LLTextEditor::findHTMLToken(const std::string &line, S32 pos, BOOL reverse)
break;
}
}
- }
-
- return retval;
+ return retval;
+ }
}
BOOL LLTextEditor::findHTML(const std::string &line, S32 *begin, S32 *end) const
diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index f34c48b729..43898f57ef 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -134,7 +134,7 @@ void gl_state_for_2d(S32 width, S32 height)
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
- glOrtho(0.0f, window_width, 0.0f, window_height, -1.0f, 1.0f);
+ glOrtho(0.0f, llmax(window_width, 1.f), 0.0f, llmax(window_height,1.f), -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
stop_glerror();
diff --git a/indra/llvfs/lldir.cpp b/indra/llvfs/lldir.cpp
index 325a2a39b6..ff7bfde521 100644
--- a/indra/llvfs/lldir.cpp
+++ b/indra/llvfs/lldir.cpp
@@ -377,7 +377,8 @@ std::string LLDir::getExpandedFilename(ELLPath location, const std::string& subd
case LL_PATH_EXECUTABLE:
prefix = getExecutableDir();
-
+ break;
+
default:
llassert(0);
}
diff --git a/indra/llvfs/lldir_win32.cpp b/indra/llvfs/lldir_win32.cpp
index d21babec24..6e124002bc 100644
--- a/indra/llvfs/lldir_win32.cpp
+++ b/indra/llvfs/lldir_win32.cpp
@@ -117,15 +117,13 @@ LLDir_Win32::LLDir_Win32()
mExecutableDir = utf16str_to_utf8str(llutf16string(w_str));
#endif
- mAppRODataDir = getCurPath();
- // *FIX:Mani - The following is the old way we did things. I'm keeping this around
- // in case there is some really good reason to make mAppRODataDir == mExecutableDir
- /*
- if (strstr(mExecutableDir.c_str(), "indra\\newview"))
+ // When running in a dev tree, app_settings is under indra/newview/
+ // but in production it is under Program Files/SecondLife/
+ // Attempt to detect which one we're using. JC
+ if (mExecutableDir.find("indra") != std::string::npos)
mAppRODataDir = getCurPath();
else
mAppRODataDir = mExecutableDir;
- */
}
LLDir_Win32::~LLDir_Win32()
diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp
index 6b1cabc505..4f467be02d 100644
--- a/indra/llwindow/llwindow.cpp
+++ b/indra/llwindow/llwindow.cpp
@@ -203,6 +203,11 @@ BOOL LLWindowCallbacks::handleDeviceChange(LLWindow *window)
return FALSE;
}
+void LLWindowCallbacks::handlePingWatchdog(LLWindow *window, const char * msg)
+{
+
+}
+
S32 OSMessageBox(const std::string& text, const std::string& caption, U32 type)
{
// Properly hide the splash screen when displaying the message box
diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h
index ec09234c83..9b1f005920 100644
--- a/indra/llwindow/llwindow.h
+++ b/indra/llwindow/llwindow.h
@@ -119,6 +119,7 @@ public:
virtual void handleDataCopy(LLWindow *window, S32 data_type, void *data);
virtual BOOL handleTimerEvent(LLWindow *window);
virtual BOOL handleDeviceChange(LLWindow *window);
+ virtual void handlePingWatchdog(LLWindow *window, const char * msg);
};
// Refer to llwindow_test in test/common/llwindow for usage example
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 1aaf18e3b6..0f2ef525b2 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -1575,7 +1575,9 @@ void LLWindowWin32::gatherInput()
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) && msg_count < MAX_MESSAGE_PER_UPDATE)
{
+ mCallbacks->handlePingWatchdog(this, "Main:TranslateGatherInput");
TranslateMessage(&msg);
+ mCallbacks->handlePingWatchdog(this, "Main:DispatchGatherInput");
DispatchMessage(&msg);
msg_count++;
@@ -1602,7 +1604,7 @@ void LLWindowWin32::gatherInput()
}
}
*/
-
+ mCallbacks->handlePingWatchdog(this, "Main:AsyncCallbackGatherInput");
// For async host by name support. Really hacky.
if (gAsyncMsgCallback && (LL_WM_HOST_RESOLVED == msg.message))
{
diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l
index 49ed6fc5ee..3e62195dc8 100644
--- a/indra/lscript/lscript_compile/indra.l
+++ b/indra/lscript/lscript_compile/indra.l
@@ -611,6 +611,11 @@ extern "C" { int yyerror(const char *fmt, ...); }
"TEXTURE_PLYWOOD" { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "89556747-24cb-43ed-920b-47caed15465f"); return(STRING_CONSTANT); }
"TEXTURE_TRANSPARENT" { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"); return(STRING_CONSTANT); }
+"TOUCH_INVALID_FACE" { count(); yylval.ival = -1; return(INTEGER_CONSTANT); }
+"TOUCH_INVALID_VECTOR" { count(); return(TOUCH_INVALID_VECTOR); }
+"TOUCH_INVALID_TEXCOORD" { count(); return(TOUCH_INVALID_TEXCOORD); }
+
+
{L}({L}|{N})* { count(); yylval.sval = new char[strlen(yytext) + 1]; strcpy(yylval.sval, yytext); return(IDENTIFIER); }
{N}+{E} { count(); yylval.fval = (F32)atof(yytext); return(FP_CONSTANT); }
@@ -752,8 +757,8 @@ BOOL lscript_compile(const char* src_filename, const char* dst_filename,
#ifdef EMERGENCY_DEBUG_PRINTOUTS
fclose(compfile);
#endif
- fclose(yyout);
}
+ fclose(yyout);
fclose(yyin);
}
diff --git a/indra/lscript/lscript_compile/indra.y b/indra/lscript/lscript_compile/indra.y
index d10cbfedba..fdc240c772 100644
--- a/indra/lscript/lscript_compile/indra.y
+++ b/indra/lscript/lscript_compile/indra.y
@@ -136,6 +136,9 @@
%token ZERO_VECTOR
%token ZERO_ROTATION
+%token TOUCH_INVALID_VECTOR
+%token TOUCH_INVALID_TEXCOORD
+
%nonassoc LOWER_THAN_ELSE
%nonassoc ELSE
@@ -439,6 +442,40 @@ vector_constant
$$ = new LLScriptSAVector(gLine, gColumn, sa0, sa1, sa2);
gAllocationManager->addAllocation($$);
}
+ | TOUCH_INVALID_VECTOR
+ {
+ LLScriptConstantFloat *cf0 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+ gAllocationManager->addAllocation(cf0);
+ LLScriptSAConstant *sa0 = new LLScriptSAConstant(gLine, gColumn, cf0);
+ gAllocationManager->addAllocation(sa0);
+ LLScriptConstantFloat *cf1 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+ gAllocationManager->addAllocation(cf1);
+ LLScriptSAConstant *sa1 = new LLScriptSAConstant(gLine, gColumn, cf1);
+ gAllocationManager->addAllocation(sa1);
+ LLScriptConstantFloat *cf2 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+ gAllocationManager->addAllocation(cf2);
+ LLScriptSAConstant *sa2 = new LLScriptSAConstant(gLine, gColumn, cf2);
+ gAllocationManager->addAllocation(sa2);
+ $$ = new LLScriptSAVector(gLine, gColumn, sa0, sa1, sa2);
+ gAllocationManager->addAllocation($$);
+ }
+ | TOUCH_INVALID_TEXCOORD
+ {
+ LLScriptConstantFloat *cf0 = new LLScriptConstantFloat(gLine, gColumn, -1.f);
+ gAllocationManager->addAllocation(cf0);
+ LLScriptSAConstant *sa0 = new LLScriptSAConstant(gLine, gColumn, cf0);
+ gAllocationManager->addAllocation(sa0);
+ LLScriptConstantFloat *cf1 = new LLScriptConstantFloat(gLine, gColumn, -1.f);
+ gAllocationManager->addAllocation(cf1);
+ LLScriptSAConstant *sa1 = new LLScriptSAConstant(gLine, gColumn, cf1);
+ gAllocationManager->addAllocation(sa1);
+ LLScriptConstantFloat *cf2 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+ gAllocationManager->addAllocation(cf2);
+ LLScriptSAConstant *sa2 = new LLScriptSAConstant(gLine, gColumn, cf2);
+ gAllocationManager->addAllocation(sa2);
+ $$ = new LLScriptSAVector(gLine, gColumn, sa0, sa1, sa2);
+ gAllocationManager->addAllocation($$);
+ }
;
quaternion_constant
@@ -1645,6 +1682,40 @@ vector_initializer
$$ = new LLScriptVectorInitializer(gLine, gColumn, sa0, sa1, sa2);
gAllocationManager->addAllocation($$);
}
+ | TOUCH_INVALID_VECTOR
+ {
+ LLScriptConstantFloat *cf0 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+ gAllocationManager->addAllocation(cf0);
+ LLScriptConstantExpression *sa0 = new LLScriptConstantExpression(gLine, gColumn, cf0);
+ gAllocationManager->addAllocation(sa0);
+ LLScriptConstantFloat *cf1 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+ gAllocationManager->addAllocation(cf1);
+ LLScriptConstantExpression *sa1 = new LLScriptConstantExpression(gLine, gColumn, cf1);
+ gAllocationManager->addAllocation(sa1);
+ LLScriptConstantFloat *cf2 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+ gAllocationManager->addAllocation(cf2);
+ LLScriptConstantExpression *sa2 = new LLScriptConstantExpression(gLine, gColumn, cf2);
+ gAllocationManager->addAllocation(sa2);
+ $$ = new LLScriptVectorInitializer(gLine, gColumn, sa0, sa1, sa2);
+ gAllocationManager->addAllocation($$);
+ }
+ | TOUCH_INVALID_TEXCOORD
+ {
+ LLScriptConstantFloat *cf0 = new LLScriptConstantFloat(gLine, gColumn, -1.f);
+ gAllocationManager->addAllocation(cf0);
+ LLScriptConstantExpression *sa0 = new LLScriptConstantExpression(gLine, gColumn, cf0);
+ gAllocationManager->addAllocation(sa0);
+ LLScriptConstantFloat *cf1 = new LLScriptConstantFloat(gLine, gColumn, -1.f);
+ gAllocationManager->addAllocation(cf1);
+ LLScriptConstantExpression *sa1 = new LLScriptConstantExpression(gLine, gColumn, cf1);
+ gAllocationManager->addAllocation(sa1);
+ LLScriptConstantFloat *cf2 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+ gAllocationManager->addAllocation(cf2);
+ LLScriptConstantExpression *sa2 = new LLScriptConstantExpression(gLine, gColumn, cf2);
+ gAllocationManager->addAllocation(sa2);
+ $$ = new LLScriptVectorInitializer(gLine, gColumn, sa0, sa1, sa2);
+ gAllocationManager->addAllocation($$);
+ }
;
quaternion_initializer
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index 23c88dc449..3679c3882c 100644
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -506,6 +506,10 @@ CLICK_ACTION_OPEN Used with llSetClickAction to set open as the default ac
CLICK_ACTION_PLAY Used with llSetClickAction to set play as the default action when object is clicked
CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the default action when object is clicked
+TOUCH_INVALID_TEXCOORD Value returned by llDetectedTouchUV() and llDetectedTouchST() when the touch position is not valid.
+TOUCH_INVALID_VECTOR Value returned by llDetectedTouchPos(), llDetectedTouchNormal(), and llDetectedTouchBinormal() when the touch position is not valid.
+TOUCH_INVALID_FACE Value returned by llDetectedTouchFace() when the touch position is not valid.
+
# string constants
[word .1, .3, .5]
NULL_KEY Indicates an empty key
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 8526c5afcd..1f34bae9b5 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -2360,17 +2360,6 @@
<real>1.0</real>
</array>
</map>
- <key>EnablePushToTalk</key>
- <map>
- <key>Comment</key>
- <string>Must hold down a key or moouse button when talking into your microphone</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
<key>EnableRippleWater</key>
<map>
<key>Comment</key>
@@ -5165,7 +5154,7 @@
<key>PTTCurrentlyEnabled</key>
<map>
<key>Comment</key>
- <string />
+ <string>Use Push to Talk mode</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
@@ -5206,28 +5195,6 @@
<key>Value</key>
<string />
</map>
- <key>PerFrameHoverPick</key>
- <map>
- <key>Comment</key>
- <string>Detect the object under the mouse continually</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <real>1</real>
- </map>
- <key>PerFrameHoverPickCount</key>
- <map>
- <key>Comment</key>
- <string>Detect the object under the mouse every n frames</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
<key>PermissionsCautionEnabled</key>
<map>
<key>Comment</key>
@@ -5277,6 +5244,28 @@
<key>Value</key>
<real>0.34999999404</real>
</map>
+ <key>PicksPerSecondMouseMoving</key>
+ <map>
+ <key>Comment</key>
+ <string>How often to perform hover picks while the mouse is moving (picks per second)</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>5.0</real>
+ </map>
+ <key>PicksPerSecondMouseStationary</key>
+ <map>
+ <key>Comment</key>
+ <string>How often to perform hover picks while the mouse is stationary (picks per second)</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0.0</real>
+ </map>
<key>PieMenuLineWidth</key>
<map>
<key>Comment</key>
@@ -6885,17 +6874,6 @@
<key>Value</key>
<integer>0</integer>
</map>
- <key>ShowDepthBuffer</key>
- <map>
- <key>Comment</key>
- <string>Show depth buffer contents</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>0</integer>
- </map>
<key>ShowDirectory</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt
index 7e7be97482..77b75e178f 100644
--- a/indra/newview/gpu_table.txt
+++ b/indra/newview/gpu_table.txt
@@ -67,6 +67,12 @@ ATI Mobility Radeon 8xxx .*ATI.*Mobility.*Radeon 8.* 0 1
ATI Mobility Radeon 9800 .*ATI.*Mobility.*98.* 1 1
ATI Mobility Radeon 9700 .*ATI.*Mobility.*97.* 1 1
ATI Mobility Radeon 9600 .*ATI.*Mobility.*96.* 0 1
+ATI Mobility Radeon HD 2300 .*ATI.*Mobility.*HD.*23.* 1 1
+ATI Mobility Radeon HD 2400 .*ATI.*Mobility.*HD.*24.* 1 1
+ATI Mobility Radeon HD 2600 .*ATI.*Mobility.*HD.*26.* 3 1
+ATI Mobility Radeon HD 3400 .*ATI.*Mobility.*HD.*34.* 1 1
+ATI Mobility Radeon HD 3600 .*ATI.*Mobility.*HD.*36.* 3 1
+ATI Mobility Radeon HD 3800 .*ATI.*Mobility.*HD.*38.* 3 1
ATI Mobility Radeon X1xxx .*ATI.*Mobility.*X1.* 0 1
ATI Mobility Radeon X2xxx .*ATI.*Mobility.*X2.* 0 1
ATI Mobility Radeon X3xx .*ATI.*Mobility.*X3.* 1 1
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 4c8ea54d8d..8ee21b6115 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -58,6 +58,7 @@
#include "llfloatersnapshot.h"
#include "llviewerwindow.h"
#include "llviewerdisplay.h"
+#include "llviewermedia.h"
#include "llviewermessage.h"
#include "llviewerobjectlist.h"
#include "llworldmap.h"
@@ -82,8 +83,6 @@
# include <sys/file.h> // For initMarkerFile support
#endif
-
-
#include "llnotify.h"
#include "llviewerkeyboard.h"
#include "lllfsthread.h"
@@ -466,9 +465,6 @@ static void settings_modify()
gSavedSettings.setU32("VectorizeProcessor", 0 );
gSavedSettings.setBOOL("VectorizeSkin", FALSE);
#endif
-
- // propagate push to talk preference to current status
- gSavedSettings.setBOOL("PTTCurrentlyEnabled", TRUE); //gSavedSettings.getBOOL("EnablePushToTalk"));
}
void LLAppViewer::initGridChoice()
@@ -581,7 +577,7 @@ bool LLAppViewer::init()
// into the log files during normal startup until AFTER
// we run the "program crashed last time" error handler below.
//
-
+
// Need to do this initialization before we do anything else, since anything
// that touches files should really go through the lldir API
gDirUtilp->initAppDirs("SecondLife");
@@ -1364,6 +1360,7 @@ bool LLAppViewer::cleanup()
sImageDecodeThread = NULL;
gImageList.shutdown(); // shutdown again in case a callback added something
+ LLUIImageList::getInstance()->cleanUp();
// This should eventually be done in LLAppViewer
LLImage::cleanupClass();
@@ -1405,9 +1402,11 @@ bool LLAppViewer::cleanup()
LLWeb::loadURLExternal( gLaunchFileOnQuit );
}
-
+
+ LLViewerMedia::cleanupClass();
llinfos << "Goodbye" << llendflush;
+
// return 0;
return true;
}
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index 1d8f6a218c..a25b86467d 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -31,6 +31,10 @@
#include "llviewerprecompiledheaders.h"
+#if defined(_DEBUG)
+# define WINDOWS_CRT_MEM_CHECKS 1
+#endif
+
#include "llappviewerwin32.h"
#include "llmemtype.h"
@@ -127,6 +131,10 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
{
LLMemType mt1(LLMemType::MTYPE_STARTUP);
+#if WINDOWS_CRT_MEM_CHECKS && !INCLUDE_VLD
+ _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); // dump memory leaks on exit
+#endif
+
// *FIX: global
gIconResource = MAKEINTRESOURCE(IDI_LL_ICON);
@@ -156,7 +164,32 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
// the assumption is that the error handler is responsible for doing
// app cleanup if there was a problem.
//
- viewer_app_ptr->cleanup();
+#if WINDOWS_CRT_MEM_CHECKS
+ llinfos << "CRT Checking memory:" << llendflush;
+ if (!_CrtCheckMemory())
+ {
+ llwarns << "_CrtCheckMemory() failed at prior to cleanup!" << llendflush;
+ }
+ else
+ {
+ llinfos << " No corruption detected." << llendflush;
+ }
+#endif
+
+ viewer_app_ptr->cleanup();
+
+#if WINDOWS_CRT_MEM_CHECKS
+ llinfos << "CRT Checking memory:" << llendflush;
+ if (!_CrtCheckMemory())
+ {
+ llwarns << "_CrtCheckMemory() failed after cleanup!" << llendflush;
+ }
+ else
+ {
+ llinfos << " No corruption detected." << llendflush;
+ }
+#endif
+
}
delete viewer_app_ptr;
viewer_app_ptr = NULL;
diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp
index c5823ce0de..2d7d2ee15d 100644
--- a/indra/newview/llfloaterfriends.cpp
+++ b/indra/newview/llfloaterfriends.cpp
@@ -41,6 +41,7 @@
#include "lldir.h"
#include "llagent.h"
+#include "llappviewer.h" // for gLastVersionChannel
#include "llfloateravatarpicker.h"
#include "llviewerwindow.h"
#include "llbutton.h"
@@ -591,7 +592,7 @@ struct LLAddFriendData
};
// static
-void LLPanelFriends::callbackAddFriend(S32 option, const std::string& text, void* data)
+void LLPanelFriends::callbackAddFriendWithMessage(S32 option, const std::string& text, void* data)
{
LLAddFriendData* add = (LLAddFriendData*)data;
if (option == 0)
@@ -602,6 +603,22 @@ void LLPanelFriends::callbackAddFriend(S32 option, const std::string& text, void
}
// static
+void LLPanelFriends::callbackAddFriend(S32 option, void* data)
+{
+ LLAddFriendData* add = (LLAddFriendData*)data;
+ if (option == 0)
+ {
+ // Servers older than 1.25 require the text of the message to be the
+ // calling card folder ID for the offering user. JC
+ LLUUID calling_card_folder_id =
+ gInventory.findCategoryUUIDForType(LLAssetType::AT_CALLINGCARD);
+ std::string message = calling_card_folder_id.asString();
+ requestFriendship(add->mID, add->mName, message);
+ }
+ delete add;
+}
+
+// static
void LLPanelFriends::onPickAvatar(const std::vector<std::string>& names,
const std::vector<LLUUID>& ids,
void* )
@@ -625,10 +642,20 @@ void LLPanelFriends::requestFriendshipDialog(const LLUUID& id,
data->mID = id;
data->mName = name;
- // TODO: accept a line of text with this dialog
LLStringUtil::format_map_t args;
args["[NAME]"] = name;
- gViewerWindow->alertXmlEditText("AddFriend", args, NULL, NULL, callbackAddFriend, data);
+
+ // Look for server versions like: Second Life Server 1.24.4.95600
+ if (gLastVersionChannel.find(" 1.24.") != std::string::npos)
+ {
+ // Old and busted server version, doesn't support friend
+ // requests with messages.
+ gViewerWindow->alertXml("AddFriend", args, callbackAddFriend, data);
+ }
+ else
+ {
+ gViewerWindow->alertXmlEditText("AddFriendWithMessage", args, NULL, NULL, callbackAddFriendWithMessage, data);
+ }
}
// static
diff --git a/indra/newview/llfloaterfriends.h b/indra/newview/llfloaterfriends.h
index c8cdce49a7..e3f3f96d00 100644
--- a/indra/newview/llfloaterfriends.h
+++ b/indra/newview/llfloaterfriends.h
@@ -119,7 +119,8 @@ private:
// callback methods
static void onSelectName(LLUICtrl* ctrl, void* user_data);
- static void callbackAddFriend(S32 option, const std::string& text, void* user_data);
+ static void callbackAddFriendWithMessage(S32 option, const std::string& text, void* user_data);
+ static void callbackAddFriend(S32 option, void* user_data);
static void onPickAvatar(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* user_data);
static void onMaximumSelect(void* user_data);
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 32dcf3ae0a..3d29bb3286 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -114,8 +114,7 @@ BOOL LLFloaterImagePreview::postBuild()
mSculptedPreview = new LLImagePreviewSculpted(256, 256);
mSculptedPreview->setPreviewTarget(mRawImagep, 2.0f);
- if ((mRawImagep->getWidth() <= LL_IMAGE_REZ_LOSSLESS_CUTOFF) &&
- (mRawImagep->getHeight() <= LL_IMAGE_REZ_LOSSLESS_CUTOFF))
+ if (mRawImagep->getWidth() * mRawImagep->getHeight () <= LL_IMAGE_REZ_LOSSLESS_CUTOFF * LL_IMAGE_REZ_LOSSLESS_CUTOFF)
childEnable("lossless_check");
}
else
diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp
index 670541abe4..02ea02a291 100644
--- a/indra/newview/llfloatertopobjects.cpp
+++ b/indra/newview/llfloatertopobjects.cpp
@@ -157,8 +157,7 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
msg->getU32Fast(_PREHASH_RequestData, _PREHASH_TotalObjectCount, total_count);
msg->getU32Fast(_PREHASH_RequestData, _PREHASH_ReportType, mCurrentMode);
- LLCtrlListInterface *list = childGetListInterface("objects_list");
- if (!list) return;
+ LLScrollListCtrl *list = getChild<LLScrollListCtrl>("objects_list");
S32 block_count = msg->getNumberOfBlocks("ReportData");
for (S32 block = 0; block < block_count; ++block)
@@ -206,16 +205,16 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
element["columns"][3]["column"] = "location";
element["columns"][3]["value"] = llformat("<%0.1f,%0.1f,%0.1f>", location_x, location_y, location_z);
element["columns"][3]["font"] = "SANSSERIF";
- element["columns"][3]["column"] = "time";
- element["columns"][3]["value"] = formatted_time((time_t)time_stamp);
- element["columns"][3]["font"] = "SANSSERIF";
+ element["columns"][4]["column"] = "time";
+ element["columns"][4]["value"] = formatted_time((time_t)time_stamp);
+ element["columns"][4]["font"] = "SANSSERIF";
if (mCurrentMode == STAT_REPORT_TOP_SCRIPTS
&& have_extended_data)
{
- element["columns"][4]["column"] = "Mono Time";
- element["columns"][4]["value"] = llformat("%0.3f", mono_score);
- element["columns"][4]["font"] = "SANSSERIF";
+ element["columns"][5]["column"] = "Mono Time";
+ element["columns"][5]["value"] = llformat("%0.3f", mono_score);
+ element["columns"][5]["font"] = "SANSSERIF";
}
list->addElement(element);
@@ -228,13 +227,7 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
if (total_count == 0 && list->getItemCount() == 0)
{
- LLSD element;
- element["id"] = LLUUID::null;
- element["columns"][0]["column"] = "name";
- element["columns"][0]["value"] = getString("none_descriptor");
- element["columns"][0]["font"] = "SANSSERIF";
-
- list->addElement(element);
+ list->addCommentText(getString("none_descriptor"));
}
else
{
diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index 6b89d52b68..a021a66af2 100644
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -1111,44 +1111,3 @@ void LLViewerObjectList::renderObjectBeacons()
}
-void pre_show_depth_buffer()
-{
- glClear(GL_STENCIL_BUFFER_BIT);
- glEnable(GL_STENCIL_TEST);
- glStencilFunc(GL_ALWAYS,0,0);
- glStencilOp(GL_INCR,GL_INCR,GL_INCR);
-}
-
-void post_show_depth_buffer()
-{
- int xsize =500, ysize =500;
- U8 *buf = new U8[xsize*ysize];
-
- glReadPixels(0,0,xsize,ysize,GL_STENCIL_INDEX,GL_UNSIGNED_BYTE, buf);
-
- int total = 0;
- int i;
- for (i=0;i<xsize*ysize;i++)
- {
- total += buf[i];
- buf[i] <<= 3;
- }
-
- float DC = (float)total/(float)(ysize*xsize);
- int DCline = llfloor((xsize-20) * DC / 10.0f);
- int stride = xsize / 10;
-
- int y = 2;
-
- for (i=0;i<DCline;i++)
- {
- if (i % stride == 0) i+=2;
- if (i > xsize) y=6;
- buf[ysize*(y+0)+i]=255;
- buf[ysize*(y+1)+i]=255;
- buf[ysize*(y+2)+i]=255;
- }
- glDrawPixels(xsize,ysize,GL_RED,GL_UNSIGNED_BYTE,buf);
-
- delete [] buf;
-}
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index b890781ab2..9ee3840f7f 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -292,6 +292,28 @@ void LLInventoryModel::getDirectDescendentsOf(const LLUUID& cat_id,
items = get_ptr_in_map(mParentChildItemTree, cat_id);
}
+// SJB: Added version to lock the arrays to catch potential logic bugs
+void LLInventoryModel::lockDirectDescendentArrays(const LLUUID& cat_id,
+ cat_array_t*& categories,
+ item_array_t*& items)
+{
+ getDirectDescendentsOf(cat_id, categories, items);
+ if (categories)
+ {
+ mCategoryLock[cat_id] = true;
+ }
+ if (items)
+ {
+ mItemLock[cat_id] = true;
+ }
+}
+
+void LLInventoryModel::unlockDirectDescendentArrays(const LLUUID& cat_id)
+{
+ mCategoryLock[cat_id] = false;
+ mItemLock[cat_id] = false;
+}
+
// findCategoryUUIDForType() returns the uuid of the category that
// specifies 'type' as what it defaults to containing. The category is
// not necessarily only for that type. *NOTE: This will create a new
@@ -619,6 +641,26 @@ U32 LLInventoryModel::updateItem(const LLViewerInventoryItem* item)
return mask;
}
+LLInventoryModel::cat_array_t* LLInventoryModel::getUnlockedCatArray(const LLUUID& id)
+{
+ cat_array_t* cat_array = get_ptr_in_map(mParentChildCategoryTree, id);
+ if (cat_array)
+ {
+ llassert_always(mCategoryLock[id] == false);
+ }
+ return cat_array;
+}
+
+LLInventoryModel::item_array_t* LLInventoryModel::getUnlockedItemArray(const LLUUID& id)
+{
+ item_array_t* item_array = get_ptr_in_map(mParentChildItemTree, id);
+ if (item_array)
+ {
+ llassert_always(mItemLock[id] == false);
+ }
+ return item_array;
+}
+
// Calling this method with an inventory category will either change
// an existing item with the matching id, or it will add the category.
void LLInventoryModel::updateCategory(const LLViewerInventoryCategory* cat)
@@ -645,12 +687,12 @@ void LLInventoryModel::updateCategory(const LLViewerInventoryCategory* cat)
{
// need to update the parent-child tree
cat_array_t* cat_array;
- cat_array = get_ptr_in_map(mParentChildCategoryTree, old_parent_id);
+ cat_array = getUnlockedCatArray(old_parent_id);
if(cat_array)
{
cat_array->removeObj(old_cat);
}
- cat_array = get_ptr_in_map(mParentChildCategoryTree, new_parent_id);
+ cat_array = getUnlockedCatArray(new_parent_id);
if(cat_array)
{
cat_array->put(old_cat);
@@ -673,13 +715,15 @@ void LLInventoryModel::updateCategory(const LLViewerInventoryCategory* cat)
// make sure this category is correctly referenced by it's parent.
cat_array_t* cat_array;
- cat_array = get_ptr_in_map(mParentChildCategoryTree, cat->getParentUUID());
+ cat_array = getUnlockedCatArray(cat->getParentUUID());
if(cat_array)
{
cat_array->put(new_cat);
}
// make space in the tree for this category's children.
+ llassert_always(mCategoryLock[new_cat->getUUID()] == false);
+ llassert_always(mItemLock[new_cat->getUUID()] == false);
cat_array_t* catsp = new cat_array_t;
item_array_t* itemsp = new item_array_t;
mParentChildCategoryTree[new_cat->getUUID()] = catsp;
@@ -707,9 +751,9 @@ void LLInventoryModel::moveObject(const LLUUID& object_id, const LLUUID& cat_id)
if(cat && (cat->getParentUUID() != cat_id))
{
cat_array_t* cat_array;
- cat_array = get_ptr_in_map(mParentChildCategoryTree, cat->getParentUUID());
+ cat_array = getUnlockedCatArray(cat->getParentUUID());
if(cat_array) cat_array->removeObj(cat);
- cat_array = get_ptr_in_map(mParentChildCategoryTree, cat_id);
+ cat_array = getUnlockedCatArray(cat_id);
cat->setParent(cat_id);
if(cat_array) cat_array->put(cat);
addChangedMask(LLInventoryObserver::STRUCTURE, object_id);
@@ -719,9 +763,9 @@ void LLInventoryModel::moveObject(const LLUUID& object_id, const LLUUID& cat_id)
if(item && (item->getParentUUID() != cat_id))
{
item_array_t* item_array;
- item_array = get_ptr_in_map(mParentChildItemTree, item->getParentUUID());
+ item_array = getUnlockedItemArray(item->getParentUUID());
if(item_array) item_array->removeObj(item);
- item_array = get_ptr_in_map(mParentChildItemTree, cat_id);
+ item_array = getUnlockedItemArray(cat_id);
item->setParent(cat_id);
if(item_array) item_array->put(item);
addChangedMask(LLInventoryObserver::STRUCTURE, object_id);
@@ -742,25 +786,25 @@ void LLInventoryModel::deleteObject(const LLUUID& id)
mCategoryMap.erase(id);
mItemMap.erase(id);
//mInventory.erase(id);
- item_array_t* item_list = get_ptr_in_map(mParentChildItemTree, parent_id);
+ item_array_t* item_list = getUnlockedItemArray(parent_id);
if(item_list)
{
LLViewerInventoryItem* item = (LLViewerInventoryItem*)((LLInventoryObject*)obj);
item_list->removeObj(item);
}
- cat_array_t* cat_list = get_ptr_in_map(mParentChildCategoryTree, parent_id);
+ cat_array_t* cat_list = getUnlockedCatArray(parent_id);
if(cat_list)
{
LLViewerInventoryCategory* cat = (LLViewerInventoryCategory*)((LLInventoryObject*)obj);
cat_list->removeObj(cat);
}
- item_list = get_ptr_in_map(mParentChildItemTree, id);
+ item_list = getUnlockedItemArray(id);
if(item_list)
{
delete item_list;
mParentChildItemTree.erase(id);
}
- cat_list = get_ptr_in_map(mParentChildCategoryTree, id);
+ cat_list = getUnlockedCatArray(id);
if(cat_list)
{
delete cat_list;
@@ -1999,11 +2043,13 @@ void LLInventoryModel::buildParentChildMap()
cats.put(cat);
if (mParentChildCategoryTree.count(cat->getUUID()) == 0)
{
+ llassert_always(mCategoryLock[cat->getUUID()] == false);
catsp = new cat_array_t;
mParentChildCategoryTree[cat->getUUID()] = catsp;
}
if (mParentChildItemTree.count(cat->getUUID()) == 0)
{
+ llassert_always(mItemLock[cat->getUUID()] == false);
itemsp = new item_array_t;
mParentChildItemTree[cat->getUUID()] = itemsp;
}
@@ -2028,7 +2074,7 @@ void LLInventoryModel::buildParentChildMap()
for(i = 0; i < count; ++i)
{
LLViewerInventoryCategory* cat = cats.get(i);
- catsp = get_ptr_in_map(mParentChildCategoryTree, cat->getParentUUID());
+ catsp = getUnlockedCatArray(cat->getParentUUID());
if(catsp)
{
catsp->put(cat);
@@ -2061,7 +2107,7 @@ void LLInventoryModel::buildParentChildMap()
cat->setParent(gAgent.getInventoryRootID());
}
cat->updateServer(TRUE);
- catsp = get_ptr_in_map(mParentChildCategoryTree, cat->getParentUUID());
+ catsp = getUnlockedCatArray(cat->getParentUUID());
if(catsp)
{
catsp->put(cat);
@@ -2097,7 +2143,7 @@ void LLInventoryModel::buildParentChildMap()
{
LLPointer<LLViewerInventoryItem> item;
item = items.get(i);
- itemsp = get_ptr_in_map(mParentChildItemTree, item->getParentUUID());
+ itemsp = getUnlockedItemArray(item->getParentUUID());
if(itemsp)
{
itemsp->put(item);
@@ -2114,7 +2160,7 @@ void LLInventoryModel::buildParentChildMap()
// we update server here, the client might crash.
//item->updateServer();
lost_item_ids.push_back(item->getUUID());
- itemsp = get_ptr_in_map(mParentChildItemTree, item->getParentUUID());
+ itemsp = getUnlockedItemArray(item->getParentUUID());
if(itemsp)
{
itemsp->put(item);
diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h
index 4889d622dc..40dd55dda2 100644
--- a/indra/newview/llinventorymodel.h
+++ b/indra/newview/llinventorymodel.h
@@ -148,7 +148,13 @@ public:
void getDirectDescendentsOf(const LLUUID& cat_id,
cat_array_t*& categories,
item_array_t*& items) const;
-
+
+ // SJB: Added version to lock the arrays to catch potential logic bugs
+ void lockDirectDescendentArrays(const LLUUID& cat_id,
+ cat_array_t*& categories,
+ item_array_t*& items);
+ void unlockDirectDescendentArrays(const LLUUID& cat_id);
+
// Starting with the object specified, add it's descendents to the
// array provided, but do not add the inventory object specified
// by id. There is no guaranteed order. Neither array will be
@@ -402,6 +408,10 @@ protected:
bool messageUpdateCore(LLMessageSystem* msg, bool do_accounting);
protected:
+ cat_array_t* getUnlockedCatArray(const LLUUID& id);
+ item_array_t* getUnlockedItemArray(const LLUUID& id);
+
+protected:
// Varaibles used to track what has changed since the last notify.
U32 mModifyMask;
typedef std::set<LLUUID> changed_items_t;
@@ -418,6 +428,9 @@ protected:
cat_map_t mCategoryMap;
item_map_t mItemMap;
+ std::map<LLUUID, bool> mCategoryLock;
+ std::map<LLUUID, bool> mItemLock;
+
// cache recent lookups
mutable LLPointer<LLViewerInventoryItem> mLastItem;
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index f7f46b0c30..7a8497aa2e 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -375,7 +375,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
// change z sort of clickable text to be behind buttons
sendChildToBack(getChildView("channel_text"));
- sendChildToBack(getChildView("version_text"));
sendChildToBack(getChildView("forgot_password_text"));
LLLineEditor* edit = getChild<LLLineEditor>("password_edit");
@@ -418,20 +417,17 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
setDefaultBtn("connect_btn");
- childSetAction("quit_btn", onClickQuit, this);
+ // childSetAction("quit_btn", onClickQuit, this);
- LLTextBox* version_text = getChild<LLTextBox>("version_text");
+ std::string channel = gSavedSettings.getString("VersionChannelName");
std::string version = llformat("%d.%d.%d (%d)",
LL_VERSION_MAJOR,
LL_VERSION_MINOR,
LL_VERSION_PATCH,
LL_VIEWER_BUILD );
- version_text->setText(version);
- version_text->setClickedCallback(onClickVersion);
- version_text->setCallbackUserData(this);
-
LLTextBox* channel_text = getChild<LLTextBox>("channel_text");
- channel_text->setText(gSavedSettings.getString("VersionChannelName"));
+ channel_text->setTextArg("[CHANNEL]", channel);
+ channel_text->setTextArg("[VERSION]", version);
channel_text->setClickedCallback(onClickVersion);
channel_text->setCallbackUserData(this);
@@ -1106,6 +1102,8 @@ void LLPanelLogin::onClickNewAccount(void*)
}
+// *NOTE: This function is dead as of 2008 August. I left it here in case
+// we suddenly decide to put the Quit button back. JC
// static
void LLPanelLogin::onClickQuit(void*)
{
diff --git a/indra/newview/llsky.h b/indra/newview/llsky.h
index 35d669152e..45dbfcfa05 100644
--- a/indra/newview/llsky.h
+++ b/indra/newview/llsky.h
@@ -57,7 +57,6 @@ public:
~LLSky();
void init(const LLVector3 &sun_direction);
- void free();
void cleanup();
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index e9b09599e2..7ea791d253 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -2149,7 +2149,8 @@ void renderBoundingBox(LLDrawable* drawable)
if (vobj && vobj->onActiveList())
{
gGL.flush();
- glLineWidth(4.f*sinf(gFrameTimeSeconds*2.f)+1.f);
+ glLineWidth(4.f*(sinf(gFrameTimeSeconds*2.f)*0.25f+0.75f));
+ stop_glerror();
drawBoxOutline(pos,size);
gGL.flush();
glLineWidth(1.f);
@@ -2347,16 +2348,19 @@ public:
if (!mCamera || mCamera->AABBInFrustumNoFarClip(group->mBounds[0], group->mBounds[1]))
{
node->accept(this);
+ stop_glerror();
for (U32 i = 0; i < node->getChildCount(); i++)
{
traverse(node->getChild(i));
+ stop_glerror();
}
//draw tight fit bounding boxes for spatial group
if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_OCTREE))
{
renderOctree(group);
+ stop_glerror();
}
//render visibility wireframe
@@ -2368,6 +2372,7 @@ public:
gGLLastMatrix = NULL;
glLoadMatrixd(gGLModelView);
renderVisibility(group, mCamera);
+ stop_glerror();
gGLLastMatrix = NULL;
glPopMatrix();
gGL.color4f(1,1,1,1);
diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp
index deb817d2ab..3d53eaa631 100644
--- a/indra/newview/lltexturecache.cpp
+++ b/indra/newview/lltexturecache.cpp
@@ -792,6 +792,14 @@ bool LLTextureCacheRemoteWorker::doWrite()
//virtual
bool LLTextureCacheWorker::doWork(S32 param)
{
+ //allocate a new local apr_pool
+ LLAPRPool pool ;
+
+ //save the current mFileAPRPool to avoid breaking anything.
+ apr_pool_t* old_pool = mCache->getFileAPRPool() ;
+ //make mFileAPRPool to point to the local one
+ mCache->setFileAPRPool(pool.getAPRPool()) ;
+
bool res = false;
if (param == 0) // read
{
@@ -805,6 +813,10 @@ bool LLTextureCacheWorker::doWork(S32 param)
{
llassert_always(0);
}
+
+ //set mFileAPRPool back, the local one will be released automatically.
+ mCache->setFileAPRPool(old_pool) ;
+
return res;
}
diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h
index da7a6c3f12..f635679819 100644
--- a/indra/newview/lltexturecache.h
+++ b/indra/newview/lltexturecache.h
@@ -114,6 +114,9 @@ protected:
std::string getTextureFileName(const LLUUID& id);
void addCompleted(Responder* responder, bool success);
+protected:
+ void setFileAPRPool(apr_pool_t* pool) { mFileAPRPool = pool ; }
+
private:
void setDirNames(ELLPath location);
void readHeaderCache(apr_pool_t* poolp = NULL);
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index b444cb8ce6..cc6af1043d 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -106,7 +106,7 @@ void LLToolPie::leftMouseCallback(const LLPickInfo& pick_info)
BOOL LLToolPie::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
// don't pick transparent so users can't "pay" transparent objects
- gViewerWindow->pickAsync(x, y, mask, rightMouseCallback, FALSE);
+ gViewerWindow->pickAsync(x, y, mask, rightMouseCallback, FALSE, TRUE);
mPieMouseButtonDown = TRUE;
// don't steal focus from UI
return FALSE;
diff --git a/indra/newview/llurl.cpp b/indra/newview/llurl.cpp
index 454dd5047e..70cf5ab438 100644
--- a/indra/newview/llurl.cpp
+++ b/indra/newview/llurl.cpp
@@ -57,7 +57,7 @@ LLURL::LLURL(const char * url)
LLURL::~LLURL()
{
- free();
+ cleanup();
}
void LLURL::init(const char * url)
@@ -140,7 +140,7 @@ void LLURL::init(const char * url)
// llinfos << " Tag : <" << mTag << ">" << llendl;
}
-void LLURL::free()
+void LLURL::cleanup()
{
}
diff --git a/indra/newview/llurl.h b/indra/newview/llurl.h
index 99f93b9213..8c77916aa0 100644
--- a/indra/newview/llurl.h
+++ b/indra/newview/llurl.h
@@ -71,7 +71,7 @@ public:
virtual ~LLURL();
virtual void init (const char * url);
- virtual void free ();
+ virtual void cleanup ();
bool operator==(const LLURL &rhs) const;
bool operator!=(const LLURL &rhs) const;
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index a62bf9b9cf..98413065af 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -424,22 +424,7 @@ bool handleVoiceClientPrefsChanged(const LLSD& newvalue)
{
if(gVoiceClient)
{
- // Note: Ignore the specific event value, look up the ones we want
-
- gVoiceClient->setVoiceEnabled(gSavedSettings.getBOOL("EnableVoiceChat"));
- gVoiceClient->setUsePTT(gSavedSettings.getBOOL("PTTCurrentlyEnabled"));
- std::string keyString = gSavedSettings.getString("PushToTalkButton");
- gVoiceClient->setPTTKey(keyString);
- gVoiceClient->setPTTIsToggle(gSavedSettings.getBOOL("PushToTalkToggle"));
- gVoiceClient->setEarLocation(gSavedSettings.getS32("VoiceEarLocation"));
- std::string serverName = gSavedSettings.getString("VivoxDebugServerName");
- gVoiceClient->setVivoxDebugServerName(serverName);
-
- std::string inputDevice = gSavedSettings.getString("VoiceInputAudioDevice");
- gVoiceClient->setCaptureDevice(inputDevice);
- std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice");
- gVoiceClient->setRenderDevice(outputDevice);
- gVoiceClient->setLipSyncEnabled(gSavedSettings.getBOOL("LipSyncEnabled"));
+ gVoiceClient->updateSettings();
}
return true;
}
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index eef43af4c3..9e5b566e60 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -471,12 +471,6 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
//
LLAppViewer::instance()->pingMainloopTimeout("Display:RenderSetup");
stop_glerror();
- if (gSavedSettings.getBOOL("ShowDepthBuffer"))
- {
- pre_show_depth_buffer();
- }
-
- stop_glerror();
///////////////////////////////////////
//
@@ -1088,11 +1082,6 @@ void render_ui_3d()
// Debugging stuff goes before the UI.
- if (gSavedSettings.getBOOL("ShowDepthBuffer"))
- {
- post_show_depth_buffer();
- }
-
// Coordinate axes
if (gSavedSettings.getBOOL("ShowAxes"))
{
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index f5d822f2e3..ea1ef2a6a6 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -473,6 +473,9 @@ void LLViewerMedia::initBrowser()
buildMediaManagerData( init_data );
LLMediaManager::initBrowser( init_data );
delete init_data;
+
+ // We use a custom user agent with viewer version and skin name.
+ LLViewerMediaImpl::updateBrowserUserAgent();
}
//////////////////////////////////////////////////////////////////////////////////////////
@@ -538,9 +541,6 @@ void LLViewerMedia::buildMediaManagerData( LLMediaManagerData* init_data )
init_data->setBrowserProfileName( profile_name );
init_data->setBrowserParentWindow( gViewerWindow->getMediaWindow() );
- // We use a custom user agent with viewer version and skin name.
- LLViewerMediaImpl::updateBrowserUserAgent();
-
// Users can change skins while client is running, so make sure
// we pick up on changes.
gSavedSettings.getControl("SkinCurrent")->getSignal()->connect(
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 26d526c988..7681e98eae 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -146,7 +146,6 @@
#include "llinventoryview.h"
#include "llkeyboard.h"
#include "llpanellogin.h"
-#include "llfloaterlandmark.h"
#include "llmenucommands.h"
#include "llmenugl.h"
#include "llmorphview.h"
@@ -208,9 +207,6 @@
#include "lltexlayer.h"
-void init_landmark_menu(LLMenuGL* menu);
-void clear_landmark_menu(LLMenuGL* menu);
-
void init_client_menu(LLMenuGL* menu);
void init_server_menu(LLMenuGL* menu);
@@ -256,7 +252,6 @@ LLPieMenu *gPieAttachment = NULL;
LLPieMenu *gPieLand = NULL;
// local constants
-const std::string LANDMARK_MENU_NAME("Landmarks");
const std::string CLIENT_MENU_NAME("Advanced");
const std::string SERVER_MENU_NAME("Admin");
@@ -274,7 +269,6 @@ LLPieMenu* gDetachPieMenu = NULL;
LLPieMenu* gDetachScreenPieMenu = NULL;
LLPieMenu* gDetachBodyPartPieMenus[8];
-LLMenuGL* gLandmarkMenu = NULL;
LLMenuItemCallGL* gAFKMenu = NULL;
LLMenuItemCallGL* gBusyMenu = NULL;
@@ -336,8 +330,6 @@ void handle_audio_status_3(void*);
void handle_audio_status_4(void*);
#endif
void manage_landmarks(void*);
-void create_new_landmark(void*);
-void landmark_menu_action(void*);
void reload_ui(void*);
void handle_agent_stop_moving(void*);
void print_packets_lost(void*);
@@ -497,55 +489,6 @@ BOOL enable_region_owner(void*);
void menu_toggle_attached_lights(void* user_data);
void menu_toggle_attached_particles(void* user_data);
-class LLLandmarkObserver : public LLInventoryObserver
-{
-public:
- LLLandmarkObserver();
- virtual ~LLLandmarkObserver();
-
- virtual void changed(U32 mask)
- {
- // JC - Disabled for now - slows down client or causes crashes
- // in inventory code.
- //
- // Also, this may not be faster than just rebuilding the menu each time.
- // I believe gInventory.getObject() is not fast.
- //
- //const std::set<LLUUID>& changed_ids = gInventory.getChangedIDs();
- //std::set<LLUUID>::const_iterator id_it;
- //BOOL need_to_rebuild_menu = FALSE;
- //for(id_it = changed_ids.begin(); id_it != changed_ids.end(); ++id_it)
- //{
- // LLInventoryObject* objectp = gInventory.getObject(*id_it);
- // if (objectp && (objectp->getType() == LLAssetType::AT_LANDMARK || objectp->getType() == LLAssetType::AT_CATEGORY))
- // {
- // need_to_rebuild_menu = TRUE;
- // }
- //}
- //if (need_to_rebuild_menu)
- //{
- // init_landmark_menu(gLandmarkMenu);
- //}
- }
-};
-
-// For debugging only, I think the inventory observer doesn't get
-// called if the inventory is loaded from cache.
-void build_landmark_menu(void*)
-{
- init_landmark_menu(gLandmarkMenu);
-}
-
-LLLandmarkObserver::LLLandmarkObserver()
-{
- gInventory.addObserver(this);
-}
-
-LLLandmarkObserver::~LLLandmarkObserver()
-{
- gInventory.removeObserver(this);
-}
-
class LLMenuParcelObserver : public LLParcelObserver
{
public:
@@ -555,7 +498,6 @@ public:
};
static LLMenuParcelObserver* gMenuParcelObserver = NULL;
-static LLLandmarkObserver* gLandmarkObserver = NULL;
LLMenuParcelObserver::LLMenuParcelObserver()
{
@@ -729,17 +671,6 @@ void init_menus()
// TomY TODO convert these two
LLMenuGL*menu;
- // JC - Maybe we don't want a global landmark menu
- /*
- menu = new LLMenuGL(LANDMARK_MENU_NAME);
- // Defer init_landmark_menu() until inventory observer reports that we actually
- // have inventory. Otherwise findCategoryByUUID() will create an empty
- // Landmarks folder in inventory. JC
- gMenuBarView->appendMenu( menu );
- menu->updateParent(LLMenuGL::sMenuContainer);
- gLandmarkMenu = menu;
- */
-
menu = new LLMenuGL(CLIENT_MENU_NAME);
init_client_menu(menu);
gMenuBarView->appendMenu( menu );
@@ -755,9 +686,6 @@ void init_menus()
// Let land based option enable when parcel changes
gMenuParcelObserver = new LLMenuParcelObserver();
- // Let landmarks menu update when landmarks are added/removed
- gLandmarkObserver = new LLLandmarkObserver();
-
//
// Debug menu visiblity
//
@@ -775,64 +703,6 @@ void init_menus()
-void init_landmark_menu(LLMenuGL* menu)
-{
- if (!menu) return;
-
- // clear existing menu, as we might be rebuilding as result of inventory update
- clear_landmark_menu(menu);
-
- // *TODO: Translate
- menu->append(new LLMenuItemCallGL("Organize Landmarks",
- &manage_landmarks, NULL));
- menu->append(new LLMenuItemCallGL("New Landmark...",
- &create_new_landmark, NULL));
- menu->appendSeparator();
-
- // now collect all landmarks in inventory and build menu...
- LLInventoryModel::cat_array_t* cats;
- LLInventoryModel::item_array_t* items;
- gInventory.getDirectDescendentsOf(gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK), cats, items);
- if(items)
- {
- S32 count = items->count();
- for(S32 i = 0; i < count; ++i)
- {
- LLInventoryItem* item = items->get(i);
- std::string landmark_name = item->getName();
- LLUUID* landmark_id_ptr = new LLUUID( item->getUUID() );
- LLMenuItemCallGL* menu_item =
- new LLMenuItemCallGL(landmark_name, landmark_menu_action,
- NULL, NULL, landmark_id_ptr);
- menu->append(menu_item);
- }
- }
-}
-
-void clear_landmark_menu(LLMenuGL* menu)
-{
- if (!menu) return;
-
- // We store the UUIDs of the landmark inventory items in the userdata
- // field of the menus. Therefore when we clean up the menu we need to
- // delete that data.
- const LLView::child_list_t* child_list = menu->getChildList();
- LLView::child_list_const_iter_t it = child_list->begin();
- for ( ; it != child_list->end(); ++it)
- {
- LLView* view = *it;
- LLMenuItemCallGL* menu_item = dynamic_cast<LLMenuItemCallGL*>(view);
-
- if (menu_item && menu_item->getMenuCallback() == landmark_menu_action)
- {
- void* user_data = menu_item->getUserData();
- delete (LLUUID*)user_data;
- }
- }
-
- menu->empty();
-}
-
void init_client_menu(LLMenuGL* menu)
{
LLMenuGL* sub_menu = NULL;
@@ -1364,12 +1234,10 @@ void init_debug_rendering_menu(LLMenuGL* menu)
sub_menu->append(new LLMenuItemCheckGL("Raycasting", &LLPipeline::toggleRenderDebug, NULL,
&LLPipeline::toggleRenderDebugControl,
(void*)LLPipeline::RENDER_DEBUG_RAYCAST));
+ sub_menu->append(new LLMenuItemCheckGL("Sculpt", &LLPipeline::toggleRenderDebug, NULL,
+ &LLPipeline::toggleRenderDebugControl,
+ (void*)LLPipeline::RENDER_DEBUG_SCULPTED));
- sub_menu->append(new LLMenuItemCheckGL("Show Depth Buffer",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"ShowDepthBuffer"));
sub_menu->append(new LLMenuItemToggleGL("Show Select Buffer", &gDebugSelect));
sub_menu->append(new LLMenuItemCallGL("Vectorize Perf Test", &run_vectorize_perf_test));
@@ -1607,14 +1475,9 @@ static std::vector<LLPointer<view_listener_t> > sMenus;
//-----------------------------------------------------------------------------
void cleanup_menus()
{
- clear_landmark_menu(gLandmarkMenu);
-
delete gMenuParcelObserver;
gMenuParcelObserver = NULL;
- delete gLandmarkObserver;
- gLandmarkObserver = NULL;
-
delete gPieSelf;
gPieSelf = NULL;
@@ -1677,6 +1540,8 @@ class LLObjectTouch : public view_listener_t
LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getFirstObject();
if (!object) return true;
+ LLPickInfo pick = LLToolPie::getInstance()->getPick();
+
LLMessageSystem *msg = gMessageSystem;
msg->newMessageFast(_PREHASH_ObjectGrab);
@@ -1686,6 +1551,13 @@ class LLObjectTouch : public view_listener_t
msg->nextBlockFast( _PREHASH_ObjectData);
msg->addU32Fast( _PREHASH_LocalID, object->mLocalID);
msg->addVector3Fast(_PREHASH_GrabOffset, LLVector3::zero );
+ msg->nextBlock("SurfaceInfo");
+ msg->addVector3("UVCoord", LLVector3(pick.mUVCoords));
+ msg->addVector3("STCoord", LLVector3(pick.mSTCoords));
+ msg->addS32Fast(_PREHASH_FaceIndex, pick.mObjectFace);
+ msg->addVector3("Position", pick.mIntersection);
+ msg->addVector3("Normal", pick.mNormal);
+ msg->addVector3("Binormal", pick.mBinormal);
msg->sendMessage( object->getRegion()->getHost());
// *NOTE: Hope the packets arrive safely and in order or else
@@ -1697,6 +1569,13 @@ class LLObjectTouch : public view_listener_t
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
msg->nextBlockFast(_PREHASH_ObjectData);
msg->addU32Fast(_PREHASH_LocalID, object->mLocalID);
+ msg->nextBlock("SurfaceInfo");
+ msg->addVector3("UVCoord", LLVector3(pick.mUVCoords));
+ msg->addVector3("STCoord", LLVector3(pick.mSTCoords));
+ msg->addS32Fast(_PREHASH_FaceIndex, pick.mObjectFace);
+ msg->addVector3("Position", pick.mIntersection);
+ msg->addVector3("Normal", pick.mNormal);
+ msg->addVector3("Binormal", pick.mBinormal);
msg->sendMessage(object->getRegion()->getHost());
return true;
@@ -3154,60 +3033,6 @@ void handle_audio_status_4(void*)
}
#endif
-void manage_landmarks(void*)
-{
- LLFloaterLandmark::showInstance(1);
-}
-
-void create_new_landmark(void*)
-{
- // Note this is temporary cut and paste of legacy functionality.
- // TODO: Make this spawn a floater allowing user customize before creating the inventory object
-
- LLViewerRegion* agent_region = gAgent.getRegion();
- if(!agent_region)
- {
- llwarns << "No agent region" << llendl;
- return;
- }
- LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
- if (!agent_parcel)
- {
- llwarns << "No agent parcel" << llendl;
- return;
- }
- if (!agent_parcel->getAllowLandmark()
- && !LLViewerParcelMgr::isParcelOwnedByAgent(agent_parcel, GP_LAND_ALLOW_LANDMARK))
- {
- gViewerWindow->alertXml("CannotCreateLandmarkNotOwner");
- return;
- }
-
- LLUUID folder_id;
- folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK);
- std::string pos_string;
- gAgent.buildLocationString(pos_string);
-
- create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
- folder_id, LLTransactionID::tnull,
- pos_string, pos_string, // name, desc
- LLAssetType::AT_LANDMARK,
- LLInventoryType::IT_LANDMARK,
- NOT_WEARABLE, PERM_ALL,
- NULL);
-}
-
-void landmark_menu_action(void* userdata)
-{
- LLUUID item_id = *(LLUUID*)userdata;
-
- LLViewerInventoryItem* itemp = gInventory.getItem(item_id);
- if (itemp)
- {
- open_landmark(itemp, itemp->getName(), FALSE);
- }
-}
-
void reload_ui(void *)
{
LLUICtrlFactory::getInstance()->rebuild();
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index 46fc91aa5a..72d6308503 100644
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -757,7 +757,6 @@ void send_stats()
S32 window_height = gViewerWindow->getWindowDisplayHeight();
S32 window_size = (window_width * window_height) / 1024;
misc["string_1"] = llformat("%d", window_size);
- misc["string_1"] = llformat("%.dx%d", window_width, window_height);
// misc["string_2"] =
// misc["int_1"] = LLFloaterDirectory::sOldSearchCount; // Steve: 1.18.6
// misc["int_2"] = LLFloaterDirectory::sNewSearchCount; // Steve: 1.18.6
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index 58d947787e..821e306145 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -174,7 +174,7 @@ public:
/*virtual*/ void handleDataCopy(LLWindow *window, S32 data_type, void *data);
/*virtual*/ BOOL handleTimerEvent(LLWindow *window);
/*virtual*/ BOOL handleDeviceChange(LLWindow *window);
-
+ /*virtual*/ void handlePingWatchdog(LLWindow *window, const char * msg);
//
@@ -240,6 +240,7 @@ public:
void setCursor( ECursorType c );
void showCursor();
void hideCursor();
+ BOOL getCursorHidden() { return mCursorHidden; }
void moveCursorToCenter(); // move to center of window
void setShowProgress(const BOOL show);
@@ -402,10 +403,12 @@ protected:
BOOL mSuppressToolbox; // sometimes hide the toolbox, despite
// having a camera tool selected
BOOL mHideCursorPermanent; // true during drags, mouselook
+ BOOL mCursorHidden;
LLPickInfo mLastPick;
LLPickInfo mHoverPick;
std::vector<LLPickInfo> mPicks;
LLRect mPickScreenRegion; // area of frame buffer for rendering pick frames (generally follows mouse to avoid going offscreen)
+ LLTimer mPickTimer; // timer for scheduling n picks per second
std::string mOverlayTitle; // Used for special titles such as "Second Life - Special E3 2003 Beta"
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index d5d7056ef7..0ccba521fa 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -6269,10 +6269,6 @@ void LLVOAvatar::sitOnObject(LLViewerObject *sit_object)
mDrawable->mXform.setPosition(rel_pos);
mDrawable->mXform.setRotation(mDrawable->getWorldRotation() * inv_obj_rot);
- //in case the viewerobject is not updated in time
- mDrawable->getVObj()->setPosition(sit_object->getWorldPosition()) ;
- mDrawable->getVObj()->setRotation(sit_object->getWorldRotation()) ;
-
gPipeline.markMoved(mDrawable, TRUE);
mIsSitting = TRUE;
mRoot.getXform()->setParent(&sit_object->mDrawable->mXform); // LLVOAvatar::sitOnObject
@@ -6333,10 +6329,6 @@ void LLVOAvatar::getOffObject()
mDrawable->mXform.setPosition(cur_position_world);
mDrawable->mXform.setRotation(cur_rotation_world);
- //in case the viewerobject is not updated from sim in time
- mDrawable->getVObj()->setPosition(cur_position_world);
- mDrawable->getVObj()->setRotation(cur_rotation_world);
-
gPipeline.markMoved(mDrawable, TRUE);
mIsSitting = FALSE;
@@ -8894,6 +8886,11 @@ U32 LLVOAvatar::getVisibilityRank()
void LLVOAvatar::setVisibilityRank(U32 rank)
{
+ if (mDrawable.isNull() || mDrawable->isDead())
+ { //do nothing
+ return;
+ }
+
BOOL stale = gFrameTimeSeconds - mLastFadeTime > 10.f;
//only raise visibility rank or trigger a fade out every 10 seconds
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 3cf0eb839d..8b1eba11a0 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -839,19 +839,12 @@ LLVoiceClient::LLVoiceClient()
mCaptureDeviceDirty = false;
mRenderDeviceDirty = false;
- // Load initial state from prefs.
- mVoiceEnabled = gSavedSettings.getBOOL("EnableVoiceChat");
- mUsePTT = TRUE; //gSavedSettings.getBOOL("EnablePushToTalk");
- std::string keyString = gSavedSettings.getString("PushToTalkButton");
- setPTTKey(keyString);
- mPTTIsToggle = gSavedSettings.getBOOL("PushToTalkToggle");
- mEarLocation = gSavedSettings.getS32("VoiceEarLocation");
- setVoiceVolume(gSavedSettings.getBOOL("MuteVoice") ? 0.f : gSavedSettings.getF32("AudioLevelVoice"));
- std::string captureDevice = gSavedSettings.getString("VoiceInputAudioDevice");
- setCaptureDevice(captureDevice);
- std::string renderDevice = gSavedSettings.getString("VoiceOutputAudioDevice");
- setRenderDevice(renderDevice);
- mLipSyncEnabled = gSavedSettings.getBOOL("LipSyncEnabled");
+ // Use default values for everything then call updateSettings() after preferences are loaded
+ mVoiceEnabled = false;
+ mUsePTT = true;
+ mPTTIsToggle = false;
+ mEarLocation = 0;
+ mLipSyncEnabled = false;
mTuningMode = false;
mTuningEnergy = 0.0f;
@@ -895,12 +888,11 @@ LLVoiceClient::~LLVoiceClient()
//----------------------------------------------
-
-
void LLVoiceClient::init(LLPumpIO *pump)
{
// constructor will set up gVoiceClient
LLVoiceClient::getInstance()->mPump = pump;
+ LLVoiceClient::getInstance()->updateSettings();
}
void LLVoiceClient::terminate()
@@ -923,6 +915,25 @@ void LLVoiceClient::terminate()
}
}
+//---------------------------------------------------
+
+void LLVoiceClient::updateSettings()
+{
+ setVoiceEnabled(gSavedSettings.getBOOL("EnableVoiceChat"));
+ setUsePTT(gSavedSettings.getBOOL("PTTCurrentlyEnabled"));
+ std::string keyString = gSavedSettings.getString("PushToTalkButton");
+ setPTTKey(keyString);
+ setPTTIsToggle(gSavedSettings.getBOOL("PushToTalkToggle"));
+ setEarLocation(gSavedSettings.getS32("VoiceEarLocation"));
+ std::string serverName = gSavedSettings.getString("VivoxDebugServerName");
+ setVivoxDebugServerName(serverName);
+
+ std::string inputDevice = gSavedSettings.getString("VoiceInputAudioDevice");
+ setCaptureDevice(inputDevice);
+ std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice");
+ setRenderDevice(outputDevice);
+ setLipSyncEnabled(gSavedSettings.getBOOL("LipSyncEnabled"));
+}
/////////////////////////////
// utility functions
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index 2e1efce6fb..c1f54d09f1 100644
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
@@ -99,7 +99,9 @@ class LLVoiceClient: public LLSingleton<LLVoiceClient>
serviceTypeC // one-to-one and small group chat
};
static F32 OVERDRIVEN_POWER_LEVEL;
-
+
+ void updateSettings(); // call after loading settings and whenever they change
+
/////////////////////////////
// session control messages
void connect();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index c6a7e9e28d..74af22dbc9 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -68,7 +68,8 @@
const S32 MIN_QUIET_FRAMES_COALESCE = 30;
const F32 FORCE_SIMPLE_RENDER_AREA = 512.f;
const F32 FORCE_CULL_AREA = 8.f;
-const S32 SCULPT_REZ = 64;
+// sadly - we can't lower sculptie rez below b/c residents have a LOT of content that depends on the 128
+const S32 SCULPT_REZ = 128;
BOOL gAnimateTextures = TRUE;
extern BOOL gHideSelectedObjects;
@@ -530,7 +531,13 @@ void LLVOVolume::updateTextures()
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE);
mSculptChanged = TRUE;
}
-
+
+ if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_SCULPTED))
+ {
+ setDebugText(llformat("T%d C%d V%d\n%dx%d",
+ texture_discard, current_discard, getVolume()->getSculptLevel(),
+ mSculptTexture->getHeight(), mSculptTexture->getWidth()));
+ }
}
diff --git a/indra/newview/llxmlrpctransaction.cpp b/indra/newview/llxmlrpctransaction.cpp
index 9f1d8abca7..d9c6b6c58a 100644
--- a/indra/newview/llxmlrpctransaction.cpp
+++ b/indra/newview/llxmlrpctransaction.cpp
@@ -134,7 +134,7 @@ void LLXMLRPCValue::appendDouble(const char* id, double v)
XMLRPC_AddValueToVector(mV, XMLRPC_CreateValueDouble(id, v));
}
-void LLXMLRPCValue::free()
+void LLXMLRPCValue::cleanup()
{
XMLRPC_CleanupValue(mV);
mV = NULL;
diff --git a/indra/newview/llxmlrpctransaction.h b/indra/newview/llxmlrpctransaction.h
index 0fc89e7813..d703f07d8b 100644
--- a/indra/newview/llxmlrpctransaction.h
+++ b/indra/newview/llxmlrpctransaction.h
@@ -74,7 +74,7 @@ public:
void appendDouble(const char*, double);
void appendValue(const char*, LLXMLRPCValue&);
- void free();
+ void cleanup();
// only call this on the top level created value
XMLRPC_VALUE getValue() const;
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index f3168be46c..7dd9ab5e1e 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -4520,6 +4520,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
return;
}
+ LLVertexBuffer::unbind();
LLGLState::checkStates();
LLGLState::checkTextureChannels();
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index a6f76df47a..4ba6f39456 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -340,7 +340,8 @@ public:
RENDER_DEBUG_LIGHTS = 0x100000,
RENDER_DEBUG_BATCH_SIZE = 0x200000,
RENDER_DEBUG_RAYCAST = 0x400000,
- RENDER_DEBUG_SHAME = 0x800000
+ RENDER_DEBUG_SHAME = 0x800000,
+ RENDER_DEBUG_SCULPTED = 0x1000000
};
public:
diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml
index 6490d8b5a2..9107b3ae8a 100644
--- a/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/indra/newview/skins/default/xui/de/floater_about.xml
@@ -3,30 +3,30 @@
<text_editor name="credits_editor">
Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, Ben, Bunny, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Hunter, Ian, Jeff, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, BillTodd, Ryan, Zach, Sarah, Nova, Otakon, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, DanceStar, Jeska, Hungry, Torley, Kona, Callum, Charity, Ventrella, Jack, Uncle, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Monroe, David, Tess, Lizzie, Patsy, Pony, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, James, Katie, Dawn, Katt, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn und vielen anderen.
- Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: aaron23 decuir, Abra Miles, absolute balderdash, adelle fitzgerald, Aeron Kohime, Aki Shichiroji, Alger Meads, Alissa Sabre, AlwaysIcey Mapholisto, Arawn Spitteler, Aren Mandala, Arianna Wrigglesworth, Bagushii Kohime, Balpien Hammerer, Blinking2342 Blinker, byakuya runo, Capucchy Streeter, Chandra Jun, Coyote Pace, Crusher Soderstrom, Cummere Mayo, cyberrosa Rossini, Dael Ra, danana dodonpa, Darek Deluca, Davec Horsforth, django yifu, draco crane, Dre Dagostino, Ephyu Reino, etan quan, Fenrix Murakami, Fledhyris Proudhon, Fred Wardhani, Frederich Courier, garth fairchang, Gellan Glenelg, Geraldine Giha, GOLAN Eilde, gonzo joubert, Hachiro Yokosuka, Hampton Hax, harleywood guru, Hevenz Vansant, imnotgoing sideways, Jaden Giles, Jeanette Janus, Karl Dorance, keaton Akina, Khashai Steinbeck, KiPSOFT Tuqiri, kirstenlee Cinquetti, Kitty Barnett, Laurent Vesta, Lazure Ryba, Lima Vesperia, Linzi Bingyi, Lisa Lowe, LuDon Ninetails, Mark Rosenbaum, McCabe Maxsted, Michi Lumin, Midi Aeon, ml0rtd kit, Mo Eriksen, Morice Flanagan, Mysterion Aeon, Nad Gough, norgan torok, Pygar Bu, Qie Niangao, rachel corleone, Rado Arado, roberto salubrius, Royer Pessoa, samia bechir, Sasha Nurmi, Sean Heying, Selkit Diller, Shadow Pidgeon, simon kline, Smokie Ember, Soap Clawtooth, Strife Onizuka, Tal Chernov, Talan Hyun, tangletwigs fairymeadow, Tanya Spinotti, Tayra Dagostino, Teebone Aeon, Theremes Langdon, Thraxis Epsilon, tucor Capalini, Vasko Hawker, VenusMari Zapedzki, Vex Streeter, Viktoria Dovgal, Vincent Nacon, Viridian Exonar, Vivienne Schell, WarKirby Magojiro, Wilton Lundquist, Yukinoroh Kamachi, Zyzzy Zarf
+Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen:aaron23 decuir, Abra Miles, absolute balderdash, adelle fitzgerald, Aeron Kohime, Aki Shichiroji, Alger Meads, Alissa Sabre, AlwaysIcey Mapholisto, Arawn Spitteler, Aren Mandala, Arianna Wrigglesworth, Bagushii Kohime, Balpien Hammerer, Blinking2342 Blinker, byakuya runo, Capucchy Streeter, Chandra Jun, Coyote Pace, Crusher Soderstrom, Cummere Mayo, cyberrosa Rossini, Dael Ra, danana dodonpa, Darek Deluca, Davec Horsforth, django yifu, draco crane, Dre Dagostino, Ephyu Reino, etan quan, Fenrix Murakami, Fledhyris Proudhon, Fred Wardhani, Frederich Courier, garth fairchang, Gellan Glenelg, Geraldine Giha, GOLAN Eilde, gonzo joubert, Hachiro Yokosuka, Hampton Hax, harleywood guru, Hevenz Vansant, imnotgoing sideways, Jaden Giles, Jeanette Janus, Karl Dorance, keaton Akina, Khashai Steinbeck, KiPSOFT Tuqiri, kirstenlee Cinquetti, Kitty Barnett, Laurent Vesta, Lazure Ryba, Lima Vesperia, Linzi Bingyi, Lisa Lowe, LuDon Ninetails, Mark Rosenbaum, McCabe Maxsted, Michi Lumin, Midi Aeon, ml0rtd kit, Mo Eriksen, Morice Flanagan, Mysterion Aeon, Nad Gough, norgan torok, Pygar Bu, Qie Niangao, rachel corleone, Rado Arado, roberto salubrius, Royer Pessoa, samia bechir, Sasha Nurmi, Sean Heying, Selkit Diller, Shadow Pidgeon, simon kline, Smokie Ember, Soap Clawtooth, Strife Onizuka, Tal Chernov, Talan Hyun, tangletwigs fairymeadow, Tanya Spinotti, Tayra Dagostino, Teebone Aeon, Theremes Langdon, Thraxis Epsilon, tucor Capalini, Vasko Hawker, VenusMari Zapedzki, Vex Streeter, Viktoria Dovgal, Vincent Nacon, Viridian Exonar, Vivienne Schell, WarKirby Magojiro, Wilton Lundquist, Yukinoroh Kamachi, Zyzzy Zarf
- 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)
- jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
- ogg/vorbis Copyright (C) 2001, Xiphophorus
- OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
- SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
- SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
- zlib Copyright (C) 1995-2002 Jean-loup Gailly und Mark Adler.
+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)
+jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+ogg/vorbis Copyright (C) 2001, Xiphophorus
+OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
+SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
+SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
+zlib Copyright (C) 1995-2002 Jean-loup Gailly und Mark Adler.
- Alle Rechte vorbehalten. Details siehe licenses.txt.
+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)
- What happens to a dream deferred? --Langston Hughes
+Was geschieht, wenn Träume aufgeschoben werden?- Langston Hughes
</text_editor>
<text name="you_are_at">
Sie befinden sich in [POSITION]
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 52cd7a2a6d..b75eeba248 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -113,6 +113,10 @@
<text name="sale_pending_text">
(Wird verkauft)
</text>
+ <string name="no_selection_text">
+ Keine Parzelle ausgewählt.
+Öffnen Sie &quot;Welt&quot; &gt; &quot;Land-Info&quot; oder wählen Sie eine andere Parzelle aus, um Informationen darüber anzuzeigen.
+ </string>
</panel>
<panel label="Vertrag" name="land_covenant_panel">
<text type="string" length="1" name="covenant_timestamp_text">
@@ -192,27 +196,33 @@
<text left="204" name="owner_objects_text" width="48">
[COUNT]
</text>
- <button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" width="60" />
+ <button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135"
+ width="60" />
<button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOwner..."
- right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119" />
+ right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben."
+ width="119" />
<text left="14" name="Set to group:" width="200">
Der Gruppe übereignen:
</text>
<text left="204" name="group_objects_text" width="48">
[COUNT]
</text>
- <button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" right="-135" width="60" />
+ <button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" right="-135"
+ width="60" />
<button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnGroup..."
- right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119" />
+ right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben."
+ width="119" />
<text left="14" name="Owned by others:" width="128">
Im Eigentum anderer:
</text>
<text left="204" name="other_objects_text" width="48">
[COUNT]
</text>
- <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135" width="60" />
+ <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135"
+ width="60" />
<button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOther..."
- right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119" />
+ right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben."
+ width="119" />
<text left="14" name="Selected / sat upon:" width="140">
Ausgewählt/gesessen auf:
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_im.xml b/indra/newview/skins/default/xui/de/floater_im.xml
index 4507ee08fd..e62ff2ae21 100644
--- a/indra/newview/skins/default/xui/de/floater_im.xml
+++ b/indra/newview/skins/default/xui/de/floater_im.xml
@@ -7,7 +7,7 @@
[FIRST] [LAST] ist offline.
</text>
<string name="muted_message">
- Einwohner ist stummgeschaltet.
+ Sie haben diesen Einwohner stummgeschaltet.Wenn Sie ihm eine Nachricht senden, wird die Stummschaltung automatisch aufgehoben.
</string>
<text name="generic_request_error">
Fehler bei Anfrage, bitte versuchen Sie es später.
diff --git a/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml
index 7b656f549e..8d499bc300 100644
--- a/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml
@@ -2,6 +2,7 @@
<floater name="script ed float" title="Skript: Neues Skript">
<button label="Zurücksetzen" label_selected="Zurücksetzen" name="Reset" />
<check_box label="Läuft" name="running" />
+ <check_box label="Mono" name="mono" />
<text name="not_allowed">
Sie können dieses Skript nicht anzeigen.
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_mem_leaking.xml b/indra/newview/skins/default/xui/de/floater_mem_leaking.xml
new file mode 100644
index 0000000000..4fe3058dfe
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_mem_leaking.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="MemLeak" title="Speicherverlust-Simulation">
+ <spinner label="Verlustgeschwindigkeit (Bytes pro Frame):" name="leak_speed" />
+ <spinner label="Max. Speicherverlust (MB):" name="max_leak" />
+ <text name="total_leaked_label">
+ Aktueller Speicherverlust:[SIZE] KB
+ </text>
+ <text name="note_label_1">
+ [NOTE1]
+ </text>
+ <text name="note_label_2">
+ [NOTE2]
+ </text>
+ <button label="Start" name="start_btn" />
+ <button label="Stopp" name="stop_btn" />
+ <button label="Freigeben" name="release_btn" />
+ <button label="Schließen" name="close_btn" />
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_postcard.xml b/indra/newview/skins/default/xui/de/floater_postcard.xml
index 0168d54943..639a8ffdd1 100644
--- a/indra/newview/skins/default/xui/de/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/de/floater_postcard.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Postcard" title="Postkarte senden">
+<floater name="Postcard" title="Foto per E-Mail senden">
<text name="to_label">
E-Mail des Empfängers:
</text>
- <line_editor left="145" name="to_form" width="125"/>
+ <line_editor left="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="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="145" name="name_form" width="125" />
<text name="subject_label">
Betreff:
</text>
- <line_editor label="Betreff hier eingeben." name="subject_form" left="145" width="125"/>
+ <line_editor label="Betreff hier eingeben." left="145" name="subject_form" width="125" />
<text name="msg_label">
Nachricht:
</text>
@@ -27,9 +27,8 @@
<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" >
- Wenn sich der Empfänger Ihrer Postkarte bei SL anmeldet, erhalten Sie einen
-Empfehlungsbonus.
+ <text name="fine_print">
+ Wenn sich der Empfänger bei SL anmeldet, erhalten Sie einen Empfehlungsbonus.
</text>
<button label="Abbrechen" name="cancel_btn" />
<button label="Senden" name="send_btn" />
@@ -39,4 +38,7 @@ Empfehlungsbonus.
<text name="default_message">
Sehen Sie hier!
</text>
+ <string name="upload_message">
+ Wird gesendet...
+ </string>
</floater>
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 2c92e70681..a262c17017 100644
--- a/indra/newview/skins/default/xui/de/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/de/floater_report_abuse.xml
@@ -43,6 +43,99 @@ dann auf das Objekt:
<combo_item name="Selectcategory">
Kategorie auswählen
</combo_item>
+ <combo_item name="Select_category">
+ Kategorie auswählen
+ </combo_item>
+ <combo_item name="Age__Age_play">
+ Alter&gt; Age-Play
+ </combo_item>
+ <combo_item name="Age__Adult_resident_on_Teen_Second_Life">
+ Alter&gt; Erwachsener Einwohner in Teen Second Life
+ </combo_item>
+ <combo_item name="Age__Underage_resident_on_Adult_Second_Life">
+ Alter &gt; Minderjähriger Einwohner in Adult Second Life
+ </combo_item>
+ <combo_item name="Assault__Combat_sandbox___unsafe_area">
+ Angriff&gt; Kampf-Sandbox / unsichere Region
+ </combo_item>
+ <combo_item name="Assault__Safe_area">
+ Angriff&gt; Sichere Region
+ </combo_item>
+ <combo_item name="Assault__Weapons_testing_sandbox">
+ Angriff &gt; Sandbox für Waffentest
+ </combo_item>
+ <combo_item name="Copyright_or_intellectual_property_violation">
+ Urheberrechtsverletzung
+ </combo_item>
+ <combo_item name="Commerce__Failure_to_deliver_product_or_service">
+ Handel &gt; Produkt nicht geliefer oder Dienstleistung nicht erbracht
+ </combo_item>
+ <combo_item name="Disclosure__First_Life_information">
+ Offenlegung &gt; Private Benutzerdaten
+ </combo_item>
+ <combo_item name="Disclosure__Remotely_monitoring chat">
+ Offenlegung &gt; Abhören eines Chats aus der Ferne
+ </combo_item>
+ <combo_item name="Disclosure__Second_Life_information_chat_IMs">
+ Offenlegung &gt; Second Life-Informationen/Chat/IMs
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources">
+ Ruhestörung &gt; Unfaire Nutzung von Regionsressourcen
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Excessive_scripted_objects">
+ Ruhestörung &gt; Exzessive Nutzung geskripteter Objekte
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Object_littering">
+ Ruhestörung &gt; Wildes Erzeugen von Objekten
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Repetitive_spam">
+ Ruhestörung &gt; Ständige Spam-Wiederholung
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Unwanted_advert_spam">
+ Ruhestörung &gt; Unerwünschte Spam-Werbung
+ </combo_item>
+ <combo_item name="Fraud__L$">
+ Betrug &gt; L$
+ </combo_item>
+ <combo_item name="Fraud__Land">
+ Betrug&gt; Land
+ </combo_item>
+ <combo_item name="Fraud__Pyramid_scheme_or_chain_letter">
+ Betrug &gt; Schneeballsystem oder Kettenbrief
+ </combo_item>
+ <combo_item name="Fraud__US$">
+ Betrug &gt; US$
+ </combo_item>
+ <combo_item name="Harassment__Advert_farms___visual_spam">
+ Belästigung &gt; Werbefarmen / visueller Spam
+ </combo_item>
+ <combo_item name="Harassment__Defaming_individuals_or_groups">
+ Belästigung &gt; Diffamieren von Einzelpersonen/Gruppen
+ </combo_item>
+ <combo_item name="Harassment__Impeding_movement">
+ Belästigung &gt; Bewegungseinschränkung
+ </combo_item>
+ <combo_item name="Harassment__Sexual_harassment">
+ Belästigung &gt; Sexuelle Belästigung
+ </combo_item>
+ <combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
+ Belästigung &gt; Anstiften Dritter zur Missachtung der Nutzungsbedingungen
+ </combo_item>
+ <combo_item name="Harassment__Verbal_abuse">
+ Belästigung &gt; Beschimpfung
+ </combo_item>
+ <combo_item name="Indecency__Broadly_offensive_content_or_conduct">
+ Unanständigkeit &gt; Anstößige Inhalte oder Handlungen in der Öffentlichkeit
+ </combo_item>
+ <combo_item name="Indecency__Broadly_visible_mature_content">
+ Unanständigkeit &gt; Nicht jugendfreier Inhalt in der Öffentlichkeit
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_avatar_name">
+ Unanständigkeit &gt; Anstößiger Avatarname
+ </combo_item>
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ Unanständigkeit &gt; Nicht jugendfreier Inhalt in &quot;Jugendfrei&quot;-Region
+ </combo_item>
<combo_item name="Intolerance">
Intoleranz
</combo_item>
@@ -64,6 +157,24 @@ dann auf das Objekt:
<combo_item name="Parcel">
Parzelle
</combo_item>
+ <combo_item name="Land__Abuse_of_sandbox_resources">
+ Land &gt; Missbrauch der Sandbox-Ressourcen
+ </combo_item>
+ <combo_item name="Land__Encroachment__Objects_textures">
+ Land &gt; Unbefugte Nutzung &gt; Objekte/Texturen
+ </combo_item>
+ <combo_item name="Land__Encroachment__Particles">
+ Land &gt; Unbefugte Nutzung &gt; Partikel
+ </combo_item>
+ <combo_item name="Land__Encroachment__Trees_plants">
+ Land &gt; Unbefugte Nutzung &gt; Bäume/Pflanzen
+ </combo_item>
+ <combo_item name="Trademark_violation">
+ Markenrechtsverletzung
+ </combo_item>
+ <combo_item name="Wagering_gambling">
+ Wetten/Glücksspiel
+ </combo_item>
<combo_item name="Other">
Sonstige
</combo_item>
@@ -73,6 +184,8 @@ dann auf das Objekt:
</text>
<button label="Einwohner auswählen" label_selected="" name="select_abuser"
tool_tip="Den Namen des Beschuldigten aus einer Liste wählen" />
+ <check_box label="Name des Täters ist nicht bekannt" name="omit_abuser_name"
+ tool_tip="Wählen Sie diese Option, wenn Ihnen der Name des Täters unbekannt ist" />
<text name="abuser_name_title2">
Ort des Missbrauchs:
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml
index 70d09ecc27..38eb713705 100644
--- a/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml
@@ -1,23 +1,26 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Snapshot" title="Foto-Vorschau">
<text name="type_label">
- Was möchten Sie tun?
+ Zweck des Fotos
</text>
<radio_group label="Fototyp" name="snapshot_type_radio">
<radio_item name="postcard">
- Postkarte senden
+ Per E-Mail senden
</radio_item>
<radio_item name="texture">
- Foto hochladen
+ Im Inventar speichern (L$10)
</radio_item>
<radio_item name="local">
- Foto auf Festplatte speichern
+ Auf Festplatte speichern
</radio_item>
</radio_group>
<button label="Mehr &gt;&gt;" name="more_btn" tool_tip="Erweiterte Optionen" />
<button label="&lt;&lt; Weniger" name="less_btn" tool_tip="Erweiterte Optionen" />
<text name="type_label2">
- Welche Bildgröße benötigen Sie?
+ Größe
+ </text>
+ <text name="format_label">
+ Format
</text>
<combo_box label="Auflösung" name="postcard_size_combo">
<combo_item name="640x480">
@@ -79,6 +82,17 @@
Benutzerdefiniert
</combo_item>
</combo_box>
+ <combo_box label="Format" name="local_format_combo">
+ <combo_item name="PNG">
+ PNG
+ </combo_item>
+ <combo_item name="JPEG">
+ JPEG
+ </combo_item>
+ <combo_item name="BMP">
+ BMP
+ </combo_item>
+ </combo_box>
<spinner label="Breite" name="snapshot_width" />
<spinner label="Höhe" name="snapshot_height" />
<slider label="Bildqualität" name="image_quality_slider" />
@@ -105,10 +119,10 @@
<check_box label="Seitenverhältnis beibehalten" name="keep_aspect_check" />
<check_box label="Frame einfrieren (Vollbildvorschau)" name="freeze_frame_check" />
<button label="Foto aktualisieren" name="new_snapshot_btn" />
- <check_box label="Automatisches Foto" name="auto_snapshot_check" />
- <button label="Hochladen (10 L$)" name="upload_btn" />
+ <check_box label="Automatisch aktualisieren" name="auto_snapshot_check" />
+ <button label="Speichern (L$10)" name="upload_btn" />
<button label="Senden" name="send_btn" />
- <button label="Speichern" name="save_btn" />
+ <button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern" />
<button label="Abbrechen" name="discard_btn" />
<text name="unknown">
unbekannt
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index 8edb0d4cad..03401cee9c 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -79,6 +79,9 @@
Groß
</combo_item>
</combo_box>
+ <text name="Strength:">
+ Stärke:
+ </text>
<button label="Auf Auswahl anwenden" label_selected="Auf Auswahl anwenden"
name="button apply to selection" tool_tip="Ausgewähltes Land ändern" />
<check_box label="Eigentümer anzeigen" name="checkbox show owners" />
@@ -142,6 +145,9 @@
<text name="Price: L$">
Preis: L$
</text>
+ <text name="Cost">
+ Preis:L$
+ </text>
<radio_group name="sale type">
<radio_item name="Original">
Original
@@ -218,6 +224,21 @@
<text name="text modify warning">
Gesamtes Objekt muss gewählt werden, um Berechtigungen festzulegen.
</text>
+ <string name="Cost Default">
+ Preis:L$
+ </string>
+ <string name="Cost Total">
+ Summe:L$
+ </string>
+ <string name="Cost Per Unit">
+ Stückpreis:L$
+ </string>
+ <string name="Cost Mixed">
+ Mischpreis
+ </string>
+ <string name="Sale Mixed">
+ Mischverkauf
+ </string>
</panel>
<panel label="Objekt" name="Object">
<text name="select_single">
@@ -376,6 +397,10 @@
</text>
<texture_picker label="Textur für gestaltetes Primitiv" name="sculpt texture control"
tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
+ <check_box label="Spiegeln" name="sculpt mirror control"
+ tool_tip="Geformtes Primitiv entlang der X-Achse spiegeln." />
+ <check_box label="Wenden" name="sculpt invert control"
+ tool_tip="Dreht die Normalen des geformten Primitivs von innen nach außen." />
<text name="label sculpt type">
Naht
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_top_objects.xml b/indra/newview/skins/default/xui/de/floater_top_objects.xml
index e13ccfe0bc..d7abf5c62d 100644
--- a/indra/newview/skins/default/xui/de/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/de/floater_top_objects.xml
@@ -8,19 +8,20 @@
<column label="Name" name="name" />
<column label="Owner" name="owner" />
<column label="Location" name="location" />
+ <column label="Uhrzeit" name="time" />
</scroll_list>
<line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false"
follows="left|bottom|right" font="SansSerifSmall" height="20" left="80"
name="id_editor" text_readonly_color="white" width="244" />
- <text name="id_text">
+ <text name="id_text">
Objekt-ID:
</text>
<button bottom_delta="0" follows="bottom|right" height="20" label="Beacon anzeigen"
name="show_beacon_btn" right="-10" width="110" />
- <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false"
+ <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false"
follows="left|bottom|right" font="SansSerifSmall" height="20" left="80"
name="object_name_editor" text_readonly_color="white" width="244" />
- <text name="obj_name_text">
+ <text name="obj_name_text">
Objektname:
</text>
<button bottom_delta="0" follows="bottom|right" height="20" label="Filter"
@@ -28,19 +29,19 @@
<line_editor bg_readonly_color="clear" bottom_delta="3" enabled="true"
follows="left|bottom|right" font="SansSerifSmall" height="20" left="106"
name="owner_name_editor" text_readonly_color="white" width="218" />
- <text name="owner_name_text">
+ <text name="owner_name_text">
Eigentümername:
</text>
<button bottom_delta="0" follows="bottom|right" height="20" label="Filter"
name="filter_owner_btn" right="-10" width="110" />
- <button bottom="35" follows="bottom|left" height="20" label="Auswahl zurückgeben" left="10"
- name="return_selected_btn" width="134" />
- <button bottom="35" follows="bottom|left" height="20" label="Alle zurückgeben" left="150"
- name="return_all_btn" width="134" />
+ <button bottom="35" follows="bottom|left" height="20" label="Auswahl zurückgeben"
+ left="10" name="return_selected_btn" width="134" />
+ <button bottom="35" follows="bottom|left" height="20" label="Alle zurückgeben"
+ left="150" name="return_all_btn" width="134" />
<button bottom="10" follows="bottom|left" height="20" label="Auswahl deaktivieren"
left="10" name="disable_selected_btn" width="134" />
- <button bottom="10" follows="bottom|left" height="20" label="Alle deaktivieren" left="150"
- name="disable_all_btn" width="134" />
+ <button bottom="10" follows="bottom|left" height="20" label="Alle deaktivieren"
+ left="150" name="disable_all_btn" width="134" />
<button bottom_delta="0" follows="bottom|right" height="20" label="Aktualisieren"
name="refresh_btn" right="-10" width="110" />
<text name="top_scripts_title">
diff --git a/indra/newview/skins/default/xui/de/floater_tos.xml b/indra/newview/skins/default/xui/de/floater_tos.xml
index de582203bc..bb797551e4 100644
--- a/indra/newview/skins/default/xui/de/floater_tos.xml
+++ b/indra/newview/skins/default/xui/de/floater_tos.xml
@@ -13,6 +13,7 @@
<text name="tos_title">
Nutzungsvereinbarung
</text>
+ <check_box label="Ich stimme den Nutzungsbedingungen zu" name="agree_chk" />
<text name="tos_heading">
Lesen Sie die folgenden Nutzungsbedingungen sorgfältig durch. Sie müssen dieser Vereinbarung zustimmen,
um Second Life benutzen zu können.
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index c7d20e7619..0934a28105 100644
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -142,6 +142,7 @@
<menu_item_call label="Als abwesend anzeigen" name="Set Away" />
<menu_item_call label="Als beschäftigt anzeigen" name="Set Busy" />
<menu_item_call label="Alle Animationen stoppen" name="Stop All Animations" />
+ <menu_item_call label="Tasten freigeben" name="Release Keys" />
<menu_item_separator label="-----------" name="separator4" />
<menu_item_call label="Kontostatistik..." name="Account History..." />
<menu_item_call label="Mein Konto verwalten..." name="Manage My Account..." />
@@ -208,12 +209,15 @@
<menu_item_separator label="-----------" name="separator6" />
<menu_item_call label="Skriptwarnung/Fehlerfenster anzeigen"
name="Show Script Warning/Error Window" />
- <menu_item_call label="Skripts in Auswahl neu kompilieren"
- name="Recompile Scripts in Selection" />
- <menu_item_call label="Skripts zurücksetzen ausgewählte" name="Reset Scripts in Selection" />
- <menu_item_call label="Skripts so einstellen, dass sie in Auswahl ausgeführt werden"
+ <menu_item_call label="Skripte in Auswahl neu kompilieren"
+ name="Recompile Scripts in Selection">
+ <menu_item_call label="Mono" name="Mono" />
+ <menu_item_call label="LSL" name="LSL" />
+ </menu_item_call>
+ <menu_item_call label="Skripte in Auswahl zurücksetzen" name="Reset Scripts in Selection" />
+ <menu_item_call label="Skripte in Auswahl so einstellen, dass sie ausgeführt werden"
name="Set Scripts to Running in Selection" />
- <menu_item_call label="Skripts so einstellen, dass sie in Auswahl nicht ausgeführt werden"
+ <menu_item_call label="Skripte in Auswahl so einstellen, dass sie nicht ausgeführt werden"
name="Set Scripts to Not Running in Selection" />
</menu>
<menu label="Hilfe" name="Help">
diff --git a/indra/newview/skins/default/xui/de/mime_types.xml b/indra/newview/skins/default/xui/de/mime_types.xml
index 03fd660a6f..57b074e77a 100644
--- a/indra/newview/skins/default/xui/de/mime_types.xml
+++ b/indra/newview/skins/default/xui/de/mime_types.xml
@@ -59,12 +59,12 @@
</scheme>
<mimetype name="blank">
<label name="blank_label">
- - Keine -
+ - Keine -
</label>
</mimetype>
<mimetype name="none/none">
<label name="none/none_label">
- - Keine -
+ - Keine -
</label>
</mimetype>
<mimetype name="audio/*">
@@ -112,6 +112,11 @@
Rich Text (RTF)
</label>
</mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language (SMIL)
+ </label>
+ </mimetype>
<mimetype name="application/xhtml+xml">
<label name="application/xhtml+xml_label">
Webseite (XHTML)
@@ -222,4 +227,4 @@
Video (AVI)
</label>
</mimetype>
-</mimetypes> \ No newline at end of file
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml
index ac087443e1..b024f7a121 100644
--- a/indra/newview/skins/default/xui/de/panel_login.xml
+++ b/indra/newview/skins/default/xui/de/panel_login.xml
@@ -30,11 +30,14 @@
<button label="Neues Konto..." label_selected="Neues Konto..." name="new_account_btn" />
<button label="Einstellungen..." label_selected="Einstellungen..."
name="preferences_btn" />
- <button label="Verbinden" label_selected="Verbinden" name="connect_btn" />
+ <button label="Second Life betreten" label_selected="Verbinden" name="connect_btn" />
<button label="Beenden" label_selected="Beenden" name="quit_btn" />
<text name="version_text">
1.23.4 (5)
</text>
+ <text name="create_new_account_text">
+ Neues Konto erstellen.
+ </text>
<text name="channel_text">
[Viewer Channel Name]
</text>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
index 036b916a4c..63120d330d 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
@@ -17,6 +17,8 @@
<text type="string" length="1" name="text_box2">
Chat-Farbe:
</text>
+ <color_swatch label="Sie" name="user" />
+ <color_swatch label="Andere" name="agent" />
<color_swatch label="IM" name="im" />
<color_swatch label="System" name="system" />
<color_swatch label="Chat" name="users" />
@@ -47,6 +49,7 @@
<check_box label="Pfeiltasten bewegen immer den Avatar beim Chatten"
name="arrow_keys_move_avatar_check" />
<check_box label="Zeitstempel in Chat anzeigen" name="show_timestamps_check" />
+ <check_box label="Tipp-Animation abspielen" name="play_typing_animation" />
<text type="string" length="1" name="text_box7">
Blasen-Chat:
</text>
@@ -57,5 +60,5 @@
</text>
<check_box label="Skriptfehler und Warnungen als normalen Chat anzeigen"
name="script_errors_as_chat" />
- <color_swatch label="Farbe" name="script_error" />
+ <color_swatch label="Fehler" name="script_error" />
</panel>
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 26e8459b49..fbf57426e0 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -119,4 +119,6 @@
Español (Spanisch) - Beta
</combo_item>
</combo_box>
+ <check_box label="Objekten Sprache mitteilen" name="language_is_public"
+ tool_tip="In-Welt-Objekten wird Ihre bevorzugte Spracheinstellung mitgeteilt." />
</panel>
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 e31754da7f..1d77eac665 100644
--- a/indra/newview/skins/default/xui/de/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_debug.xml
@@ -16,11 +16,23 @@
tool_tip="Physik in dieser Region deaktivieren" />
<button label="?" name="disable_physics_help" />
<button label="Übernehmen" name="apply_btn" />
- <button label="Avatar wählen..." name="choose_avatar_btn" />
+ <line_editor name="target_avatar_name">
+ (keiner)
+ </line_editor>
+ <button label="Auswählen..." name="choose_avatar_btn" />
<button label="Skriptobjekte des Avatars auf fremdem Land zurückgeben"
name="return_scripted_other_land_btn" />
<button label="ALLE Skriptobjekte des Avatars zurückgeben"
name="return_scripted_all_btn" />
+ <check_box label="Nur Objekte mit Skripten zurückgeben" name="return_scripts"
+ tool_tip="Es werden nur die Objekte zurückgegeben, die über Skripte verfügen." />
+ <check_box label="Nur Objekte auf dem Land eines anderen Einwohners zurückgeben"
+ name="return_other_land"
+ tool_tip="Es werden nur die Objekte zurückgegeben, die sich auf dem Land eines anderen Einwohners befinden" />
+ <check_box label="Objekte in jeder Region dieses Grundstücks zurückgeben"
+ name="return_estate_wide"
+ tool_tip="Es werden die Objekte in allen Regionen dieses Grundstücks zurückgegeben" />
+ <button label="Zurückgeben" name="return_btn" />
<button label="Top-Kollisionsobjekte..." name="top_colliders_btn"
tool_tip="Liste der Objekte mit den meisten potenziellen Kollisionen" />
<button label="?" name="top_colliders_help" />
diff --git a/indra/newview/skins/default/xui/de/panel_region_estate.xml b/indra/newview/skins/default/xui/de/panel_region_estate.xml
index 6dd4be0ad7..94d7d18514 100644
--- a/indra/newview/skins/default/xui/de/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml
@@ -24,6 +24,12 @@
tool_tip="Einwohner ohne Altersprüfung verbannen. Weitere Informationen finden Sie auf support.secondlife.com." />
<check_box label="Voice-Chat erlauben" name="voice_chat_check" />
<button label="?" name="voice_chat_help" />
+ <text name="abuse_email_text">
+ E-Mail-Adresse für Missbrauchsmeldungen:
+ </text>
+ <string name="email_unsupported">
+ Funktion nicht unterstützt
+ </string>
<button label=" ?" name="abuse_email_address_help" />
<button label="?" name="estate_manager_help" />
<button label="Hinzufügen..." name="add_estate_manager_btn" />
diff --git a/indra/newview/skins/default/xui/de/role_actions.xml b/indra/newview/skins/default/xui/de/role_actions.xml
index c46fa0d0f9..26042bd773 100644
--- a/indra/newview/skins/default/xui/de/role_actions.xml
+++ b/indra/newview/skins/default/xui/de/role_actions.xml
@@ -144,7 +144,7 @@
name="land gardening" />
</action_set>
<action_set
- description="Diese Fähigkeiten ermöglichen es, gruppeneigene Objekte zu übertragen, zu bearbeiten und zu verkaufen. Änderungen werden unter 'Auswahl-Tool' &gt; 'Bearbeiten' auf der Registerkarte 'Allgemein' vorgenommen. Klicken Sie mit rechts auf ein Objekt und wählen Sie 'Bearbeiten', um seine Einstellungen anzuzeigen."
+ description="Diese Fähigkeiten ermöglichen es, gruppeneigene Objekte zu übertragen, zu bearbeiten und zu verkaufen. Änderungen werden unter &apos;Auswahl-Tool&apos; &gt; &apos;Bearbeiten&apos; auf der Registerkarte &apos;Allgemein&apos; vorgenommen. Klicken Sie mit rechts auf ein Objekt und wählen Sie &apos;Bearbeiten&apos;, um seine Einstellungen anzuzeigen."
name="Object Management">
<action description="Objekte an Gruppe übertragen"
longdescription="Objekte an eine Gruppe übertragen können Sie unter &apos;Auswahl-Tool&apos; &gt; &apos;Bearbeiten&apos; auf der Registerkarte &apos;Allgemein&apos;."
@@ -184,4 +184,17 @@
longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter &apos;Anfragen&apos; über Anfragen abstimmen."
name="proposal vote" />
</action_set>
+ <action_set
+ description="Diese Fähigkeiten ermöglichen es, den Zugang zu Gruppen-Chat und Gruppen-Voice-Chat zu steuern."
+ name="Chat">
+ <action description="Gruppen-Chat beitreten"
+ longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Chat und Gruppen-Voice-Chat beitreten."
+ name="join group chat" />
+ <action description="Gruppen-Voice-Chat beitreten"
+ longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Voice-Chat beitreten.HINWEIS:Sie benötigen die Fähigkeit &apos;Gruppen-Chat beitreten&apos;, um Zugang zu dieser Voice-Chat-Sitzung zu erhalten."
+ name="join voice chat" />
+ <action description="Gruppen-Chat moderieren"
+ longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können den Zugang zu und die Teilnahme an Gruppen-Chat- und Voice-Chat-Sitzungen steuern."
+ name="moderate group chat" />
+ </action_set>
</role_actions>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index be64d7f358..6a9a9cce6a 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -18,6 +18,9 @@
<string name="LoginInitializingBrowser">
Integrierter Webbrowser wird initialisiert...
</string>
+ <string name="LoginInitializingMultimedia">
+ Multimedia wird initialisiert...
+ </string>
<string name="LoginVerifyingCache">
Cache-Dateien werden überprüft (dauert 60-90 Sekunden)...
</string>
@@ -48,6 +51,9 @@
<string name="LoginDownloadingClothing">
Kleidung wird geladen...
</string>
+ <string name="AgentLostConnection">
+ In dieser Region kann es zu Problemen kommen. Bitte überprüfen Sie Ihre Internetverbindung.
+ </string>
<string name="TooltipPerson">
Person
</string>
@@ -120,9 +126,15 @@
<string name="TooltipLand">
Land:
</string>
+ <string name="TooltipMustSingleDrop">
+ Sie können nur ein einzelnes Objekt hierher ziehen
+ </string>
<string name="RetrievingData">
Laden...
</string>
+ <string name="ReleaseNotes">
+ Versionshinweise
+ </string>
<string name="LoadingData">
Wird geladen...
</string>
@@ -387,4 +399,16 @@
<string name="anim_yes_head">
Ja
</string>
+ <string name="texture_loading">
+ Wird geladen...
+ </string>
+ <string name="worldmap_offline">
+ Offline
+ </string>
+ <string name="whisper">
+ Flüstert:
+ </string>
+ <string name="shout">
+ Ruft:
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml
index 57faea08c2..6f6ec42802 100644
--- a/indra/newview/skins/default/xui/ja/floater_about.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about.xml
@@ -1,32 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="floater_about" title="Second Lifeについて">
<text_editor name="credits_editor">
- Second Life は、 Philip、 Tessa、 Andrew、 Cory、 Ben、 Bunny、 Char、 Charlie、 Colin、 Dan、 Daniel、 Doug、 Eric、 Hamlet、 Haney、 Hunter、 Ian、 Jeff、 Jim、 John、 Lee、 Mark、 Peter、 Phoenix、 Richard、 Robin、 Xenon、 Steve、 Tanya、 Eddie、 Frank、 Bruce、 Aaron、 Alice、 Bob、 Debra、 Eileen、 Helen、 Janet、 Louie、 Leviathania、 Stefan、 Ray、 Kevin、 Tom、 Mikeb、 MikeT、 Burgess、 Elena、 Tracy、 BillTodd、 Ryan、 Zach、 Sarah、 Nova、 Otakon、 Tim、 Stephanie、 Michael、 Evan、 Nicolas、 Catherine、 Rachelle、 Dave、 Holly、 Bub、 Kelly、 Magellan、 Ramzi、 Don、 Sabin、 Jill、 Rheya、 DanceStar、 Jeska、 Hungry、 Torley、 Kona、 Callum、 Charity、 Ventrella、 Jack、 Uncle、 Vektor、 Iris、 Chris、 Nicole、 Mick、 Reuben、 Blue、 Babbage、 Yedwab、 Deana、 Lauren、 Brent、 Pathfinder、 Chadrick、 Altruima、 Jesse、 Monroe、 David、 Tess、 Lizzie、 Patsy、 Pony、 Isaac、 Lawrence、 Cyn、 Bo、 Gia、 Annette、 Marius、 Tbone、 Jonathan、 Karen、 Ginsu、 Yuko、 Makiko、 Thomas、 Harry、 Seth、 Alexei、 Brian、 Guy、 Runitai、 Ethan、 Data、 Cornelius、 Kenny、 Swiss、 Zero、 Natria、 Wendy、 Stephen、 Teeple、 Thumper、 Lucy、 Dee、 Mia、 Liana、 Warren、 Branka、 Aura、 beez、 Milo、 Hermia、 Red、 Thrax、 Joe、 Sally、 Magenta、 Paul、 Jose、 Rejean、 Henrik、 Lexie、 Amber、 Logan、 Xan、 Nora、 Morpheus、 Donovan、 Leyla、 MichaelFrancis、 Beast、 Cube、 Bucky、 Joshua、 Stryfe、 Harmony、 Teresa、 Claudia、 Walker、 Glenn、 Fritz、 Fordak、 June、 Cleopetra、 Jean、 Ivy、 Betsy、 Roosevelt、 Spike、 Ken、 Which、 Tofu、 Chiyo、 Rob、 Zee、 dustin、 George、 Del、 Matthew、 Cat、 Jacqui、 Lightfoot、 Adrian、 Viola、 Alfred、 Noel、 Irfan、 Sunil、 Yool、 Rika、 Jane、 Xtreme、 Frontier、 a2、 Neo、 Siobhan、 Yoz、 Justin、 Elle、 Qarl、 Benjamin、 Isabel、 Gulliver、 Everett、 Christopher、 Izzy、 Stephany、 Garry、 Sejong、 Sean、 Tobin、 Iridium、 Meta、 Anthony、 Jeremy、 JP、 Jake、 Maurice、 Madhavi、 Leopard、 Kyle、 Joon、 Kari、 Bert、 Belinda、 Jon、 Kristi、 Bridie、 Pramod、 KJ、 Socrates、 Maria、 Ivan、 Aric、 Yamasaki、 Adreanne、 Jay、 MitchK、 Ceren、 Coco、 Durl、 Jenny、 Periapse、 Kartic、 Storrs、 Lotte、 Sandy、 Colossus、 Zen、 BigPapi、 Brad、 Pastrami、 Kurz、 Mani、 Neuro、 Jaime、 MJ、 Rowan、 Sgt、 Elvis、 Gecko、 Samuel、 Sardonyx、 Leo、 Bryan、 Niko、 Soft、 Poppy、 Rachel、 Aki、 Angelo、 Banzai、 Alexa、 Sue、 CeeLo、 Bender、 CG、 Gillian、 Pelle、 Nick、 Echo、 Zara、 Christine、 Shamiran、 Emma、 Blake、 Keiko、 Plexus、 Joppa、 Sidewinder、 Erica、 Ashlei、 Twilight、 Kristen、 Brett、 Q、 Enus、 Simon、 Bevis、 Kraft、 Kip、 Chandler、 Ron、 LauraP、 Ram、 KyleJM、 Scouse、 Prospero、 Melissa、 Marty、 Nat、 Hamilton、 Kend、 Lordan、 Jimmy、 Kosmo、 Seraph、 Green、 Ekim、 Wiggo、 JT、 Rome、 Doris、 Miz、 Benoc、 Whump、 Trinity、 Patch、 Kate、 TJ、 Bao、 Joohwan、 Christy、 Sofia、 Matias、 Cogsworth、 Johan、 Oreh、 Cheah、 Angela、 Brandy、 Mango、 Lan、 Aleks、 Gloria、 Heidy、 Mitchell、 Space、 Colton、 Bambers、 Einstein、 Maggie、 Malbers、 Rose、 Winnie、 Stella、 Milton、 Rothman、 Niall、 Marin、 Allison、 James、 Katie、 Dawn、 Katt、 Kalpana、 Judy、 Andrea、 Ambroff、 Infinity、 Gail、 Rico、 Raymond、 Yi、 William、 Christa、 M、 Teagan、 Scout、 Molly、 Dante、 Corr、 Dynamike、 Usi、 Kaylee、 Lil、 Danica、 Sascha、 Kelv、 Jacob、 Nya、 Rodney、 Brandon、 Elsie、 Blondin、 Grant、 Katrin、 Nyx、 Gabriel、 Locklainn、 Claire、 Devin、 Minerva、 Monty、 Austin、 Bradford、 Si、 Keira、 H、 Caitlin、 Dita、 Makai、 Jenn と、その他多数の人達によって作成されました。
+ Second Lifeは、Philip、Tessa、Andrew、Cory、Ben、Bunny、Char、Charlie、Colin、Dan、Daniel、Doug、Eric、Hamlet、Haney、Hunter、Ian、Jeff、Jim、John、Lee、Mark、Peter、Phoenix、Richard、Robin、Xenon、Steve、Tanya、Eddie、Frank、Bruce、Aaron、Alice、Bob、Debra、Eileen、Helen、Janet、Louie、Leviathania、Stefan、Ray、Kevin、Tom、Mikeb、MikeT、Burgess、Elena、Tracy、BillTodd、Ryan、Zach、Sarah、Nova、Otakon、Tim、Stephanie、Michael、Evan、Nicolas、Catherine、Rachelle、Dave、Holly、Bub、Kelly、Magellan、Ramzi、Don、Sabin、Jill、Rheya、DanceStar、Jeska、Hungry、Torley、Kona、Callum、Charity、Ventrella、Jack、Uncle、Vektor、Iris、Chris、Nicole、Mick、Reuben、Blue、Babbage、Yedwab、Deana、Lauren、Brent、Pathfinder、Chadrick、Altruima、Jesse、Monroe、David、Tess、Lizzie、Patsy、Pony、Isaac、Lawrence、Cyn、Bo、Gia、Annette、Marius、Tbone、Jonathan、Karen、Ginsu、Yuko、Makiko、Thomas、Harry、Seth、Alexei、Brian、Guy、Runitai、Ethan、Data、Cornelius、Kenny、Swiss、Zero、Natria、Wendy、Stephen、Teeple、Thumper、Lucy、Dee、Mia、Liana、Warren、Branka、Aura、beez、Milo、Hermia、Red、Thrax、Joe、Sally、Magenta、Paul、Jose、Rejean、Henrik、Lexie、Amber、Logan、Xan、Nora、Morpheus、Donovan、Leyla、MichaelFrancis、Beast、Cube、Bucky、Joshua、Stryfe、Harmony、Teresa、Claudia、Walker、Glenn、Fritz、Fordak、June、Cleopetra、Jean、Ivy、Betsy、Roosevelt、Spike、Ken、Which、Tofu、Chiyo、Rob、Zee、dustin、George、Del、Matthew、Cat、Jacqui、Lightfoot、Adrian、Viola、Alfred、Noel、Irfan、Sunil、Yool、Rika、Jane、Xtreme、Frontier、a2、Neo、Siobhan、Yoz、Justin、Elle、Qarl、Benjamin、Isabel、Gulliver、Everett、Christopher、Izzy、Stephany、Garry、Sejong、Sean、Tobin、Iridium、Meta、Anthony、Jeremy、JP、Jake、Maurice、Madhavi、Leopard、Kyle、Joon、Kari、Bert、Belinda、Jon、Kristi、Bridie、Pramod、KJ、Socrates、Maria、Ivan、Aric、Yamasaki、Adreanne、Jay、MitchK、Ceren、Coco、Durl、Jenny、Periapse、Kartic、Storrs、Lotte、Sandy、Colossus、Zen、BigPapi、Brad、Pastrami、Kurz、Mani、Neuro、Jaime、MJ、Rowan、Sgt、Elvis、Gecko、Samuel、Sardonyx、Leo、Bryan、Niko、Soft、Poppy、Rachel、Aki、Angelo、Banzai、Alexa、Sue、CeeLo、Bender、CG、Gillian、Pelle、Nick、Echo、Zara、Christine、Shamiran、Emma、Blake、Keiko、Plexus、Joppa、Sidewinder、Erica、Ashlei、Twilight、Kristen、Brett、Q、Enus、Simon、Bevis、Kraft、Kip、Chandler、Ron、LauraP、Ram、KyleJM、Scouse、Prospero、Melissa、Marty、Nat、Hamilton、Kend、Lordan、Jimmy、Kosmo、Seraph、Green、Ekim、Wiggo、JT、Rome、Doris、Miz、Benoc、Whump、Trinity、Patch、Kate、TJ、Bao、Joohwan、Christy、Sofia、Matias、Cogsworth、Johan、Oreh、Cheah、Angela、Brandy、Mango、Lan、Aleks、Gloria、Heidy、Mitchell、Space、Colton、Bambers、Einstein、Maggie、Malbers、Rose、Winnie、Stella、Milton、Rothman、Niall、Marin、Allison、James、Katie、Dawn、Katt、Kalpana、Judy、Andrea、Ambroff、Infinity、Gail、Rico、Raymond、Yi、William、Christa、M、Teagan、Scout、Molly、Dante、Corr、Dynamike、Usi、Kaylee、Lil、Danica、Sascha、Kelv、Jacob、Nya、Rodney、Brandon、Elsie、Blondin、Grant、Katrin、Nyx、Gabriel、Locklainn、Claire、Devin、Minerva、Monty、Austin、Bradford、Si、Keira、H、Caitlin、Dita、Makai、Jennと、その他多数の人達によって作成されました。
-このバージョンをこれまでで最高のものになるようご協力をいただいた以下の住人の皆様に深く感謝いたします。aaron23 decuir、 Abra Miles、 absolute balderdash、 adelle fitzgerald、 Aeron Kohime、 Aki Shichiroji、 Alger Meads、 Alissa Sabre、 AlwaysIcey Mapholisto、 Arawn Spitteler、 Aren Mandala、 Arianna Wrigglesworth、 Bagushii Kohime、 Balpien Hammerer、 Blinking2342 Blinker、 byakuya runo、 Capucchy Streeter、 Chandra Jun、 Coyote Pace、 Crusher Soderstrom、 Cummere Mayo、 cyberrosa Rossini、 Dael Ra、 danana dodonpa、 Darek Deluca、 Davec Horsforth、 django yifu、 draco crane、 Dre Dagostino、 Ephyu Reino、 etan quan、 Fenrix Murakami、 Fledhyris Proudhon、 Fred Wardhani、 Frederich Courier、 garth fairchang、 Gellan Glenelg、 Geraldine Giha、 GOLAN Eilde、 gonzo joubert、 Hachiro Yokosuka、 Hampton Hax、 harleywood guru、 Hevenz Vansant、 imnotgoing sideways、 Jaden Giles、 Jeanette Janus、 Karl Dorance、 keaton Akina、 Khashai Steinbeck、 KiPSOFT Tuqiri、 kirstenlee Cinquetti、 Kitty Barnett、 Laurent Vesta、 Lazure Ryba、 Lima Vesperia、 Linzi Bingyi、 Lisa Lowe、 LuDon Ninetails、 Mark Rosenbaum、 McCabe Maxsted、 Michi Lumin、 Midi Aeon、 ml0rtd kit、 Mo Eriksen、 Morice Flanagan、 Mysterion Aeon、 Nad Gough、 norgan torok、 Pygar Bu、 Qie Niangao、 rachel corleone、 Rado Arado、 roberto salubrius、 Royer Pessoa、 samia bechir、 Sasha Nurmi、 Sean Heying、 Selkit Diller、 Shadow Pidgeon、 simon kline、 Smokie Ember、 Soap Clawtooth、 Strife Onizuka、 Tal Chernov、 Talan Hyun、 tangletwigs fairymeadow、 Tanya Spinotti、 Tayra Dagostino、 Teebone Aeon、 Theremes Langdon、 Thraxis Epsilon、 tucor Capalini、 Vasko Hawker、 VenusMari Zapedzki、 Vex Streeter、 Viktoria Dovgal、 Vincent Nacon、 Viridian Exonar、 Vivienne Schell、 WarKirby Magojiro、 Wilton Lundquist、 Yukinoroh Kamachi、 Zyzzy Zarf
+ このバージョンをこれまでで最高のものになるようご協力をいただいた以下の住人の皆様に深く感謝いたします。 aaron23 decuir、Abra Miles、absolute balderdash、adelle fitzgerald、Aeron Kohime、Aki Shichiroji、Alger Meads、Alissa Sabre、AlwaysIcey Mapholisto、Arawn Spitteler、Aren Mandala、Arianna Wrigglesworth、Bagushii Kohime、Balpien Hammerer、Blinking2342 Blinker、byakuya runo、Capucchy Streeter、Chandra Jun、Coyote Pace、Crusher Soderstrom、Cummere Mayo、cyberrosa Rossini、Dael Ra、danana dodonpa、Darek Deluca、Davec Horsforth、django yifu、draco crane、Dre Dagostino、Ephyu Reino、etan quan、Fenrix Murakami、Fledhyris Proudhon、Fred Wardhani、Frederich Courier、garth fairchang、Gellan Glenelg、Geraldine Giha、GOLAN Eilde、gonzo joubert、Hachiro Yokosuka、Hampton Hax、harleywood guru、Hevenz Vansant、imnotgoing sideways、Jaden Giles、Jeanette Janus、Karl Dorance、keaton Akina、Khashai Steinbeck、KiPSOFT Tuqiri、kirstenlee Cinquetti、Kitty Barnett、Laurent Vesta、Lazure Ryba、Lima Vesperia、Linzi Bingyi、Lisa Lowe、LuDon Ninetails、Mark Rosenbaum、McCabe Maxsted、Michi Lumin、Midi Aeon、ml0rtd kit、Mo Eriksen、Morice Flanagan、Mysterion Aeon、Nad Gough、norgan torok、Pygar Bu、Qie Niangao、rachel corleone、Rado Arado、roberto salubrius、Royer Pessoa、samia bechir、Sasha Nurmi、Sean Heying、Selkit Diller、Shadow Pidgeon、simon kline、Smokie Ember、Soap Clawtooth、Strife Onizuka、Tal Chernov、Talan Hyun、tangletwigs fairymeadow、Tanya Spinotti、Tayra Dagostino、Teebone Aeon、Theremes Langdon、Thraxis Epsilon、tucor Capalini、Vasko Hawker、VenusMari Zapedzki、Vex Streeter、Viktoria Dovgal、Vincent Nacon、Viridian Exonar、Vivienne Schell、WarKirby Magojiro、Wilton Lundquist、Yukinoroh Kamachi、Zyzzy Zarf
-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)
-jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
-ogg/vorbis Copyright (C) 2001, Xiphophorus
-OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
-SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
-SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
-xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
-zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
+ 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)
+ jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+ ogg/vorbis Copyright (C) 2001, Xiphophorus
+ OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
+ SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
+ SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
+ zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
-無断複写・転載を禁じます。詳細はlicenses.txtを参照してください。
+ 無断転写、複製、転載を禁じます。 詳細はlicenses.txtを参照してください。
-Voice chat Audio coding:Polycom(R) Siren14(TM) (ITU-T Rec.G.722.1 Annex C)
+ Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
-しあわせはあったかい子犬-- チャールズ・M・シュルツ
+ 後回しにされた夢はどうなるの? --ラングストン・ヒューズ
</text_editor>
<text name="you_are_at">
[POSITION]中
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 cbefed4760..adc85df627 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -115,6 +115,10 @@
<text name="sale_pending_text">
(購入審査中)
</text>
+ <string name="no_selection_text">
+ 区画が選定されていません。
+[世界]メニュー&gt;[土地情報]に進むか、別の区画を選択して、詳細を表示します。
+ </string>
</panel>
<panel label="約款" name="land_covenant_panel">
<text type="string" length="1" name="covenant_timestamp_text">
diff --git a/indra/newview/skins/default/xui/ja/floater_im.xml b/indra/newview/skins/default/xui/ja/floater_im.xml
index 1be8e7b60a..4887beefd6 100644
--- a/indra/newview/skins/default/xui/ja/floater_im.xml
+++ b/indra/newview/skins/default/xui/ja/floater_im.xml
@@ -7,7 +7,7 @@
[FIRST] [LAST]はオフラインです。
</text>
<string name="muted_message">
- 住人はミュートされています。
+ あなたはこの住人をミュートしています。 メッセージを送信すると、ミュートは自動的に解除されます。
</string>
<text name="generic_request_error">
要求中にエラーが発生しました。後でもう一度試してください。
diff --git a/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
index b7ce98cf2d..d28c673be5 100644
--- a/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
@@ -2,6 +2,7 @@
<floater name="script ed float" title="スクリプト:新しいスクリプト">
<button label="リセット" label_selected="リセット" name="Reset" />
<check_box label="実行中" name="running" />
+ <check_box label="モノ" name="mono" />
<text name="not_allowed">
あなたはこのスクリプトを見ることができません。
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml
new file mode 100644
index 0000000000..bdec7e5e63
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="MemLeak" title="メモリ・リーク・シミュレーション">
+ <spinner label="リークスピード(1フレームごとのバイト数):"
+ name="leak_speed" />
+ <spinner label="リークした最大メモリ数(MB):" name="max_leak" />
+ <text name="total_leaked_label">
+ 現在のリークメモリサイズ: [SIZE] KB
+ </text>
+ <text name="note_label_1">
+ [NOTE1]
+ </text>
+ <text name="note_label_2">
+ [NOTE2]
+ </text>
+ <button label="開始" name="start_btn" />
+ <button label="停止" name="stop_btn" />
+ <button label="解放" name="release_btn" />
+ <button label="閉じる" name="close_btn" />
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_postcard.xml b/indra/newview/skins/default/xui/ja/floater_postcard.xml
index eb318f6a8c..1689ec74f4 100644
--- a/indra/newview/skins/default/xui/ja/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/ja/floater_postcard.xml
@@ -1,37 +1,37 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Postcard" title="ポストカードを送る">
+<floater name="Postcard" title="スナップショットを電子メールで送信">
<text name="to_label">
住人の電子メール:
</text>
- <line_editor left="145" name="to_form" width="125"/>
+ <line_editor left="145" name="to_form" width="125" />
<text name="from_label">
あなたのEメール:
</text>
- <line_editor left="145" name="from_form" width="125"/>
+ <line_editor left="145" name="from_form" width="125" />
<text name="name_label">
あなたの名前:
</text>
- <line_editor left="145" name="name_form" width="125"/>
+ <line_editor left="145" name="name_form" width="125" />
<text name="subject_label">
件名:
</text>
- <line_editor label="件名をここにタイプ。" name="subject_form" left="145" width="125" />
+ <line_editor label="件名をここにタイプ。" left="145" name="subject_form"
+ width="125" />
<text name="msg_label">
メッセージ:
</text>
- <text_editor name="msg_form" height="110" bottom_delta="-120">
+ <text_editor bottom_delta="-120" height="110" name="msg_form">
メッセージをここにタイプ。
</text_editor>
<check_box label="ウェブ上で公開" name="allow_publish_check"
tool_tip="このポストカードをウェブ上で公開します。" />
<check_box label="成人向けコンテンツ" name="mature_check"
tool_tip="このポストカードには成人向け内容が含まれます。" />
- <button label="?" name="publish_help_btn" left="300" />
+ <button label="?" left="300" name="publish_help_btn" />
<text name="fine_print">
- あなたのポストカードの受信者がSLに参加すると、あなたは紹介ボーナスを受
-け取ります。
+ あなたの受信者がSLに参加すると、あなたは紹介ボーナスを受け取れます
</text>
- <button label="取り消し" name="cancel_btn" bottom_delta="-52" />
+ <button bottom_delta="-52" label="取り消し" name="cancel_btn" />
<button label="送信" name="send_btn" />
<text name="default_subject">
Second Life からのポストカード。
@@ -39,4 +39,7 @@
<text name="default_message">
これは絶対チェック!
</text>
+ <string name="upload_message">
+ 送信中...
+ </string>
</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 e87b7797d3..052e560661 100644
--- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
@@ -42,8 +42,101 @@
<combo_item name="Selectcategory">
カテゴリーを選択
</combo_item>
+ <combo_item name="Select_category">
+ カテゴリーを選択
+ </combo_item>
+ <combo_item name="Age__Age_play">
+ 年齢&gt;年齢偽証
+ </combo_item>
+ <combo_item name="Age__Adult_resident_on_Teen_Second_Life">
+ 年齢&gt;成人の住人がTeen Second Life上にいる
+ </combo_item>
+ <combo_item name="Age__Underage_resident_on_Adult_Second_Life">
+ 年齢&gt;未成年の住人がAdult Second Life上にいる
+ </combo_item>
+ <combo_item name="Assault__Combat_sandbox___unsafe_area">
+ 攻撃&gt;コンバット・サンドボックス/危険なエリア
+ </combo_item>
+ <combo_item name="Assault__Safe_area">
+ 攻撃&gt;安全なエリア
+ </combo_item>
+ <combo_item name="Assault__Weapons_testing_sandbox">
+ 攻撃&gt;武器テスト用サンドボックス
+ </combo_item>
+ <combo_item name="Copyright_or_intellectual_property_violation">
+ 著作権または知的所有権に関する違反
+ </combo_item>
+ <combo_item name="Commerce__Failure_to_deliver_product_or_service">
+ 商取引&gt;製品またはサービスの提供が行われない
+ </combo_item>
+ <combo_item name="Disclosure__First_Life_information">
+ 開示&gt;1st Lifeの情報
+ </combo_item>
+ <combo_item name="Disclosure__Remotely_monitoring chat">
+ 開示&gt;離れたところからチャットをモニターしている
+ </combo_item>
+ <combo_item name="Disclosure__Second_Life_information_chat_IMs">
+ 開示&gt;Second Lifeの情報/チャット/IM
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources">
+ 平穏を乱す行為&gt;地域リソースの使用が不公平
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Excessive_scripted_objects">
+ 平穏を乱す行為&gt;スクリプト・オブジェクトの乱用
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Object_littering">
+ 平穏を乱す行為&gt;オブジェクトの捨て置き
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Repetitive_spam">
+ 平穏を乱す行為&gt;繰り返しスパム
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Unwanted_advert_spam">
+ 平穏を乱す行為&gt;不要な広告スパム
+ </combo_item>
+ <combo_item name="Fraud__L$">
+ 詐欺&gt; L$
+ </combo_item>
+ <combo_item name="Fraud__Land">
+ 詐欺&gt;土地
+ </combo_item>
+ <combo_item name="Fraud__Pyramid_scheme_or_chain_letter">
+ 詐欺&gt;マルチ商法またはチェーン・メール
+ </combo_item>
+ <combo_item name="Fraud__US$">
+ 詐欺&gt; US$
+ </combo_item>
+ <combo_item name="Harassment__Advert_farms___visual_spam">
+ 嫌がらせ&gt;広告委託/視覚的なスパム
+ </combo_item>
+ <combo_item name="Harassment__Defaming_individuals_or_groups">
+ 嫌がらせ&gt;個人またはグループの中傷
+ </combo_item>
+ <combo_item name="Harassment__Impeding_movement">
+ 嫌がらせ&gt;移動の妨害
+ </combo_item>
+ <combo_item name="Harassment__Sexual_harassment">
+ 嫌がらせ&gt;性的な嫌がらせ
+ </combo_item>
+ <combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
+ 嫌がらせ&gt;利用規約(ToS)に違反する行為を行うよう他者を勧誘/扇動
+ </combo_item>
+ <combo_item name="Harassment__Verbal_abuse">
+ 嫌がらせ&gt;暴言
+ </combo_item>
+ <combo_item name="Indecency__Broadly_offensive_content_or_conduct">
+ わいせつ&gt;著しく不快であると見なされるコンテンツまたは行為
+ </combo_item>
+ <combo_item name="Indecency__Broadly_visible_mature_content">
+ わいせつ&gt;あからさまに見せつけられる成人向けと見なされるコンテンツ
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_avatar_name">
+ わいせつ&gt;不適切なアバター名
+ </combo_item>
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ わいせつ&gt;PG地域で成人向けと見なされるコンテンツ
+ </combo_item>
<combo_item name="Intolerance">
- 非許容
+ 不寛容
</combo_item>
<combo_item name="Harassment">
嫌がらせ
@@ -63,6 +156,24 @@
<combo_item name="Parcel">
区画
</combo_item>
+ <combo_item name="Land__Abuse_of_sandbox_resources">
+ 土地&gt;サンドボックス・リソースの乱用
+ </combo_item>
+ <combo_item name="Land__Encroachment__Objects_textures">
+ 土地&gt;不法侵入&gt;オブジェクト/テクスチャー
+ </combo_item>
+ <combo_item name="Land__Encroachment__Particles">
+ 土地&gt;不法侵入&gt;パーティクル
+ </combo_item>
+ <combo_item name="Land__Encroachment__Trees_plants">
+ 土地&gt;不法侵入&gt;樹木/植物
+ </combo_item>
+ <combo_item name="Trademark_violation">
+ 商標権の侵害
+ </combo_item>
+ <combo_item name="Wagering_gambling">
+ 賭け/ギャンブル
+ </combo_item>
<combo_item name="Other">
その他
</combo_item>
@@ -72,6 +183,8 @@
</text>
<button label="住人を選択" label_selected="" name="select_abuser"
tool_tip="嫌がらせをした人の名前をリストから選択してください。" />
+ <check_box label="嫌がらせをした人の名前が不明" name="omit_abuser_name"
+ tool_tip="嫌がらせをした人の名前を提供できないかについて、これを確認" />
<text name="abuser_name_title2">
嫌がらせの起きた場所:
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
index 694ea4e506..57cd2d47c6 100644
--- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
@@ -1,23 +1,26 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Snapshot" title="プレビュー">
<text name="type_label">
- 何をしたいですか?
+ スナップショットの送り先
</text>
<radio_group label="スナップショット・タイプ" name="snapshot_type_radio">
<radio_item name="postcard">
- ポストカード送信
+ 電子メールで送信
</radio_item>
<radio_item name="texture">
- アップロード
+ 持ち物に保存(L$10)
</radio_item>
<radio_item name="local">
- ハード・ドライブに保存
+ ハードディスクに保存
</radio_item>
</radio_group>
<button label="全表示 &gt;&gt;" name="more_btn" tool_tip="高度なオプション" />
<button label="&lt;&lt; 簡易" name="less_btn" tool_tip="高度なオプション" />
<text name="type_label2">
- どんな大きさの画像が必要ですか?
+ サイズ
+ </text>
+ <text name="format_label">
+ フォーマット
</text>
<combo_box label="解像度" name="postcard_size_combo">
<combo_item name="640x480">
@@ -79,6 +82,17 @@
カスタム
</combo_item>
</combo_box>
+ <combo_box label="フォーマット" name="local_format_combo">
+ <combo_item name="PNG">
+ PNG
+ </combo_item>
+ <combo_item name="JPEG">
+ JPEG
+ </combo_item>
+ <combo_item name="BMP">
+ BMP
+ </combo_item>
+ </combo_box>
<spinner label="幅" name="snapshot_width" />
<spinner label="高さ" name="snapshot_height" />
<slider label="画質" name="image_quality_slider" />
@@ -105,10 +119,10 @@
<check_box label="比率の制限" name="keep_aspect_check" />
<check_box label="フレームをフリーズ(全画面)" name="freeze_frame_check" />
<button label="スナップショットを更新" name="new_snapshot_btn" />
- <check_box label="自動スナップショット" name="auto_snapshot_check" />
- <button label="アップロードL$10" name="upload_btn" />
+ <check_box label="自動更新" name="auto_snapshot_check" />
+ <button label="保存(L$10)" name="upload_btn" />
<button label="送信" name="send_btn" />
- <button label="保存" name="save_btn" />
+ <button label="保存" name="save_btn" tool_tip="画像をファイルに保存" />
<button label="キャンセル" name="discard_btn" />
<text name="unknown">
未知
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index 3ec14a7cd0..e755b7c267 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -89,6 +89,9 @@
</combo_item>
</combo_box>
+ <text name="Strength:">
+ 強度:
+ </text>
<button label="選択対象に適用" label_selected="選択対象に適用"
name="button apply to selection" tool_tip="選択した土地を修正" />
<check_box label="オーナーを表示" left="140" name="checkbox show owners" />
@@ -153,6 +156,9 @@
<text name="Price: L$">
料金:L$
</text>
+ <text name="Cost">
+ 価格: L$
+ </text>
<radio_group left="30" name="sale type">
<radio_item name="Original">
オリジナル
@@ -229,6 +235,21 @@
<text name="text modify warning">
権限を設定するには、オブジェクト全体を選択する必要があります。
</text>
+ <string name="Cost Default">
+ 価格: L$
+ </string>
+ <string name="Cost Total">
+ 合計価格: L$
+ </string>
+ <string name="Cost Per Unit">
+ 単価: L$
+ </string>
+ <string name="Cost Mixed">
+ 混合価格
+ </string>
+ <string name="Sale Mixed">
+ 混合販売
+ </string>
</panel>
<panel label="オブジェクト" name="Object">
<text name="select_single">
@@ -385,6 +406,10 @@
</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="スカルプトされたプリムのノーマルを逆転させ、裏返しに表示" />
<text name="label sculpt type">
縫い目のタイプ
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_top_objects.xml b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
index 879e2d8f64..819a715932 100644
--- a/indra/newview/skins/default/xui/ja/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
@@ -8,6 +8,7 @@
<column label="名前" name="name" />
<column label="所有者" name="owner" />
<column label="ロケーション" name="location" />
+ <column label="時間" name="time" />
</scroll_list>
<text name="id_text">
物体ID:
diff --git a/indra/newview/skins/default/xui/ja/floater_tos.xml b/indra/newview/skins/default/xui/ja/floater_tos.xml
index ee01a2b2d2..31e3a24045 100644
--- a/indra/newview/skins/default/xui/ja/floater_tos.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tos.xml
@@ -13,6 +13,7 @@
<text name="tos_title">
利用規約
</text>
+ <check_box label="利用規約に同意します" name="agree_chk" />
<text name="tos_heading">
以下の利用規約を注意深くお読みください。 SecondLifeへログインするには、
規約に同意しなければなりません。
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index 278e43ff23..ef68d38717 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -146,6 +146,7 @@
<menu_item_call label="退席中に設定" name="Set Away" />
<menu_item_call label="ビジーに設定" name="Set Busy" />
<menu_item_call label="アニメーションをすべて停止" name="Stop All Animations" />
+ <menu_item_call label="キーを解除" name="Release Keys" />
<menu_item_separator label="-----------" name="separator4" />
<menu_item_call label="口座履歴..." name="Account History..." />
<menu_item_call label="自分の口座の管理..." name="Manage My Account..." />
@@ -216,7 +217,10 @@
<menu_item_call label="スクリプト警告/エラー・ウィンドウを表示"
name="Show Script Warning/Error Window" />
<menu_item_call label="選択したスクリプトを再コンパイル"
- name="Recompile Scripts in Selection" />
+ name="Recompile Scripts in Selection">
+ <menu_item_call label="モノ" name="Mono" />
+ <menu_item_call label="LSL" name="LSL" />
+ </menu_item_call>
<menu_item_call label="選択したスクリプトをリセット"
name="Reset Scripts in Selection" />
<menu_item_call label="選択したスクリプトを起動する"
diff --git a/indra/newview/skins/default/xui/ja/mime_types.xml b/indra/newview/skins/default/xui/ja/mime_types.xml
index 9bebc7cd8f..3d5f43a805 100644
--- a/indra/newview/skins/default/xui/ja/mime_types.xml
+++ b/indra/newview/skins/default/xui/ja/mime_types.xml
@@ -112,6 +112,11 @@
リッチ・テキスト (RTF)
</label>
</mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ 同期マルチメディア統合言語(SMIL)
+ </label>
+ </mimetype>
<mimetype name="application/xhtml+xml">
<label name="application/xhtml+xml_label">
ウェブ・ページ (XHTML)
@@ -222,4 +227,4 @@
ムービー (AVI)
</label>
</mimetype>
-</mimetypes> \ No newline at end of file
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml
index f908a1fc47..c3b95f61b9 100644
--- a/indra/newview/skins/default/xui/ja/panel_login.xml
+++ b/indra/newview/skins/default/xui/ja/panel_login.xml
@@ -30,11 +30,14 @@
<button label="新規アカウント..." label_selected="新規アカウント..."
name="new_account_btn" />
<button label="環境設定..." label_selected="環境設定..." name="preferences_btn" />
- <button label="接続" label_selected="接続" name="connect_btn" />
+ <button label="Second Lifeに入る" label_selected="接続" name="connect_btn" />
<button label="終了" label_selected="終了" name="quit_btn" />
<text name="version_text">
1.23.4 (5)
</text>
+ <text name="create_new_account_text">
+ 新しいアカウントを作成します。
+ </text>
<text name="channel_text">
[Viewer Channel Name]
</text>
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 12f009f4e5..d4f5a6bba4 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
@@ -17,6 +17,8 @@
<text type="string" length="1" name="text_box2">
チャット・カラー:
</text>
+ <color_swatch label="貴方" name="user" />
+ <color_swatch label="その他" name="agent" />
<color_swatch label="IM" name="im" />
<color_swatch label="システム" name="system" />
<color_swatch label="チャット" name="users" />
@@ -47,6 +49,8 @@
name="arrow_keys_move_avatar_check" />
<check_box label="チャットにタイムスタンプを表示"
name="show_timestamps_check" />
+ <check_box label="タイピング動作のアニメーションを再生"
+ name="play_typing_animation" />
<text type="string" length="1" name="text_box7">
チャットの吹き出し:
</text>
@@ -57,5 +61,5 @@
</text>
<check_box label="スクリプト・エラーと警告をチャット同様に表示"
name="script_errors_as_chat" />
- <color_swatch label="色" name="script_error" />
+ <color_swatch label="エラー" name="script_error" />
</panel>
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 213d1ed834..afa74afde5 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -126,4 +126,6 @@
Español (スペイン語) – ベータ
</combo_item>
</combo_box>
+ <check_box label="言語をオブジェクトと共有" name="language_is_public"
+ tool_tip="優先言語をインワールドのオブジェクトが認識する" />
</panel>
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 321c261aaa..5a3a33496e 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_debug.xml
@@ -16,12 +16,25 @@
tool_tip="この地域の物理作用をすべて無効化" />
<button label="?" name="disable_physics_help" />
<button label="適用" name="apply_btn" />
- <button label="アバターを選択..." name="choose_avatar_btn" />
+ <line_editor name="target_avatar_name">
+ (なし)
+ </line_editor>
+ <button label="選択..." name="choose_avatar_btn" />
<button
label="人の土地のアバター・スクリプト・オブジェクトを返却"
name="return_scripted_other_land_btn" />
<button label="アバターのスクリプト・オブジェクトをすべて返却"
name="return_scripted_all_btn" />
+ <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="この不動産に含まれているすべての地域のオブジェクトを返却" />
+ <button label="返却" name="return_btn" />
<button label="上部コライダー取得" name="top_colliders_btn"
tool_tip="衝突する可能性が最も高いオブジェクトのリスト" />
<button label="?" name="top_colliders_help" />
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 d2fd70ee54..26b3432e1f 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
@@ -24,6 +24,12 @@
tool_tip="年齢確認を済ませていない住人を排除する詳細については、support.secondlife.comを参照してください。" />
<check_box label="ボイスチャットを許可" name="voice_chat_check" />
<button label="?" name="voice_chat_help" />
+ <text name="abuse_email_text">
+ 嫌がらせに関するメール先:
+ </text>
+ <string name="email_unsupported">
+ サポートされていない機能
+ </string>
<button label="?" name="abuse_email_address_help" />
<text name="estate_manager_label">
不動産マネージャー:
diff --git a/indra/newview/skins/default/xui/ja/role_actions.xml b/indra/newview/skins/default/xui/ja/role_actions.xml
index c0c98b3159..2ad66072b0 100644
--- a/indra/newview/skins/default/xui/ja/role_actions.xml
+++ b/indra/newview/skins/default/xui/ja/role_actions.xml
@@ -5,13 +5,13 @@
name="Membership">
<action description="このグループに人を招待"
longdescription="グループに人を招待するには、[メンバーと役割]タブ>[メンバー]サブタブの[新しい人を招待...]ボタンを使います。"
- name="member invite" value="1" />
+ name="member invite" value="1" />
<action description="メンバーをこのグループから追放"
longdescription="メンバーをこのグループから追放するには、[メンバーと役割]タブ &gt; [役割]サブタブの[グループから追放]を使います。 オーナーは、他のオーナー以外の任意のメンバーを追放できます。 オーナーでないユーザーがグループからメンバーを追放できるのは、そのメンバーが「全員」の役割にのみ所属しており、他の役割に所属していない場合だけです。 役割からメンバーを除外するには、「役割からメンバーを除外」能力を有している必要があります。"
- name="member eject" value="2" />
+ name="member eject" value="2" />
<action description="[会員募集]に切り替え、[入会費]を変更。"
longdescription="招待状なしに新メンバーが加入できるように[会員募集]に切り替え、[一般]タブの[グループ環境設定]セクションから[入会費]を変更します。"
- name="member options" value="3" />
+ name="member options" value="3" />
</action_set>
<action_set
description="これらの能力には、グループ内の役割を追加、削除、変更し、役割にメンバーを追加、削除し、さらに役割へ能力を割り当てる権限が含まれます。"
@@ -181,4 +181,25 @@
longdescription="この能力を持つ役割のメンバーは、グループ情報>提案タブで提案に投票することができます。"
name="proposal vote" value="45" />
</action_set>
+ <action_set
+ description="
+これらのアビリティには、グループ・チャット・セッションやグループ・ボイス・チャットへのアクセスの許可や制限の権限が含まれます。
+"
+ name="Chat">
+ <action description="グループ・チャットに参加する"
+ longdescription="
+このアビリティを持つ役割のメンバーは、グループ・チャット・セッションにテキストおよびボイスで参加できます。
+"
+ name="join group chat" />
+ <action description="グループ・ボイス・チャットに参加する"
+ longdescription="
+このアビリティを持つ役割のメンバーは、グループ・ボイス・チャット・セッションに参加できます。 注: ボイス・チャット・セッションにアクセスするには、グループ・チャットに参加するアビリティが必要です。
+"
+ name="join voice chat" />
+ <action description="グループ・チャットを管理する"
+ longdescription="
+このアビリティを持つ役割のメンバーは、グループ・ボイス・チャット・セッションおよびグループ・テキスト・チャット・セッションへのアクセスや参加をコントロールすることができます。
+"
+ name="moderate group chat" />
+ </action_set>
</role_actions>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 700f6bd440..8ff99144c6 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -18,6 +18,9 @@
<string name="LoginInitializingBrowser">
埋め込みWebブラウザを初期化しています...
</string>
+ <string name="LoginInitializingMultimedia">
+ マルチメディアを初期化しています...
+ </string>
<string name="LoginVerifyingCache">
キャッシュ・ファイルを検証しています(所要時間は60~90秒)...
</string>
@@ -48,6 +51,9 @@
<string name="LoginDownloadingClothing">
服をダウンロードしています...
</string>
+ <string name="AgentLostConnection">
+ この地域には、問題が発生している可能性があります。 インターネット接続を確認してください。
+ </string>
<string name="TooltipPerson">
</string>
@@ -120,9 +126,15 @@
<string name="TooltipLand">
土地:
</string>
+ <string name="TooltipMustSingleDrop">
+ 1つのアイテムのみをここにドラッグできます
+ </string>
<string name="RetrievingData">
検索中...
</string>
+ <string name="ReleaseNotes">
+ リリースノート
+ </string>
<string name="LoadingData">
ロード中...
</string>
@@ -387,4 +399,16 @@
<string name="anim_yes_head">
頷く
</string>
+ <string name="texture_loading">
+ ロード中...
+ </string>
+ <string name="worldmap_offline">
+ オフライン
+ </string>
+ <string name="whisper">
+ ささやく:
+ </string>
+ <string name="shout">
+ 叫ぶ:
+ </string>
</strings>
diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp
index 40dbc3bbd0..beec31a008 100644
--- a/indra/win_crash_logger/llcrashloggerwindows.cpp
+++ b/indra/win_crash_logger/llcrashloggerwindows.cpp
@@ -29,6 +29,8 @@
* $/LicenseInfo$
*/
+#include "linden_common.h"
+
#include "stdafx.h"
#include "resource.h"
#include "llcrashloggerwindows.h"
diff --git a/indra/win_crash_logger/llcrashloggerwindows.h b/indra/win_crash_logger/llcrashloggerwindows.h
index 45c3b4772b..e3120138ce 100644
--- a/indra/win_crash_logger/llcrashloggerwindows.h
+++ b/indra/win_crash_logger/llcrashloggerwindows.h
@@ -32,7 +32,6 @@
#ifndef LLCRASHLOGGERWINDOWS_H
#define LLCRASHLOGGERWINDOWS_H
-#include "linden_common.h"
#include "llcrashlogger.h"
#include "windows.h"
#include "llstring.h"
diff --git a/indra/win_crash_logger/win_crash_logger.cpp b/indra/win_crash_logger/win_crash_logger.cpp
index c6b4ff1c34..8f339d6661 100644
--- a/indra/win_crash_logger/win_crash_logger.cpp
+++ b/indra/win_crash_logger/win_crash_logger.cpp
@@ -33,6 +33,8 @@
//
// Must be first include, precompiled headers.
+#include "linden_common.h"
+
#include "stdafx.h"
#include <stdlib.h>