diff options
82 files changed, 827 insertions, 345 deletions
diff --git a/indra/llcommon/lluuid.cpp b/indra/llcommon/lluuid.cpp index 583c1e589b..3bab01715a 100644 --- a/indra/llcommon/lluuid.cpp +++ b/indra/llcommon/lluuid.cpp @@ -456,101 +456,53 @@ static void get_random_bytes(void *buf, int nbytes) } #if LL_WINDOWS -// Code copied from http://msdn.microsoft.com/en-us/library/aa365939(VS.85).aspx -// This code grabs the first hardware address, rather than the first interface. -// Using a VPN can cause the first returned interface to be changed. - -const S32 MAC_ADDRESS_BYTES=6; +typedef struct _ASTAT_ +{ + ADAPTER_STATUS adapt; + NAME_BUFFER NameBuff [30]; +}ASTAT, * PASTAT; // static S32 LLUUID::getNodeID(unsigned char *node_id) { + ASTAT Adapter; + NCB Ncb; + UCHAR uRetCode; + LANA_ENUM lenum; + int i; + int retval = 0; - // Declare and initialize variables. - DWORD dwSize = 0; - DWORD dwRetVal = 0; - int i; - -/* variables used for GetIfTable and GetIfEntry */ - MIB_IFTABLE *pIfTable; - MIB_IFROW *pIfRow; + memset( &Ncb, 0, sizeof(Ncb) ); + Ncb.ncb_command = NCBENUM; + Ncb.ncb_buffer = (UCHAR *)&lenum; + Ncb.ncb_length = sizeof(lenum); + uRetCode = Netbios( &Ncb ); - // Allocate memory for our pointers. - pIfTable = (MIB_IFTABLE *) malloc(sizeof (MIB_IFTABLE)); - if (pIfTable == NULL) + for(i=0; i < lenum.length ;i++) { - printf("Error allocating memory needed to call GetIfTable\n"); - return 0; - } + memset( &Ncb, 0, sizeof(Ncb) ); + Ncb.ncb_command = NCBRESET; + Ncb.ncb_lana_num = lenum.lana[i]; - // Before calling GetIfEntry, we call GetIfTable to make - // sure there are entries to get and retrieve the interface index. + uRetCode = Netbios( &Ncb ); - // Make an initial call to GetIfTable to get the - // necessary size into dwSize - if (GetIfTable(pIfTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER) { - free(pIfTable); - pIfTable = (MIB_IFTABLE *) malloc(dwSize); - if (pIfTable == NULL) - { - printf("Error allocating memory\n"); - return 0; - } - } - // Make a second call to GetIfTable to get the actual - // data we want. - if ((dwRetVal = GetIfTable(pIfTable, &dwSize, 0)) == NO_ERROR) - { - if (pIfTable->dwNumEntries > 0) - { - pIfRow = (MIB_IFROW *) malloc(sizeof (MIB_IFROW)); - if (pIfRow == NULL) - { - printf("Error allocating memory\n"); - if (pIfTable != NULL) - { - free(pIfTable); - pIfTable = NULL; - } - return 0; - } + memset( &Ncb, 0, sizeof (Ncb) ); + Ncb.ncb_command = NCBASTAT; + Ncb.ncb_lana_num = lenum.lana[i]; - int limit = MAC_ADDRESS_BYTES; - memcpy(node_id, "\0\0\0\0\0\0", limit); // zero out array of bytes - for (i = 0; i < (int) pIfTable->dwNumEntries; i++) - { - pIfRow->dwIndex = pIfTable->table[i].dwIndex; - if ((dwRetVal = GetIfEntry(pIfRow)) == NO_ERROR) - { - switch (pIfRow->dwType) - { - case IF_TYPE_ETHERNET_CSMACD: - case IF_TYPE_IEEE80211: - limit = min((int) pIfRow->dwPhysAddrLen, limit); - if (pIfRow->dwPhysAddrLen == 0) - break; - memcpy(node_id, (UCHAR *)&pIfRow->bPhysAddr[0], limit); // just incase the PhysAddr is not the expected MAC_Address size - free(pIfTable); - return 1; //return first hardware device found. - break; - - case IF_TYPE_OTHER: - case IF_TYPE_PPP: - case IF_TYPE_SOFTWARE_LOOPBACK: - case IF_TYPE_ISO88025_TOKENRING: - case IF_TYPE_IEEE1394: - case IF_TYPE_ATM: - case IF_TYPE_TUNNEL: - default: - break; - } - } - } + strcpy( (char *)Ncb.ncb_callname, "* " ); /* Flawfinder: ignore */ + Ncb.ncb_buffer = (unsigned char *)&Adapter; + Ncb.ncb_length = sizeof(Adapter); + + uRetCode = Netbios( &Ncb ); + if ( uRetCode == 0 ) + { + memcpy(node_id,Adapter.adapt.adapter_address,6); /* Flawfinder: ignore */ + retval = 1; } } - free(pIfTable); - return 0; + return retval; } #elif LL_DARWIN diff --git a/indra/llplugin/slplugin/CMakeLists.txt b/indra/llplugin/slplugin/CMakeLists.txt index c1536e85de..08d35f9ae7 100644 --- a/indra/llplugin/slplugin/CMakeLists.txt +++ b/indra/llplugin/slplugin/CMakeLists.txt @@ -16,6 +16,7 @@ include_directories( if (DARWIN) include(CMakeFindFrameworks) find_library(CARBON_LIBRARY Carbon) + find_library(COCOA_LIBRARY Cocoa) endif (DARWIN) @@ -25,6 +26,22 @@ set(SLPlugin_SOURCE_FILES slplugin.cpp ) +if (DARWIN) + list(APPEND SLPlugin_SOURCE_FILES + slplugin-objc.mm + ) + list(APPEND SLPlugin_HEADER_FILES + slplugin-objc.h + ) +endif (DARWIN) + +set_source_files_properties(${SLPlugin_HEADER_FILES} + PROPERTIES HEADER_FILE_ONLY TRUE) + +if (SLPlugin_HEADER_FILES) + list(APPEND SLPlugin_SOURCE_FILES ${SLPlugin_HEADER_FILES}) +endif (SLPlugin_HEADER_FILES) + add_executable(SLPlugin WIN32 MACOSX_BUNDLE @@ -51,7 +68,7 @@ add_dependencies(SLPlugin if (DARWIN) # Mac version needs to link against Carbon - target_link_libraries(SLPlugin ${CARBON_LIBRARY}) + target_link_libraries(SLPlugin ${CARBON_LIBRARY} ${COCOA_LIBRARY}) # Make sure the app bundle has a Resources directory (it will get populated by viewer-manifest.py later) add_custom_command( TARGET SLPlugin POST_BUILD diff --git a/indra/llplugin/slplugin/slplugin-objc.h b/indra/llplugin/slplugin/slplugin-objc.h new file mode 100644 index 0000000000..4e55cb14cf --- /dev/null +++ b/indra/llplugin/slplugin/slplugin-objc.h @@ -0,0 +1,40 @@ +/** + * @file slplugin-objc.h + * @brief Header file for slplugin-objc.mm. + * + * @cond + * + * $LicenseInfo:firstyear=2010&license=viewergpl$ + * + * Copyright (c) 2010, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlife.com/developers/opensource/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlife.com/developers/opensource/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + * + * @endcond + */ + + +/* Defined in slplugin-objc.mm: */ +void setupCocoa(); +void createAutoReleasePool(); +void deleteAutoReleasePool(); diff --git a/indra/llplugin/slplugin/slplugin-objc.mm b/indra/llplugin/slplugin/slplugin-objc.mm new file mode 100644 index 0000000000..823e1ebea6 --- /dev/null +++ b/indra/llplugin/slplugin/slplugin-objc.mm @@ -0,0 +1,87 @@ +/** + * @file slplugin-objc.mm + * @brief Objective-C++ file for use with the loader shell, so we can use a couple of Cocoa APIs. + * + * @cond + * + * $LicenseInfo:firstyear=2010&license=viewergpl$ + * + * Copyright (c) 2010, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlife.com/developers/opensource/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlife.com/developers/opensource/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + * + * @endcond + */ + + +#include <AppKit/AppKit.h> + +#include "slplugin-objc.h" + + +void setupCocoa() +{ + static bool inited = false; + + if(!inited) + { + createAutoReleasePool(); + + // The following prevents the Cocoa command line parser from trying to open 'unknown' arguements as documents. + // ie. running './secondlife -set Language fr' would cause a pop-up saying can't open document 'fr' + // when init'ing the Cocoa App window. + [[NSUserDefaults standardUserDefaults] setObject:@"NO" forKey:@"NSTreatUnknownArgumentsAsOpen"]; + + // This is a bit of voodoo taken from the Apple sample code "CarbonCocoa_PictureCursor": + // http://developer.apple.com/samplecode/CarbonCocoa_PictureCursor/index.html + + // Needed for Carbon based applications which call into Cocoa + NSApplicationLoad(); + + // Must first call [[[NSWindow alloc] init] release] to get the NSWindow machinery set up so that NSCursor can use a window to cache the cursor image + [[[NSWindow alloc] init] release]; + + deleteAutoReleasePool(); + + inited = true; + } +} + +static NSAutoreleasePool *sPool = NULL; + +void createAutoReleasePool() +{ + if(!sPool) + { + sPool = [[NSAutoreleasePool alloc] init]; + } +} + +void deleteAutoReleasePool() +{ + if(sPool) + { + [sPool release]; + sPool = NULL; + } +} diff --git a/indra/llplugin/slplugin/slplugin.cpp b/indra/llplugin/slplugin/slplugin.cpp index 7d6dde1a58..4c955e875a 100644 --- a/indra/llplugin/slplugin/slplugin.cpp +++ b/indra/llplugin/slplugin/slplugin.cpp @@ -44,6 +44,7 @@ #if LL_DARWIN #include <Carbon/Carbon.h> + #include "slplugin-objc.h" #endif #if LL_DARWIN || LL_LINUX @@ -229,10 +230,19 @@ int main(int argc, char **argv) signal(SIGSYS, &crash_handler); // non-existent system call invoked #endif +#if LL_DARWIN + setupCocoa(); + createAutoReleasePool(); +#endif + LLPluginProcessChild *plugin = new LLPluginProcessChild(); plugin->init(port); +#if LL_DARWIN + deleteAutoReleasePool(); +#endif + LLTimer timer; timer.start(); @@ -260,6 +270,9 @@ int main(int argc, char **argv) #endif while(!plugin->isDone()) { +#if LL_DARWIN + createAutoReleasePool(); +#endif timer.reset(); plugin->idle(); #if LL_DARWIN @@ -377,6 +390,10 @@ int main(int argc, char **argv) // exception handler such as QuickTime. //checkExceptionHandler(); #endif + +#if LL_DARWIN + deleteAutoReleasePool(); +#endif } delete plugin; diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 9ff6a4e1a0..aba6c310f1 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -310,7 +310,8 @@ public: void pushVisible(BOOL visible) { mLastVisible = mVisible; setVisible(visible); } void popVisible() { setVisible(mLastVisible); } - + BOOL getLastVisible() const { return mLastVisible; } + LLHandle<LLView> getHandle() { mHandle.bind(this); return mHandle; } U32 getFollows() const { return mReshapeFlags; } diff --git a/indra/llwindow/llwindowmacosx-objc.mm b/indra/llwindow/llwindowmacosx-objc.mm index 3a822a93a6..01e04dbb07 100644 --- a/indra/llwindow/llwindowmacosx-objc.mm +++ b/indra/llwindow/llwindowmacosx-objc.mm @@ -64,6 +64,8 @@ void setupCocoa() [[[NSWindow alloc] init] release]; [pool release]; + + inited = true; } } diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index d3cc5d6cb7..1eb3732e65 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -3309,6 +3309,17 @@ <key>Value</key> <real>1.0</real> </map> + <key>FlycamBuildModeScale</key> + <map> + <key>Comment</key> + <string>Scale factor to apply to flycam movements when in build mode.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>1.0</real> + </map> <key>FlycamFeathering</key> <map> <key>Comment</key> diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 62766f9229..1a3001c413 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -47,9 +47,11 @@ ATI ASUS EAH26xx .*ATI.*ASUS.*EAH26.* 3 1 ATI ASUS EAH34xx .*ATI.*ASUS.*EAH34.* 1 1 ATI ASUS EAH36xx .*ATI.*ASUS.*EAH36.* 3 1 ATI ASUS EAH38xx .*ATI.*ASUS.*EAH38.* 3 1 +ATI ASUS EAH43xx .*ATI.*ASUS.*EAH43.* 1 1 ATI ASUS EAH45xx .*ATI.*ASUS.*EAH45.* 1 1 ATI ASUS EAH48xx .*ATI.*ASUS.*EAH48.* 3 1 ATI ASUS EAH57xx .*ATI.*ASUS.*EAH57.* 3 1 +ATI ASUS EAH58xx .*ATI.*ASUS.*EAH58.* 3 1 ATI Radeon X1xxx .*ATI.*ASUS.*X1.* 3 1 ATI Radeon X7xx .*ATI.*ASUS.*X7.* 1 1 ATI Radeon X500 .*ATI.*Diamond X5.* 1 1 @@ -70,6 +72,7 @@ ATI M56 .*ATI.*M56.* 1 1 ATI M71 .*ATI.*M71.* 1 1 ATI M72 .*ATI.*M72.* 1 1 ATI M76 .*ATI.*M76.* 3 1 +ATI Mobility Radeon 4100 .*ATI.*Mobility *41.* 0 1 ATI Mobility Radeon 7xxx .*ATI.*Mobility *Radeon 7.* 0 1 ATI Mobility Radeon 8xxx .*ATI.*Mobility *Radeon 8.* 0 1 ATI Mobility Radeon 9800 .*ATI.*Mobility *98.* 0 1 @@ -81,6 +84,8 @@ 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 HD 5400 .*ATI.*Mobility *HD *54.* 1 1 +ATI Mobility Radeon HD 5500 .*ATI.*Mobility *HD *55.* 1 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 @@ -102,13 +107,16 @@ ATI Radeon HD 4500 .*ATI.*Radeon HD *45.* 3 1 ATI Radeon HD 4600 .*ATI.*Radeon HD *46.* 3 1 ATI Radeon HD 4700 .*ATI.*Radeon HD *47.* 3 1 ATI Radeon HD 4800 .*ATI.*Radeon.*HD *48.* 3 1 +ATI Radeon HD 5400 .*ATI.*Radeon.*HD *54.* 3 1 +ATI Radeon HD 5500 .*ATI.*Radeon.*HD *55.* 3 1 ATI Radeon HD 5600 .*ATI.*Radeon.*HD *56.* 3 1 ATI Radeon HD 5700 .*ATI.*Radeon.*HD *57.* 3 1 ATI Radeon HD 5800 .*ATI.*Radeon.*HD *58.* 3 1 ATI Radeon HD 5900 .*ATI.*Radeon.*HD *59.* 3 1 ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0 ATI Radeon 2100 .*ATI.*Radeon 21.* 0 1 -ATI Radeon 3100 .*ATI.*Radeon 31.* 1 1 +ATI Radeon 3000 .*ATI.*Radeon 30.* 0 1 +ATI Radeon 3100 .*ATI.*Radeon 31.* 0 1 ATI Radeon 7xxx .*ATI.*Radeon 7.* 0 1 ATI Radeon 8xxx .*ATI.*Radeon 8.* 0 1 ATI Radeon 9000 .*ATI.*Radeon 90.* 0 1 @@ -166,20 +174,39 @@ Intel Broadwater .*Intel.*Broadwater.* 0 0 Intel Brookdale .*Intel.*Brookdale.* 0 0 Intel Cantiga .*Intel.*Cantiga.* 0 0 Intel Eaglelake .*Intel.*Eaglelake.* 0 1 +Intel Graphics Media HD .*Intel(R) Graphics Media.*HD.* 0 1 +Intel HD Graphics .*Intel(R) HD Graphics.* 0 1 Intel Mobile 4 Series .*Intel.*Mobile.*4 Series.* 0 1 -Intel Media Graphics HD .*Intel.*Media.*Graphics.*HD.* 0 1 +Intel Media Graphics HD .*Intel Media Graphics HD.* 0 1 Intel Montara .*Intel.*Montara.* 0 0 Intel Pineview .*Intel.*Pineview.* 0 1 Intel Springdale .*Intel.*Springdale.* 0 0 Matrox .*Matrox.* 0 0 Mesa .*Mesa.* 0 0 -NVIDIA GT 120 .*NVIDIA.*GeForce.*GT.*12.* 2 1 -NVIDIA GT 130 .*NVIDIA.*GeForce.*GT.*13.* 3 1 -NVIDIA GTS 250 .*NVIDIA.*GeForce.*GTS.*25.* 3 1 -NVIDIA GTX 260 .*NVIDIA.*GeForce.*GTX.*26.* 3 1 -NVIDIA GTX 270 .*NVIDIA.*GeForce.*GTX.*27.* 3 1 -NVIDIA GTX 280 .*NVIDIA.*GeForce.*GTX.*28.* 3 1 -NVIDIA GTX 290 .*NVIDIA.*GeForce.*GTX.*29.* 3 1 +NVIDIA 310M .*NVIDIA GeForce 310M.* 0 1 +NVIDIA 310 .*NVIDIA GeForce 310.* 0 1 +NVIDIA 320M .*NVIDIA GeForce 320M.* 0 1 +NVIDIA G100M .*NVIDIA GeForce G *100M.* 0 1 +NVIDIA G102M .*NVIDIA GeForce G *102M.* 0 1 +NVIDIA G103M .*NVIDIA GeForce G *103M.* 0 1 +NVIDIA G105M .*NVIDIA GeForce G *105M.* 0 1 +NVIDIA G210M .*NVIDIA GeForce G210M.* 0 1 +NVIDIA GT 120 .*NVIDIA GeForce GT 12.* 0 1 +NVIDIA GT 130 .*NVIDIA GeForce GT 13.* 1 1 +NVIDIA GT 220 .*NVIDIA GeForce GT 22.* 0 1 +NVIDIA GT 230 .*NVIDIA GeForce GT 23.* 1 1 +NVIDIA GT 240 .*NVIDIA GeForce GT 24.* 1 1 +NVIDIA GT 320 .*NVIDIA GeForce GT 32.* 0 1 +NVIDIA GT 330M .*NVIDIA GeForce GT 330M.* 1 1 +NVIDIA GTS 240 .*NVIDIA GeForce GTS 24.* 1 1 +NVIDIA GTS 250 .*NVIDIA GeForce GTS 25.* 3 1 +NVIDIA GTS 360M .*NVIDIA GeForce GTS 360M.* 3 1 +NVIDIA GTX 260 .*NVIDIA GeForce GTX 26.* 3 1 +NVIDIA GTX 270 .*NVIDIA GeForce GTX 27.* 3 1 +NVIDIA GTX 280 .*NVIDIA GeForce GTX 28.* 3 1 +NVIDIA GTX 290 .*NVIDIA GeForce GTX 29.* 3 1 +NVIDIA GTX 470 .*NVIDIA GeForce GTX 47.* 3 1 +NVIDIA GTX 480 .*NVIDIA GeForce GTX 48.* 3 1 NVIDIA C51 .*NVIDIA.*C51.* 0 1 NVIDIA G72 .*NVIDIA.*G72.* 1 1 NVIDIA G73 .*NVIDIA.*G73.* 1 1 @@ -215,6 +242,8 @@ NVIDIA GeForce 8600M .*NVIDIA.*GeForce.*8600M.* 1 1 NVIDIA GeForce 8600 .*NVIDIA.*GeForce 86.* 3 1 NVIDIA GeForce 8700 .*NVIDIA.*GeForce 87.* 3 1 NVIDIA GeForce 8800 .*NVIDIA.*GeForce 88.* 3 1 +NVIDIA GeForce 9100 .*NVIDIA.*GeForce 9100.* 0 1 +NVIDIA GeForce 9200 .*NVIDIA.*GeForce 9200.* 0 1 NVIDIA GeForce 9300M .*NVIDIA.*GeForce 9300M.* 1 1 NVIDIA GeForce 9400M .*NVIDIA.*GeForce 9400M.* 1 1 NVIDIA GeForce 9500M .*NVIDIA.*GeForce 9500M.* 2 1 diff --git a/indra/newview/llagentcamera.h b/indra/newview/llagentcamera.h index 3b8f88733a..fc78fef6d0 100644 --- a/indra/newview/llagentcamera.h +++ b/indra/newview/llagentcamera.h @@ -82,6 +82,7 @@ public: void init(); void cleanup(); void setAvatarObject(LLVOAvatarSelf* avatar); + bool isInitialized() { return mInitialized; } private: bool mInitialized; diff --git a/indra/newview/llfloaterpay.cpp b/indra/newview/llfloaterpay.cpp index 51364594e4..ba7526ccd5 100644 --- a/indra/newview/llfloaterpay.cpp +++ b/indra/newview/llfloaterpay.cpp @@ -145,6 +145,9 @@ LLFloaterPay::~LLFloaterPay() { std::for_each(mCallbackData.begin(), mCallbackData.end(), DeletePointer()); // Name callbacks will be automatically disconnected since LLFloater is trackable + + // In case this floater is currently waiting for a reply. + gMessageSystem->setHandlerFuncFast(_PREHASH_PayPriceReply, 0, 0); } BOOL LLFloaterPay::postBuild() diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index f241d18a21..87c5a830e9 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -1868,7 +1868,8 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask ) LLView::child_list_t::const_iterator menu_itor; for (menu_itor = list->begin(); menu_itor != list->end(); ++menu_itor) { - (*menu_itor)->setVisible(TRUE); + (*menu_itor)->setVisible(FALSE); + (*menu_itor)->pushVisible(TRUE); (*menu_itor)->setEnabled(TRUE); } diff --git a/indra/newview/llinspecttoast.cpp b/indra/newview/llinspecttoast.cpp index 3ca8fa2f56..9a10a7ede8 100644 --- a/indra/newview/llinspecttoast.cpp +++ b/indra/newview/llinspecttoast.cpp @@ -55,7 +55,7 @@ public: private: void onToastDestroy(LLToast * toast); -private: + boost::signals2::scoped_connection mConnection; LLPanel* mPanel; LLScreenChannel* mScreenChannel; }; @@ -88,7 +88,7 @@ void LLInspectToast::onOpen(const LLSD& notification_id) llwarns << "Could not get requested toast from screen channel." << llendl; return; } - toast->setOnToastDestroyedCallback(boost::bind(&LLInspectToast::onToastDestroy, this, _1)); + mConnection = toast->setOnToastDestroyedCallback(boost::bind(&LLInspectToast::onToastDestroy, this, _1)); LLPanel * panel = toast->getPanel(); panel->setVisible(TRUE); diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index bc28140b75..2cc61a69c1 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -452,13 +452,15 @@ void hide_context_entries(LLMenuGL& menu, // if the first element is a separator, it will not be shown. BOOL is_previous_entry_separator = TRUE; - LLView::child_list_t::const_iterator itor; - for (itor = list->begin(); itor != list->end(); ++itor) + for (LLView::child_list_t::const_iterator itor = list->begin(); + itor != list->end(); + ++itor) { - std::string name = (*itor)->getName(); + LLView *menu_item = (*itor); + std::string name = menu_item->getName(); // descend into split menus: - LLMenuItemBranchGL* branchp = dynamic_cast<LLMenuItemBranchGL*>(*itor); + LLMenuItemBranchGL* branchp = dynamic_cast<LLMenuItemBranchGL*>(menu_item); if ((name == "More") && branchp) { hide_context_entries(*branchp->getBranch(), entries_to_show, disabled_entries); @@ -479,7 +481,7 @@ void hide_context_entries(LLMenuGL& menu, // between two separators). if (found) { - const BOOL is_entry_separator = (dynamic_cast<LLMenuItemSeparatorGL *>(*itor) != NULL); + const BOOL is_entry_separator = (dynamic_cast<LLMenuItemSeparatorGL *>(menu_item) != NULL); if (is_entry_separator && is_previous_entry_separator) found = false; is_previous_entry_separator = is_entry_separator; @@ -487,16 +489,23 @@ void hide_context_entries(LLMenuGL& menu, if (!found) { - (*itor)->setVisible(FALSE); + if (!menu_item->getLastVisible()) + { + menu_item->setVisible(FALSE); + } + menu_item->setEnabled(FALSE); } else { - (*itor)->setVisible(TRUE); + menu_item->setVisible(TRUE); + // A bit of a hack so we can remember that some UI element explicitly set this to be visible + // so that some other UI element from multi-select doesn't later set this invisible. + menu_item->pushVisible(TRUE); for (itor2 = disabled_entries.begin(); itor2 != disabled_entries.end(); ++itor2) { if (*itor2 == name) { - (*itor)->setEnabled(FALSE); + menu_item->setEnabled(FALSE); } } } @@ -3730,6 +3739,9 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags) disabled_items.push_back(std::string("Share")); } + addOpenRightClickMenuOption(items); + items.push_back(std::string("Properties")); + getClipboardEntries(true, items, disabled_items, flags); items.push_back(std::string("Gesture Separator")); @@ -4379,7 +4391,6 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { can_open = FALSE; } - items.push_back(std::string("Share")); if (!canShare()) { @@ -4390,6 +4401,11 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { addOpenRightClickMenuOption(items); } + else + { + disabled_items.push_back(std::string("Open")); + disabled_items.push_back(std::string("Open Original")); + } items.push_back(std::string("Properties")); diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 37088064c6..7463658003 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -245,6 +245,47 @@ BOOL get_is_item_worn(const LLUUID& id) return FALSE; } +BOOL get_can_item_be_worn(const LLUUID& id) +{ + const LLViewerInventoryItem* item = gInventory.getItem(id); + if (!item) + return FALSE; + + switch(item->getType()) + { + case LLAssetType::AT_OBJECT: + { + if (isAgentAvatarValid() && gAgentAvatarp->isWearingAttachment(item->getLinkedUUID())) + { + // Already being worn + return FALSE; + } + else + { + // Not being worn yet. + return TRUE; + } + break; + } + case LLAssetType::AT_BODYPART: + case LLAssetType::AT_CLOTHING: + if(gAgentWearables.isWearingItem(item->getLinkedUUID())) + { + // Already being worn + return FALSE; + } + else + { + // Not being worn yet. + return TRUE; + } + break; + default: + break; + } + return FALSE; +} + BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id) { if (!model) @@ -282,7 +323,9 @@ BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id) BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id) { - // This function doesn't check the folder's children. + // NOTE: This function doesn't check the folder's children. + // See LLFolderBridge::isItemRemovable for a function that does + // consider the children. if (!model) { @@ -296,17 +339,29 @@ BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id) if (!isAgentAvatarValid()) return FALSE; - LLInventoryCategory* category = model->getCategory(id); + const LLInventoryCategory* category = model->getCategory(id); if (!category) { return FALSE; } - if (LLFolderType::lookupIsProtectedType(category->getPreferredType())) + const LLFolderType::EType folder_type = category->getPreferredType(); + + if (LLFolderType::lookupIsProtectedType(folder_type)) { return FALSE; } + // Can't delete the outfit that is currently being worn. + if (folder_type == LLFolderType::FT_OUTFIT) + { + const LLViewerInventoryItem *base_outfit_link = LLAppearanceMgr::instance().getBaseOutfitLink(); + if (base_outfit_link && (category == base_outfit_link->getLinkedCategory())) + { + return FALSE; + } + } + return TRUE; } diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h index 6619a50d28..1c3f82c531 100644 --- a/indra/newview/llinventoryfunctions.h +++ b/indra/newview/llinventoryfunctions.h @@ -46,6 +46,9 @@ // Is this item or its baseitem is worn, attached, etc... BOOL get_is_item_worn(const LLUUID& id); +// Could this item be worn (correct type + not already being worn) +BOOL get_can_item_be_worn(const LLUUID& id); + BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id); BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id); diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index 71604291e1..06f490e8e3 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -168,7 +168,9 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia char hashed_mac_string[MD5HEX_STR_SIZE]; /* Flawfinder: ignore */ LLMD5 hashed_mac; unsigned char MACAddress[MAC_ADDRESS_BYTES]; - LLUUID::getNodeID(MACAddress); + if(LLUUID::getNodeID(MACAddress) == 0) { + llerrs << "Failed to get node id; cannot uniquely identify this machine." << llendl; + } hashed_mac.update( MACAddress, MAC_ADDRESS_BYTES ); hashed_mac.finalize(); hashed_mac.hex_digest(hashed_mac_string); diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp index 0ff3bb30dc..323a07a9ab 100644 --- a/indra/newview/llpaneleditwearable.cpp +++ b/indra/newview/llpaneleditwearable.cpp @@ -948,7 +948,6 @@ void LLPanelEditWearable::updatePanelPickerControls(LLWearableType::EType type) return; bool is_modifiable = false; - bool is_complete = false; bool is_copyable = false; if(mWearableItem) @@ -956,17 +955,16 @@ void LLPanelEditWearable::updatePanelPickerControls(LLWearableType::EType type) const LLPermissions& perm = mWearableItem->getPermissions(); is_modifiable = perm.allowModifyBy(gAgent.getID(), gAgent.getGroupID()); is_copyable = perm.allowCopyBy(gAgent.getID(), gAgent.getGroupID()); - is_complete = mWearableItem->isFinished(); } - if (is_modifiable && is_complete) + if (is_modifiable) { // Update picker controls for_each_picker_ctrl_entry <LLColorSwatchCtrl> (panel, type, boost::bind(update_color_swatch_ctrl, this, _1, _2)); for_each_picker_ctrl_entry <LLTextureCtrl> (panel, type, boost::bind(update_texture_ctrl, this, _1, _2)); } - if (!is_modifiable || !is_complete || !is_copyable) + if (!is_modifiable || !is_copyable) { // Disable controls for_each_picker_ctrl_entry <LLColorSwatchCtrl> (panel, type, boost::bind(set_enabled_color_swatch_ctrl, false, _1, _2)); @@ -1007,6 +1005,7 @@ void LLPanelEditWearable::revertChanges() mWearablePtr->revertValues(); mNameEditor->setText(mWearablePtr->getName()); updatePanelPickerControls(mWearablePtr->getType()); + gAgentAvatarp->wearableUpdated(mWearablePtr->getType(), FALSE); } void LLPanelEditWearable::showWearable(LLWearable* wearable, BOOL show) diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp index 1544717873..ffd879dfd7 100644 --- a/indra/newview/llpaneloutfitedit.cpp +++ b/indra/newview/llpaneloutfitedit.cpp @@ -661,10 +661,13 @@ void LLPanelOutfitEdit::onInventorySelectionChange() getSelectedItemsUUID(selected_items); if (selected_items.empty()) { + mPlusBtn->setEnabled(false); return; } - uuid_vec_t::iterator worn_item = std::find_if(selected_items.begin(), selected_items.end(), boost::bind(&get_is_item_worn, _1)); - bool can_add = ( worn_item == selected_items.end() ); + + // If any of the selected items are not wearable (due to already being worn OR being of the wrong type), disable the add button. + uuid_vec_t::iterator unwearable_item = std::find_if(selected_items.begin(), selected_items.end(), !boost::bind(& get_can_item_be_worn, _1)); + bool can_add = ( unwearable_item == selected_items.end() ); mPlusBtn->setEnabled(can_add); diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 076e6485a8..462ba2dfa5 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -245,10 +245,10 @@ LLPanelOutfitsInventory* LLPanelOutfitsInventory::findInstance() void LLPanelOutfitsInventory::initListCommandsHandlers() { mListCommands = getChild<LLPanel>("bottom_panel"); - - mListCommands->childSetAction("options_gear_btn", boost::bind(&LLPanelOutfitsInventory::showGearMenu, this)); - mListCommands->childSetAction("trash_btn", boost::bind(&LLPanelOutfitsInventory::onTrashButtonClick, this)); mListCommands->childSetAction("wear_btn", boost::bind(&LLPanelOutfitsInventory::onWearButtonClick, this)); + mMyOutfitsPanel->childSetAction("options_gear_btn", boost::bind(&LLPanelOutfitsInventory::showGearMenu, this)); + mMyOutfitsPanel->childSetAction("trash_btn", boost::bind(&LLPanelOutfitsInventory::onTrashButtonClick, this)); + mCurrentOutfitPanel->childSetAction("options_gear_btn", boost::bind(&LLPanelOutfitsInventory::showGearMenu, this)); } void LLPanelOutfitsInventory::updateListCommands() @@ -258,7 +258,7 @@ void LLPanelOutfitsInventory::updateListCommands() bool wear_visible = !isCOFPanelActive(); bool make_outfit_enabled = isActionEnabled("save_outfit"); - mListCommands->childSetEnabled("trash_btn", trash_enabled); + mMyOutfitsPanel->childSetEnabled("trash_btn", trash_enabled); mListCommands->childSetEnabled("wear_btn", wear_enabled); mListCommands->childSetVisible("wear_btn", wear_visible); mSaveComboBtn->setMenuItemEnabled("save_outfit", make_outfit_enabled); diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index ea5796d766..951323551c 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -405,6 +405,8 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name) //static void LLSidepanelAppearance::editWearable(LLWearable *wearable, LLView *data) { + LLSideTray::getInstance()->showPanel("sidepanel_appearance"); + LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(data); if (panel) { diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp index 240a539f2e..79d8fc7df9 100644 --- a/indra/newview/llviewerjoystick.cpp +++ b/indra/newview/llviewerjoystick.cpp @@ -57,9 +57,6 @@ #define RY_I 5 #define RZ_I 3 -// flycam translations in build mode should be reduced -const F32 BUILDMODE_FLYCAM_T_SCALE = 3.f; - // minimum time after setting away state before coming back const F32 MIN_AFK_TIME = 2.f; @@ -924,14 +921,15 @@ void LLViewerJoystick::moveFlycam(bool reset) cur_delta[i] = llmin(cur_delta[i]+dead_zone[i], 0.f); } - // we need smaller camera movements in build mode + // We may want to scale camera movements up or down in build mode. // NOTE: this needs to remain after the deadzone calculation, otherwise // we have issues with flycam "jumping" when the build dialog is opened/closed -Nyx if (in_build_mode) { if (i == X_I || i == Y_I || i == Z_I) { - cur_delta[i] /= BUILDMODE_FLYCAM_T_SCALE; + static LLCachedControl<F32> build_mode_scale(gSavedSettings,"FlycamBuildModeScale"); + cur_delta[i] *= build_mode_scale; } } diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index d7190f26a3..34e30b3ccd 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -763,7 +763,7 @@ void LLViewerMedia::updateMedia(void *dummy_arg) } // Sort the static instance list using our interest criteria - std::stable_sort(sViewerMediaImplList.begin(), sViewerMediaImplList.end(), priorityComparitor); + sViewerMediaImplList.sort(priorityComparitor); // Go through the list again and adjust according to priority. iter = sViewerMediaImplList.begin(); diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 8626f4469e..ef9c07c6c7 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -84,7 +84,7 @@ public: static const char* SHOW_MEDIA_WITHIN_PARCEL_SETTING; static const char* SHOW_MEDIA_OUTSIDE_PARCEL_SETTING; - typedef std::vector<LLViewerMediaImpl*> impl_list; + typedef std::list<LLViewerMediaImpl*> impl_list; typedef std::map<LLUUID, LLViewerMediaImpl*> impl_id_map; diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index ee89680fea..9027caa4ce 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -4928,6 +4928,11 @@ void LLViewerObject::setIncludeInSearch(bool include_in_search) void LLViewerObject::setRegion(LLViewerRegion *regionp) { + if (!regionp) + { + llwarns << "viewer object set region to NULL" << llendl; + } + mLatestRecvPacketID = 0; mRegionp = regionp; diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 752aeaaab0..fc94fbafac 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -894,10 +894,10 @@ void LLViewerObjectList::removeDrawable(LLDrawable* drawablep) BOOL LLViewerObjectList::killObject(LLViewerObject *objectp) { - // Don't ever kill gAgentAvatarp, just mark it as null region instead. + // Don't ever kill gAgentAvatarp, just force it to the agent's region if (objectp == gAgentAvatarp) { - objectp->setRegion(NULL); + objectp->setRegion(gAgent.getRegion()); return FALSE; } diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index c9c0b72528..6346ac320b 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -2329,7 +2329,9 @@ void LLViewerWindow::handleScrollWheel(S32 clicks) // Zoom the camera in and out behavior - if(top_ctrl == 0 && getWorldViewRectScaled().pointInRect(mCurrentMousePoint.mX, mCurrentMousePoint.mY) ) + if(top_ctrl == 0 + && getWorldViewRectScaled().pointInRect(mCurrentMousePoint.mX, mCurrentMousePoint.mY) + && gAgentCamera.isInitialized()) gAgentCamera.handleScrollWheel(clicks); return; diff --git a/indra/newview/skins/default/xui/da/floater_about_land.xml b/indra/newview/skins/default/xui/da/floater_about_land.xml index 053fe4d9d9..a096a87928 100644 --- a/indra/newview/skins/default/xui/da/floater_about_land.xml +++ b/indra/newview/skins/default/xui/da/floater_about_land.xml @@ -219,7 +219,7 @@ Gå til 'Verden' > 'Om land' eller vælg en anden parcel Region objekt bonus faktor: [BONUS] </text> <text name="Simulator primitive usage:"> - Prim forbrug: + Prim benyttelse: </text> <text name="objects_available"> [COUNT] ud af [MAX] ([AVAILABLE] ledige) diff --git a/indra/newview/skins/default/xui/da/floater_map.xml b/indra/newview/skins/default/xui/da/floater_map.xml index cd6c03058b..c331908c3c 100644 --- a/indra/newview/skins/default/xui/da/floater_map.xml +++ b/indra/newview/skins/default/xui/da/floater_map.xml @@ -24,6 +24,9 @@ <floater.string name="mini_map_northwest"> NV </floater.string> + <floater.string name="mini_map_caption"> + MINIKORT + </floater.string> <text label="N" name="floater_map_north" text="N"> N </text> diff --git a/indra/newview/skins/default/xui/da/floater_preview_gesture.xml b/indra/newview/skins/default/xui/da/floater_preview_gesture.xml index f49fd8c99a..a26f2f95c9 100644 --- a/indra/newview/skins/default/xui/da/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/da/floater_preview_gesture.xml @@ -24,9 +24,6 @@ <floater.string name="Title"> Bevægelse: [NAME] </floater.string> - <text name="name_text"> - Navn: - </text> <text name="desc_label"> Beskrivelse: </text> @@ -53,12 +50,15 @@ <button label="Op" name="up_btn"/> <button label="Ned" name="down_btn"/> <button label="Fjern" name="delete_btn"/> + <text name="options_text"> + (valg) + </text> <radio_group name="animation_trigger_type"> <radio_item label="Start" name="start"/> <radio_item label="Stop" name="stop"/> </radio_group> <check_box label="Indtil animation er færdig" name="wait_anim_check"/> - <check_box label="tid i sekunder" name="wait_time_check"/> + <check_box label="tid i sekunder:" name="wait_time_check"/> <text name="help_label"> Alle trin vil ske samtidigt, medmindre du tilføjer vente trin. </text> diff --git a/indra/newview/skins/default/xui/da/floater_snapshot.xml b/indra/newview/skins/default/xui/da/floater_snapshot.xml index a62bd60757..926c2429ac 100644 --- a/indra/newview/skins/default/xui/da/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/da/floater_snapshot.xml @@ -1,23 +1,75 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Snapshot" title="Foto"> +<floater name="Snapshot" title="SE FOTO"> <floater.string name="unknown"> ukendt </floater.string> + <radio_group label="foto type" name="snapshot_type_radio"> + <radio_item label="Email" name="postcard"/> + <radio_item label="Min beholdning (L$[AMOUNT])" name="texture"/> + <radio_item label="Gem til min computer" name="local"/> + </radio_group> + <text name="file_size_label"> + [SIZE] KB + </text> <button label="Tag nyt foto" name="new_snapshot_btn"/> - <line_editor label="Beskrivelse" name="description"/> - <panel name="panel_snapshot_main"> - <button label="Del foto" name="share"/> - <button label="Gem foto" name="save"/> - <button label="Sæt til profilbillede" name="set_profile_pic"/> - </panel> - <panel name="panel_snapshot_share"> - <button label="Del på internettet" name="share_to_web"/> - <button label="E-mail foto" name="share_to_email"/> - <button label="Tilbage" name="cancel_share"/> - </panel> - <panel name="panel_snapshot_save"> - <button label="Gem til min beholdning" name="save_to_inventory"/> - <button label="Gem til min computer" name="save_to_computer"/> - <button label="Tilbage" name="cancel_save"/> - </panel> + <button label="Send" name="send_btn"/> + <button label="Gem (L$[AMOUNT])" name="upload_btn"/> + <flyout_button label="Gem" name="save_btn" tool_tip="Gem billede til en fil"> + <flyout_button.item label="Gem" name="save_item"/> + <flyout_button.item label="Gem som..." name="saveas_item"/> + </flyout_button> + <button label="Mere" name="more_btn" tool_tip="Avancerede valg"/> + <button label="Mindre" name="less_btn" tool_tip="Avanceret opsætning"/> + <button label="Annullér" name="discard_btn"/> + <text name="type_label2"> + Størrelse + </text> + <text name="format_label"> + Format + </text> + <combo_box label="Opløsning" name="postcard_size_combo"> + <combo_box.item label="Nuværende vindue" name="CurrentWindow"/> + <combo_box.item label="640x480" name="640x480"/> + <combo_box.item label="800x600" name="800x600"/> + <combo_box.item label="1024x768" name="1024x768"/> + <combo_box.item label="Brugerdefineret" name="Custom"/> + </combo_box> + <combo_box label="Opløsning" name="texture_size_combo"> + <combo_box.item label="Nuværende vindue" name="CurrentWindow"/> + <combo_box.item label="Lille (128x128)" name="Small(128x128)"/> + <combo_box.item label="Medium (256x256)" name="Medium(256x256)"/> + <combo_box.item label="Stor (512x512)" name="Large(512x512)"/> + <combo_box.item label="Brugeropsat" name="Custom"/> + </combo_box> + <combo_box label="Opløsning" name="local_size_combo"> + <combo_box.item label="Nuværende vindue" name="CurrentWindow"/> + <combo_box.item label="320x240" name="320x240"/> + <combo_box.item label="640x480" name="640x480"/> + <combo_box.item label="800x600" name="800x600"/> + <combo_box.item label="1024x768" name="1024x768"/> + <combo_box.item label="1280x1024" name="1280x1024"/> + <combo_box.item label="1600x1200" name="1600x1200"/> + <combo_box.item label="Brugeropsat" name="Custom"/> + </combo_box> + <combo_box label="Format" name="local_format_combo"> + <combo_box.item label="PNG" name="PNG"/> + <combo_box.item label="JPEG" name="JPEG"/> + <combo_box.item label="BMP" name="BMP"/> + </combo_box> + <spinner label="Bredde" name="snapshot_width"/> + <spinner label="Højde" name="snapshot_height"/> + <check_box label="Fasthold proportioner" name="keep_aspect_check"/> + <slider label="Billedkvalitet" name="image_quality_slider"/> + <text name="layer_type_label"> + Indfang: + </text> + <combo_box label="Billedlag" name="layer_types"> + <combo_box.item label="Farver" name="Colors"/> + <combo_box.item label="Dybde" name="Depth"/> + </combo_box> + <check_box label="Snitflade" name="ui_check"/> + <check_box label="HUDs" name="hud_check"/> + <check_box label="Behold åben efter gem" name="keep_open_check"/> + <check_box label="Frys billede (fuld skærm)" name="freeze_frame_check"/> + <check_box label="Auto-optegn" name="auto_snapshot_check"/> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_voice_effect.xml b/indra/newview/skins/default/xui/da/floater_voice_effect.xml index 543224c6f6..86ad251103 100644 --- a/indra/newview/skins/default/xui/da/floater_voice_effect.xml +++ b/indra/newview/skins/default/xui/da/floater_voice_effect.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater label="Steder" name="voice_effects" title="SE STEMME "MORPH""> +<floater label="Steder" name="voice_effects" title="STEMME MORPH"> <string name="no_voice_effect"> (Ingen stemme "morph") </string> @@ -12,18 +12,19 @@ <string name="new_voice_effect"> (Ny!) </string> + <text name="preview_text"> + For at se + </text> <text name="status_text"> - For at se stemme "morph" effekter, skal du klikke på "optag" kanppen for at optage en stump stemme, derefter klik på en stemme "morph" på listen for at høre hvordan det vil lyde. - -For at vende tilbage til lokal stemme-chat luk dette vindue. + Optag en prøve, klik derefter på en stemme for at høre hvordan det vil lyde. </text> - <button label="Optage prøve" name="record_btn" tool_tip="Optag en stemmeprøve."/> + <button label="Optag" name="record_btn" tool_tip="Optag en stemmeprøve."/> <button label="Stop" name="record_stop_btn"/> <text name="voice_morphing_link"> - [[URL] Hent stemme "morph"] + [[URL] Abonnér nu] </text> <scroll_list name="voice_effect_list" tool_tip="Optag en prøve med din stemme og klik på en effekt for at teste."> - <scroll_list.columns label="Stemme "morph"" name="name"/> + <scroll_list.columns label="Stemme navn" name="name"/> <scroll_list.columns label="Udløber" name="expires"/> </scroll_list> </floater> diff --git a/indra/newview/skins/default/xui/da/menu_attachment_self.xml b/indra/newview/skins/default/xui/da/menu_attachment_self.xml index bf52e5d57f..e70b7ce33d 100644 --- a/indra/newview/skins/default/xui/da/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/da/menu_attachment_self.xml @@ -3,11 +3,13 @@ <menu_item_call label="Berør" name="Attachment Object Touch"/> <menu_item_call label="Redigér" name="Edit..."/> <menu_item_call label="Tag af" name="Detach"/> - <menu_item_call label="Smid" name="Drop"/> <menu_item_call label="Stå op" name="Stand Up"/> <menu_item_call label="Skift sæt" name="Change Outfit"/> + <menu_item_call label="Redigér mit sæt" name="Edit Outfit"/> + <menu_item_call label="Redigér min figur" name="Edit My Shape"/> <menu_item_call label="Venner" name="Friends..."/> <menu_item_call label="Grupper" name="Groups..."/> <menu_item_call label="Profil" name="Profile..."/> <menu_item_call label="Debug teksturer" name="Debug..."/> + <menu_item_call label="Smid" name="Drop"/> </context_menu> diff --git a/indra/newview/skins/default/xui/da/menu_outfit_tab.xml b/indra/newview/skins/default/xui/da/menu_outfit_tab.xml index 35bb1ae685..d6a6f2724f 100644 --- a/indra/newview/skins/default/xui/da/menu_outfit_tab.xml +++ b/indra/newview/skins/default/xui/da/menu_outfit_tab.xml @@ -4,6 +4,6 @@ <menu_item_call label="Tag på - Tilføj til nuværende sæt" name="wear_add"/> <menu_item_call label="Tag af - Fjern fra nuværende sæt" name="take_off"/> <menu_item_call label="Redigér sæt" name="edit"/> - <menu_item_call label="Omdøb" name="rename"/> + <menu_item_call label="Omdøb sæt" name="rename"/> <menu_item_call label="Slet sæt" name="delete"/> </context_menu> diff --git a/indra/newview/skins/default/xui/da/menu_topinfobar.xml b/indra/newview/skins/default/xui/da/menu_topinfobar.xml new file mode 100644 index 0000000000..08d1c25d6f --- /dev/null +++ b/indra/newview/skins/default/xui/da/menu_topinfobar.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<menu name="menu_topinfobar"> + <menu_item_check label="Vis koordinater" name="Show Coordinates"/> + <menu_item_check label="Vis egenskaber for parcel" name="Show Parcel Properties"/> + <menu_item_call label="Landemærke" name="Landmark"/> + <menu_item_call label="Kopi" name="Copy"/> +</menu> diff --git a/indra/newview/skins/default/xui/da/menu_viewer.xml b/indra/newview/skins/default/xui/da/menu_viewer.xml index 6449a00f2f..0d36a08652 100644 --- a/indra/newview/skins/default/xui/da/menu_viewer.xml +++ b/indra/newview/skins/default/xui/da/menu_viewer.xml @@ -175,6 +175,7 @@ <menu_item_check label="Søg" name="Search"/> <menu_item_call label="Frigør taster" name="Release Keys"/> <menu_item_call label="Sæt UI størrelse til standard" name="Set UI Size to Default"/> + <menu_item_check label="Vis avanceret menu" name="Show Advanced Menu - legacy shortcut"/> <menu_item_check label="Løb altid" name="Always Run"/> <menu_item_check label="Flyv" name="Fly"/> <menu_item_call label="Luk vindue" name="Close Window"/> diff --git a/indra/newview/skins/default/xui/da/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/da/menu_wearable_list_item.xml index 6ec5e50e5b..6a84c518ee 100644 --- a/indra/newview/skins/default/xui/da/menu_wearable_list_item.xml +++ b/indra/newview/skins/default/xui/da/menu_wearable_list_item.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <context_menu name="Outfit Wearable Context Menu"> - <menu_item_call label="Tag på" name="wear"/> + <menu_item_call label="Erstat" name="wear"/> <menu_item_call label="Tilføj" name="wear_add"/> <menu_item_call label="Tag af" name="take_off_or_detach"/> <menu_item_call label="Tag af" name="detach"/> diff --git a/indra/newview/skins/default/xui/da/menu_wearing_gear.xml b/indra/newview/skins/default/xui/da/menu_wearing_gear.xml new file mode 100644 index 0000000000..39f99ad6aa --- /dev/null +++ b/indra/newview/skins/default/xui/da/menu_wearing_gear.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<menu name="Gear Wearing"> + <menu_item_call label="Redigér sæt" name="edit"/> +</menu> diff --git a/indra/newview/skins/default/xui/da/menu_wearing_tab.xml b/indra/newview/skins/default/xui/da/menu_wearing_tab.xml new file mode 100644 index 0000000000..878c8bb04d --- /dev/null +++ b/indra/newview/skins/default/xui/da/menu_wearing_tab.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Wearing"> + <menu_item_call label="Redigér sæt" name="edit"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml index 76cf73e1e6..5ae329033d 100644 --- a/indra/newview/skins/default/xui/da/notifications.xml +++ b/indra/newview/skins/default/xui/da/notifications.xml @@ -288,8 +288,7 @@ Gå til [_URL] for information om køb af L$? Kunne ikke 'forstå' filen: [FILE] </notification> <notification name="CorruptedProtectedDataStore"> - Vi kan ikke læse dine beskyttede data så de nulstilles. - Dette kan ske hvis du ændrer din netværksopsætning. + Vi kan ikke udfylde dit brugernavn og password. Dette kan ske hvis du ændrer netværksopsætning <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="DoNotSupportBulkAnimationUpload"> diff --git a/indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml index de764d8025..d2ade170d1 100644 --- a/indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml +++ b/indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml @@ -1,4 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="wearable_item"> <text name="item_name" value="..."/> + <panel name="btn_lock" tool_tip="Du har ikke rettigheder til at redigere"/> + <panel name="btn_edit_panel"> + <button name="btn_edit" tool_tip="Rediger denne figur"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml index de764d8025..88b0636e9e 100644 --- a/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml +++ b/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml @@ -1,4 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="wearable_item"> + <button name="btn_delete" tool_tip="Fjern fra sæt"/> <text name="item_name" value="..."/> + <panel name="btn_lock" tool_tip="Du har ikke rettigheder til at redigere"/> + <panel name="btn_edit_panel"> + <button name="btn_edit" tool_tip="Redigere denne ting der kan tages på"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml index 91d90a5660..700ad4fa14 100644 --- a/indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml +++ b/indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="deletable_wearable_item"> + <button name="btn_delete" tool_tip="Fjern fra sæt"/> <text name="item_name" value="..."/> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml index 6af84de0c7..dd8d86cfbf 100644 --- a/indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml +++ b/indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml @@ -1,4 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="dummy_clothing_item"> <text name="item_name" value="..."/> + <panel name="btn_add_panel"> + <button name="btn_add" tool_tip="Tilføj flere genstande af denne type"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_edit_wearable.xml b/indra/newview/skins/default/xui/da/panel_edit_wearable.xml index f927f918a1..604c166ef0 100644 --- a/indra/newview/skins/default/xui/da/panel_edit_wearable.xml +++ b/indra/newview/skins/default/xui/da/panel_edit_wearable.xml @@ -90,6 +90,7 @@ <string name="tattoo_desc_text"> Tatovering: </string> + <labeled_back_button label="Gem" name="back_btn" tool_tip="Tilbage til redigering"/> <text name="edit_wearable_title" value="Redigerer kropsbygning"/> <panel label="Trøje" name="wearable_type_panel"> <text name="description_text" value="Kropsbygning:"/> @@ -102,6 +103,6 @@ </panel> <panel name="button_panel"> <button label="Gem som" name="save_as_button"/> - <button label="Vend tilbage" name="revert_button"/> + <button label="Annullér ændringer" name="revert_button"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_group_general.xml b/indra/newview/skins/default/xui/da/panel_group_general.xml index 3079a23d20..eccddb55c8 100644 --- a/indra/newview/skins/default/xui/da/panel_group_general.xml +++ b/indra/newview/skins/default/xui/da/panel_group_general.xml @@ -46,7 +46,7 @@ <spinner label="L$" left_delta="130" name="spin_enrollment_fee" tool_tip="Nye medlemmer skal betale dette gebyr for at tilmelde sig gruppen, når "Tilmeldingsgebyr" er valgt." width="60"/> <combo_box name="group_mature_check" tool_tip="Angiver om din gruppes information anses som 'mature'." width="150"> <combo_item name="select_mature"> - - Vælg Mature - + - Vælg indholdsrating - </combo_item> <combo_box.item label="Mature indhold" name="mature"/> <combo_box.item label="PG indhold" name="pg"/> diff --git a/indra/newview/skins/default/xui/da/panel_outfit_edit.xml b/indra/newview/skins/default/xui/da/panel_outfit_edit.xml index a02c9ba399..3890f07324 100644 --- a/indra/newview/skins/default/xui/da/panel_outfit_edit.xml +++ b/indra/newview/skins/default/xui/da/panel_outfit_edit.xml @@ -13,7 +13,9 @@ <string name="Filter.All" value="Alle"/> <string name="Filter.Clothes/Body" value="Tøj/Krop"/> <string name="Filter.Objects" value="Objekter"/> - <string name="Filter.Custom" value="Tilpasset filter"/> + <string name="Filter.Clothing" value="Tøj"/> + <string name="Filter.Bodyparts" value="Kropsdele"/> + <string name="replace_body_part" value="Klik for at erstatte din nuværende figur"/> <text name="title" value="Redigér sæt"/> <panel label="bottom_panel" name="header_panel"> <panel label="bottom_panel" name="outfit_name_and_status"> @@ -25,7 +27,7 @@ <layout_panel label="IM kontrolpanel" name="outfit_wearables_panel"> <layout_stack name="filter_panels"> <layout_panel name="add_button_and_combobox"> - <button label="Tilføj mere..." name="show_add_wearables_btn"/> + <button label="Tilføj mere..." name="show_add_wearables_btn" tool_tip="Åben/Luk"/> </layout_panel> <layout_panel name="filter_panel"> <filter_editor label="Filtrér tøj i beholdning" name="look_item_filter"/> @@ -36,6 +38,6 @@ </layout_stack> <panel name="save_revert_button_bar"> <button label="Gem" name="save_btn"/> - <button label="Gendan" name="revert_btn"/> + <button label="Annullér ændringer" name="revert_btn" tool_tip="Vend tilbage til sidst gemte version"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml index 4bc9ff99a9..da40bd3c27 100644 --- a/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml @@ -6,7 +6,7 @@ </tab_container> <panel name="bottom_panel"> <button name="options_gear_btn" tool_tip="Vis flere muligheder"/> - <dnd_button name="trash_btn" tool_tip="Fjern valgte genstand"/> + <dnd_button name="trash_btn" tool_tip="Slet valgte sæt"/> <button label="Gem som" name="save_btn"/> <button label="Tag på" name="wear_btn" tool_tip="Tag valgte sæt på"/> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml index 586896041d..62214089f5 100644 --- a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml @@ -50,10 +50,7 @@ m </text> <slider label="Maks. antal partikler:" name="MaxParticleCount"/> - <slider label="Maks. avatar optegningsafstand:" name="MaxAvatarDrawDistance"/> - <text name="DrawDistanceMeterText3"> - m - </text> + <slider label="Maks. antal mini-avatarer:" name="MaxNumberAvatarDrawn"/> <slider label="Efterbehandlingskvalitet:" name="RenderPostProcess"/> <text name="MeshDetailText"> Netmaske detaljer: diff --git a/indra/newview/skins/default/xui/da/panel_voice_effect.xml b/indra/newview/skins/default/xui/da/panel_voice_effect.xml index 8800d2e12d..50f561ec7f 100644 --- a/indra/newview/skins/default/xui/da/panel_voice_effect.xml +++ b/indra/newview/skins/default/xui/da/panel_voice_effect.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_voice_effect"> <string name="no_voice_effect"> - Ingen stemme "morph" + Voice Morphing Off </string> <string name="preview_voice_effects"> Se stemme "morph" ▶ @@ -9,7 +9,7 @@ <string name="get_voice_effects"> Hente stemme "morph" ▶ </string> - <combo_box name="voice_effect" tool_tip="Vælg en stemme "morph" effekt for at ændre din stemme."> - <combo_box.item label="Ingen stemme "morph"" name="no_voice_effect"/> + <combo_box name="voice_effect" tool_tip="Vælg en stemme "morph" for at ændre din stemme"> + <combo_box.item label="Stemme morph slukket" name="no_voice_effect"/> </combo_box> </panel> diff --git a/indra/newview/skins/default/xui/da/sidepanel_appearance.xml b/indra/newview/skins/default/xui/da/sidepanel_appearance.xml index be049bea38..c5caefe070 100644 --- a/indra/newview/skins/default/xui/da/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/da/sidepanel_appearance.xml @@ -3,12 +3,14 @@ <string name="No Outfit" value="Intet sæt"/> <string name="Unsaved Changes" value="Ikke gemte ændringer"/> <string name="Now Wearing" value="Bærer nu..."/> + <string name="Changing outfits" value="Skift sæt"/> <panel name="panel_currentlook"> <button label="E" name="editappearance_btn"/> <button label="O" name="openoutfit_btn"/> <text name="currentlook_status"> (Status) </text> + <button label="" name="edit_outfit_btn" tool_tip="Redigér dette sæt"/> </panel> <filter_editor label="Filtrér sæt" name="Filter"/> </panel> diff --git a/indra/newview/skins/default/xui/da/sidepanel_item_info.xml b/indra/newview/skins/default/xui/da/sidepanel_item_info.xml index 701a59bade..ff20e21999 100644 --- a/indra/newview/skins/default/xui/da/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/da/sidepanel_item_info.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="item properties" title="Objekt profil"> +<panel name="item properties" title="Profil for genstand"> <panel.string name="unknown"> (ukendt) </panel.string> @@ -15,7 +15,7 @@ <panel.string name="acquiredDate"> [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] </panel.string> - <text name="title" value="Objekt profil"/> + <text name="title" value="Profil for genstand"/> <text name="where" value="(Beholdning)"/> <panel label=""> <text name="LabelItemNameTitle"> diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml index af0f685826..66c75aca4c 100644 --- a/indra/newview/skins/default/xui/da/strings.xml +++ b/indra/newview/skins/default/xui/da/strings.xml @@ -294,6 +294,9 @@ <string name="ReleaseNotes"> Noter om version </string> + <string name="RELEASE_NOTES_BASE_URL"> + http://wiki.secondlife.com/wiki/Release_Notes/ + </string> <string name="LoadingData"> Henter... </string> @@ -840,6 +843,9 @@ <string name="invalid"> ugyldig </string> + <string name="none"> + ingen + </string> <string name="shirt_not_worn"> Trøje - ikke på </string> diff --git a/indra/newview/skins/default/xui/de/floater_map.xml b/indra/newview/skins/default/xui/de/floater_map.xml index 130d3062d7..d4358fa8e9 100644 --- a/indra/newview/skins/default/xui/de/floater_map.xml +++ b/indra/newview/skins/default/xui/de/floater_map.xml @@ -27,6 +27,9 @@ <floater.string name="ToolTipMsg"> [AGENT][REGION](Karte mit Doppelklick öffnen) </floater.string> + <floater.string name="mini_map_caption"> + MINI-KARTE + </floater.string> <text label="N" name="floater_map_north" text="N"> N </text> diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml index 48b1f1170c..3a036fc441 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml @@ -24,9 +24,6 @@ <floater.string name="Title"> Gesten: [NAME] </floater.string> - <text name="name_text"> - Name: - </text> <text name="desc_label"> Beschreibung: </text> @@ -36,7 +33,7 @@ <text name="replace_text" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht's“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht's sagen“ und die zugehörige Geste wird abgespielt."> Ersetzen mit: </text> - <line_editor name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht's“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht's sagen“ und die zugehörige Geste wird abgespielt." left_delta="94" width="160"/> + <line_editor left_delta="94" name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht's“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht's sagen“ und die zugehörige Geste wird abgespielt." width="160"/> <text name="key_label"> Tastenkürzel: </text> @@ -46,19 +43,22 @@ Bibliothek: </text> <scroll_list name="library_list" width="166"/> - <button label="Hinzufügen >>" name="add_btn" left_pad="6" width="94"/> + <button label="Hinzufügen >>" left_pad="6" name="add_btn" width="94"/> <text name="steps_label"> Schritte: </text> <button label="Nach oben" name="up_btn"/> <button label="Nach unten" name="down_btn"/> <button label="Entfernen" name="delete_btn"/> + <text name="options_text"> + (Optionen) + </text> <radio_group name="animation_trigger_type"> <radio_item label="Start" name="start"/> <radio_item label="Stopp" name="stop"/> </radio_group> <check_box label="bis alle Animationen beendet sind" name="wait_anim_check"/> - <check_box label="Zeit in Sekunden" name="wait_time_check"/> + <check_box label="Zeit in Sekunden:" name="wait_time_check"/> <text name="help_label"> Alle Schritte werden gleichzeitig ausgeführt, wenn keine Pausen hinzugefügt wurden. </text> diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml index a656ffb894..c014b8e040 100644 --- a/indra/newview/skins/default/xui/de/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml @@ -1,23 +1,75 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Snapshot" title="Foto"> +<floater name="Snapshot" title="FOTO-ANZEIGE"> <floater.string name="unknown"> unbekannt </floater.string> + <radio_group label="Fototyp" name="snapshot_type_radio"> + <radio_item label="Email" name="postcard"/> + <radio_item label="Mein Inventar ([AMOUNT] L$)" name="texture"/> + <radio_item label="Auf meinem Computer speichern" name="local"/> + </radio_group> + <text name="file_size_label"> + [SIZE] KB + </text> <button label="Foto aktualisieren" name="new_snapshot_btn"/> - <line_editor label="Beschreibung" name="description"/> - <panel name="panel_snapshot_main"> - <button label="Foto freigeben" name="share"/> - <button label="Foto speichern" name="save"/> - <button label="Als Profilbild festlegen" name="set_profile_pic"/> - </panel> - <panel name="panel_snapshot_share"> - <button label="Ins Internet stellen" name="share_to_web"/> - <button label="Foto per E-Mail senden" name="share_to_email"/> - <button label="Zurück" name="cancel_share"/> - </panel> - <panel name="panel_snapshot_save"> - <button label="Objekt in meinem Inventar speichern" name="save_to_inventory"/> - <button label="Auf meinem Computer speichern" name="save_to_computer"/> - <button label="Zurück" name="cancel_save"/> - </panel> + <button label="Senden" name="send_btn"/> + <button label="Speichern ([AMOUNT] L$)" name="upload_btn"/> + <flyout_button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern"> + <flyout_button.item label="Speichern" name="save_item"/> + <flyout_button.item label="Speichern unter..." name="saveas_item"/> + </flyout_button> + <button label="Mehr" name="more_btn" tool_tip="Erweiterte Optionen"/> + <button label="Weniger" name="less_btn" tool_tip="Erweiterte Optionen"/> + <button label="Abbrechen" name="discard_btn"/> + <text name="type_label2"> + Größe + </text> + <text name="format_label"> + Format + </text> + <combo_box label="Auflösung" name="postcard_size_combo"> + <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/> + <combo_box.item label="640x480" name="640x480"/> + <combo_box.item label="800x600" name="800x600"/> + <combo_box.item label="1024x768" name="1024x768"/> + <combo_box.item label="Benutzerdefiniert" name="Custom"/> + </combo_box> + <combo_box label="Auflösung" name="texture_size_combo"> + <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/> + <combo_box.item label="Klein (128x128)" name="Small(128x128)"/> + <combo_box.item label="Mittel (256x256)" name="Medium(256x256)"/> + <combo_box.item label="Groß (512x512)" name="Large(512x512)"/> + <combo_box.item label="Benutzerdefiniert" name="Custom"/> + </combo_box> + <combo_box label="Auflösung" name="local_size_combo"> + <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/> + <combo_box.item label="320x240" name="320x240"/> + <combo_box.item label="640x480" name="640x480"/> + <combo_box.item label="800x600" name="800x600"/> + <combo_box.item label="1024x768" name="1024x768"/> + <combo_box.item label="1280x1024" name="1280x1024"/> + <combo_box.item label="1600x1200" name="1600x1200"/> + <combo_box.item label="Benutzerdefiniert" name="Custom"/> + </combo_box> + <combo_box label="Format" name="local_format_combo"> + <combo_box.item label="PNG" name="PNG"/> + <combo_box.item label="JPEG" name="JPEG"/> + <combo_box.item label="BMP" name="BMP"/> + </combo_box> + <spinner label="Breite" name="snapshot_width"/> + <spinner label="Größe" name="snapshot_height"/> + <check_box label="Seitenverhältnis beibehalten" name="keep_aspect_check"/> + <slider label="Bildqualität" name="image_quality_slider"/> + <text name="layer_type_label"> + Aufnehmen: + </text> + <combo_box label="Bildlayer" name="layer_types"> + <combo_box.item label="Farben" name="Colors"/> + <combo_box.item label="Tiefe" name="Depth"/> + </combo_box> + <check_box label="Schnittstelle" name="ui_check"/> + <check_box label="HUDs" name="hud_check"/> + <check_box label="Nach dem Speichern offen lassen" name="keep_open_check"/> + <check_box label="Frame einfrieren (Vollbild)" name="freeze_frame_check"/> + <check_box label="Automatisch aktualisieren" name="auto_snapshot_check"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_voice_effect.xml b/indra/newview/skins/default/xui/de/floater_voice_effect.xml index 8de0133ead..21d49a32fe 100644 --- a/indra/newview/skins/default/xui/de/floater_voice_effect.xml +++ b/indra/newview/skins/default/xui/de/floater_voice_effect.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater label="Orte" name="voice_effects" title="VOICE-MORPHING AUSPROBIEREN"> +<floater label="Orte" name="voice_effects" title="VOICE MORPHING"> <string name="no_voice_effect"> (Kein Voice-Morphing) </string> @@ -12,18 +12,19 @@ <string name="new_voice_effect"> (Neu!) </string> + <text name="preview_text"> + Zur Vorschau + </text> <text name="status_text"> - Um die Voice-Morph-Effekte auszuprobieren, einfach auf die Schaltfläche „Aufnahme“ klicken und kurz ins Mikrofon sprechen. Klicken Sie dann auf einen beliebigen Effekt in der Liste, um zu hören, wie der Effekt Ihre Stimme verändert. - -Schließen Sie dieses Fenster, um wieder mit dem Voice-Chat in der Nähe verbunden zu werden. + Nehmen Sie Ihre Stimme auf, klicken Sie dann auf einen Effekt, um den Effekt auf Ihre Stimme anzuwenden. </text> - <button label="Aufnahme" name="record_btn" tool_tip="Nehmen Sie Ihre Stimme auf."/> + <button label="Aufnehmen" name="record_btn" tool_tip="Nehmen Sie Ihre Stimme auf."/> <button label="Stopp" name="record_stop_btn"/> <text name="voice_morphing_link"> - [[URL]Voice-Morphing abonnieren] + [[URL] Jetzt abonnieren] </text> <scroll_list name="voice_effect_list" tool_tip="Nehmen Sie Ihre Stimme auf und klicken Sie dann auf einen Effekt, um diesen auszuprobieren."> - <scroll_list.columns label="Voice-Morphing" name="name"/> + <scroll_list.columns label="Bezeichnung" name="name"/> <scroll_list.columns label="Gültig bis" name="expires"/> </scroll_list> </floater> diff --git a/indra/newview/skins/default/xui/de/menu_attachment_self.xml b/indra/newview/skins/default/xui/de/menu_attachment_self.xml index 85fc9ab74f..a47c633d57 100644 --- a/indra/newview/skins/default/xui/de/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/de/menu_attachment_self.xml @@ -3,11 +3,13 @@ <menu_item_call label="Berühren" name="Attachment Object Touch"/> <menu_item_call label="Bearbeiten" name="Edit..."/> <menu_item_call label="Abnehmen" name="Detach"/> - <menu_item_call label="Fallen lassen" name="Drop"/> <menu_item_call label="Aufstehen" name="Stand Up"/> <menu_item_call label="Outfit ändern" name="Change Outfit"/> + <menu_item_call label="Mein Outfit bearbeiten" name="Edit Outfit"/> + <menu_item_call label="Meine Form bearbeiten" name="Edit My Shape"/> <menu_item_call label="Meine Freunde" name="Friends..."/> <menu_item_call label="Meine Gruppen" name="Groups..."/> <menu_item_call label="Mein Profil" name="Profile..."/> <menu_item_call label="Fehler in Texturen beseitigen" name="Debug..."/> + <menu_item_call label="Fallen lassen" name="Drop"/> </context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_outfit_tab.xml b/indra/newview/skins/default/xui/de/menu_outfit_tab.xml index 605dee9b33..32a65c96fc 100644 --- a/indra/newview/skins/default/xui/de/menu_outfit_tab.xml +++ b/indra/newview/skins/default/xui/de/menu_outfit_tab.xml @@ -4,6 +4,6 @@ <menu_item_call label="Anziehen - Aktuelles Outfit hinzufügen" name="wear_add"/> <menu_item_call label="Ausziehen - Aus aktuellem Outfit entfernen" name="take_off"/> <menu_item_call label="Outfit bearbeiten" name="edit"/> - <menu_item_call label="Umbenennen" name="rename"/> + <menu_item_call label="Outfit neu benennen" name="rename"/> <menu_item_call label="Outfit löschen" name="delete"/> </context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_topinfobar.xml b/indra/newview/skins/default/xui/de/menu_topinfobar.xml new file mode 100644 index 0000000000..5b0a724244 --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_topinfobar.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<menu name="menu_topinfobar"> + <menu_item_check label="Koordinaten anzeigen" name="Show Coordinates"/> + <menu_item_check label="Parzellen-Eigenschaften anzeigen" name="Show Parcel Properties"/> + <menu_item_call label="Landmarke" name="Landmark"/> + <menu_item_call label="Kopieren" name="Copy"/> +</menu> diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml index 0a2d5b472a..b9b6a8ed50 100644 --- a/indra/newview/skins/default/xui/de/menu_viewer.xml +++ b/indra/newview/skins/default/xui/de/menu_viewer.xml @@ -178,6 +178,7 @@ <menu_item_check label="Suchen" name="Search"/> <menu_item_call label="Tasten freigeben" name="Release Keys"/> <menu_item_call label="UI-Größe auf Standard setzen" name="Set UI Size to Default"/> + <menu_item_check label="Erweitert-Menü anzeigen - veraltetet" name="Show Advanced Menu - legacy shortcut"/> <menu_item_check label="Immer rennen" name="Always Run"/> <menu_item_check label="Fliegen" name="Fly"/> <menu_item_call label="Fenster schließen" name="Close Window"/> diff --git a/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml index a4bf75a497..027a68e72e 100644 --- a/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml +++ b/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <context_menu name="Outfit Wearable Context Menu"> - <menu_item_call label="Anziehen" name="wear"/> + <menu_item_call label="Ersetzen" name="wear"/> <menu_item_call label="Hinzufügen" name="wear_add"/> <menu_item_call label="Ausziehen / Abnehmen" name="take_off_or_detach"/> <menu_item_call label="Abnehmen" name="detach"/> diff --git a/indra/newview/skins/default/xui/de/menu_wearing_gear.xml b/indra/newview/skins/default/xui/de/menu_wearing_gear.xml new file mode 100644 index 0000000000..d994571f01 --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_wearing_gear.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<menu name="Gear Wearing"> + <menu_item_call label="Outfit bearbeiten" name="edit"/> +</menu> diff --git a/indra/newview/skins/default/xui/de/menu_wearing_tab.xml b/indra/newview/skins/default/xui/de/menu_wearing_tab.xml new file mode 100644 index 0000000000..d690572c8e --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_wearing_tab.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Wearing"> + <menu_item_call label="Outfit bearbeiten" name="edit"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 8380992d79..fb75f62988 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -622,8 +622,7 @@ Erwartet wurde [VALIDS] Datei konnte nicht kodiert werden: [FILE] </notification> <notification name="CorruptedProtectedDataStore"> - Ihre geschützten Daten konnten nicht gelesen werden, aus diesem Grund werden diese zurückgesetzt. - Dies kann passieren, wenn Sie die Netzwerkeinstellungen ändern. + Wir können Ihren Benutzernamen und Ihr Kennwort nicht automatisch ausfüllen. Dies kann passieren, wenn Sie die Netzwerkeinstellungen ändern. <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="CorruptResourceFile"> diff --git a/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml index de764d8025..799586f021 100644 --- a/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml +++ b/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml @@ -1,4 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="wearable_item"> <text name="item_name" value="..."/> + <panel name="btn_lock" tool_tip="Ihnen fehlt die Berechtigung zum Bearbeiten."/> + <panel name="btn_edit_panel"> + <button name="btn_edit" tool_tip="Diese Form bearbeiten"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml index de764d8025..945acb02d7 100644 --- a/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml +++ b/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml @@ -1,4 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="wearable_item"> + <button name="btn_delete" tool_tip="Von Outfit entfernen"/> <text name="item_name" value="..."/> + <panel name="btn_lock" tool_tip="Ihnen fehlt die Berechtigung zum Bearbeiten."/> + <panel name="btn_edit_panel"> + <button name="btn_edit" tool_tip="Dieses tragbare Objekt bearbeiten"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml index 91d90a5660..a27252e23e 100644 --- a/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml +++ b/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="deletable_wearable_item"> + <button name="btn_delete" tool_tip="Von Outfit entfernen"/> <text name="item_name" value="..."/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml index 6af84de0c7..b7ad1bdc1b 100644 --- a/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml +++ b/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml @@ -1,4 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="dummy_clothing_item"> <text name="item_name" value="..."/> + <panel name="btn_add_panel"> + <button name="btn_add" tool_tip="Weitere Artikel dieser Art hinzufügen"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_edit_wearable.xml b/indra/newview/skins/default/xui/de/panel_edit_wearable.xml index f23244e14d..faeea3a5de 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_wearable.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_wearable.xml @@ -90,6 +90,7 @@ <string name="tattoo_desc_text"> Tätowierung: </string> + <labeled_back_button label="Speichern" name="back_btn" tool_tip="Zurück zu Outfit bearbeiten"/> <text name="edit_wearable_title" value="Form bearbeiten"/> <panel label="Hemd" name="wearable_type_panel"> <text name="description_text" value="Form:"/> @@ -102,6 +103,6 @@ </panel> <panel name="button_panel"> <button label="Speichern unter" name="save_as_button"/> - <button label="Zurücksetzen" name="revert_button"/> + <button label="Änderungen rückgängig machen" name="revert_button"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_outfit_edit.xml b/indra/newview/skins/default/xui/de/panel_outfit_edit.xml index 60f8ad2331..00a79e6bb3 100644 --- a/indra/newview/skins/default/xui/de/panel_outfit_edit.xml +++ b/indra/newview/skins/default/xui/de/panel_outfit_edit.xml @@ -13,7 +13,9 @@ <string name="Filter.All" value="Alle"/> <string name="Filter.Clothes/Body" value="Kleider/Körper"/> <string name="Filter.Objects" value="Objekte"/> - <string name="Filter.Custom" value="Benutzerspezifischer Filter"/> + <string name="Filter.Clothing" value="Kleidung"/> + <string name="Filter.Bodyparts" value="Körperteile"/> + <string name="replace_body_part" value="Klicken, um Ihre aktuelle Form zu ersetzen"/> <text name="title" value="Outfit bearbeiten"/> <panel label="bottom_panel" name="header_panel"> <panel label="bottom_panel" name="outfit_name_and_status"> @@ -25,7 +27,7 @@ <layout_panel label="IM Steuerkonsole" name="outfit_wearables_panel"> <layout_stack name="filter_panels"> <layout_panel name="add_button_and_combobox"> - <button label="Mehr hinzufügen" name="show_add_wearables_btn"/> + <button label="Mehr hinzufügen" name="show_add_wearables_btn" tool_tip="Öffnen/Schließen"/> </layout_panel> <layout_panel name="filter_panel"> <filter_editor label="Tragbare Inventarobjekte filtern" name="look_item_filter"/> @@ -36,6 +38,6 @@ </layout_stack> <panel name="save_revert_button_bar"> <button label="Speichern" name="save_btn"/> - <button label="Zurücksetzen" name="revert_btn"/> + <button label="Änderungen rückgängig machen" name="revert_btn" tool_tip="Zur zuletzt gespeicherten Version zurücksetzen"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml index 8b04cecd68..852efe41d7 100644 --- a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml @@ -6,7 +6,7 @@ </tab_container> <panel name="bottom_panel"> <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/> - <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/> + <dnd_button name="trash_btn" tool_tip="Ausgewähltes Outfit löschen"/> <button label="Speichern unter" name="save_btn"/> <button label="Anziehen" name="wear_btn" tool_tip="Ausgewähltes Outfit tragen"/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml index 879262df9b..7077534719 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml @@ -49,10 +49,7 @@ m </text> <slider label="Max. Partikelzahl:" name="MaxParticleCount"/> - <slider label="Max. Avatarsichtweite:" name="MaxAvatarDrawDistance"/> - <text name="DrawDistanceMeterText3"> - m - </text> + <slider label="Max. Anzahl an voll dargestellten Avataren:" name="MaxNumberAvatarDrawn"/> <slider label="Post-Processing-Qualität:" name="RenderPostProcess"/> <text name="MeshDetailText"> Gitterdetails: diff --git a/indra/newview/skins/default/xui/de/panel_voice_effect.xml b/indra/newview/skins/default/xui/de/panel_voice_effect.xml index 363ee013e3..533deb8597 100644 --- a/indra/newview/skins/default/xui/de/panel_voice_effect.xml +++ b/indra/newview/skins/default/xui/de/panel_voice_effect.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_voice_effect"> <string name="no_voice_effect"> - Kein Voice-Morphing + Voice-Morphing Aus </string> <string name="preview_voice_effects"> Voice-Morphing ausprobieren ▶ @@ -10,6 +10,6 @@ Voice-Morphing abonnieren ▶ </string> <combo_box name="voice_effect" tool_tip="Wählen Sie einen Voice-Morph-Effekt aus, um Ihre Stimme zu verändern."> - <combo_box.item label="Kein Voice-Morphing" name="no_voice_effect"/> + <combo_box.item label="Voice-Morphing Aus" name="no_voice_effect"/> </combo_box> </panel> diff --git a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml index f8e3db341a..b43067fb95 100644 --- a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml @@ -3,6 +3,7 @@ <string name="No Outfit" value="Kein Outfit"/> <string name="Unsaved Changes" value="Ungespeicherte Änderungen"/> <string name="Now Wearing" value="Aktuelles Outfit..."/> + <string name="Changing outfits" value="Outfits ändern"/> <panel name="panel_currentlook"> <button label="B" name="editappearance_btn"/> <button label="Ö" name="openoutfit_btn"/> @@ -12,6 +13,7 @@ <text name="currentlook_name"> MyOutfit With a really Long Name like MOOSE </text> + <button label="" name="edit_outfit_btn" tool_tip="Diese Outfit bearbeiten"/> </panel> <filter_editor label="Outfits filtern" name="Filter"/> </panel> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index f5882adb79..67b7d6c1d2 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -309,6 +309,9 @@ <string name="ReleaseNotes"> Versionshinweise </string> + <string name="RELEASE_NOTES_BASE_URL"> + http://wiki.secondlife.com/wiki/Release_Notes/ + </string> <string name="LoadingData"> Wird geladen... </string> @@ -864,6 +867,9 @@ <string name="invalid"> ungültig </string> + <string name="none"> + keine + </string> <string name="shirt_not_worn"> Hemd nicht getragen </string> diff --git a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml index 28616d503b..ec097a8e87 100644 --- a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml +++ b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml @@ -1,8 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater border_visible="false" - border_drop_shadow_visible="false" - drop_shadow_visible="false" border="false" bg_opaque_image="Window_Foreground" bg_alpha_image="Window_Background" @@ -26,20 +24,20 @@ save_visibility="true" single_instance="true" width="320"> - <chat_history - allow_html="true" - bg_readonly_color="ChatHistoryBgColor" - bg_writeable_color="ChatHistoryBgColor" - follows="all" - left="5" - top="20" - layout="topleft" - height="275" - name="chat_history" - parse_highlights="true" - text_color="ChatHistoryTextColor" - text_readonly_color="ChatHistoryTextColor" - right_widget_pad="5" - left_widget_pad="0" - width="315" /> + <chat_history + allow_html="true" + bg_readonly_color="ChatHistoryBgColor" + bg_writeable_color="ChatHistoryBgColor" + follows="all" + left="5" + top="20" + layout="topleft" + height="275" + name="chat_history" + parse_highlights="true" + text_color="ChatHistoryTextColor" + text_readonly_color="ChatHistoryTextColor" + right_widget_pad="5" + left_widget_pad="0" + width="315" /> </floater> diff --git a/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml index bdfa928b1d..06bd1e9ff4 100644 --- a/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml +++ b/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml @@ -3,7 +3,7 @@ <!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtime--> <!-- Non of string values of controls below are visible to user. They are not need to be translated. --> <accordion_tab - display_children="false" + expanded="false" follows="all" height="45" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml index 60a0095d5f..58d3dbcc37 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml @@ -14,131 +14,82 @@ border="false"> <tab_container follows="all" - height="509" + height="539" layout="topleft" - left="7" + left="5" name="appearance_tabs" tab_min_width="140" tab_height="30" tab_position="top" halign="center" top="8" - width="312"> + width="315"> <panel class="outfits_list" filename="panel_outfits_list.xml" - height="490" + height="520" name="outfitslist_tab" background_visible="true" help_topic="my_outfits_tab" follows="all" label="MY OUTFITS" layout="topleft" - width="312" /> + width="315" /> <panel background_visible="true" bg_alpha_color="DkGray" class="panel_wearing" + filename="panel_outfits_wearing.xml" follows="all" - height="490" + height="520" help_topic="now_wearing_tab" label="WEARING" layout="topleft" name="cof_tab" - width="312"> - <wearable_items_list - allow_select="true" - follows="all" - height="490" - keep_one_selected="true" - left="3" - multi_select="true" - name="cof_items_list" - standalone="false" - top="0" - translate="false" - width="307" - worn_indication_enabled="false" - /> - </panel> + width="315" /> </tab_container> - <panel - background_visible="true" - follows="bottom|left|right" - height="57" - layout="topleft" - left="9" - top_pad="-1" - visible="true" - name="bottom_panel" - width="310"> - <button - follows="bottom|left" - tool_tip="Show additional options" - height="25" - image_hover_unselected="Toolbar_Left_Over" - image_overlay="OptionsMenu_Off" - image_selected="Toolbar_Left_Selected" - image_unselected="Toolbar_Left_Off" - layout="topleft" - left="1" - name="options_gear_btn" - top="1" - width="31" /> - <icon - follows="bottom|left|right" - height="25" - image_name="Toolbar_Middle_Off" - layout="topleft" - left_pad="1" - name="dummy_icon" - width="241" - /> - <button - follows="bottom|right" - height="25" - image_hover_unselected="Toolbar_Right_Over" - image_overlay="TrashItem_Off" - image_selected="Toolbar_Right_Selected" - image_unselected="Toolbar_Right_Off" - layout="topleft" - left_pad="1" - name="trash_btn" - tool_tip="Delete selected outfit" - width="31"/> - <button - follows="bottom|left" - height="23" - label="Save As" - left="0" - layout="topleft" - name="save_btn" - top_pad="6" - width="155" /> - <button - follows="bottom|left" - height="23" - name="save_flyout_btn" - label="" + <panel + background_visible="true" + follows="bottom|left|right" + height="27" layout="topleft" - left_pad="-20" - tab_stop="false" - image_selected="SegmentedBtn_Right_Selected_Press" - image_unselected="SegmentedBtn_Right_Off" - image_pressed="SegmentedBtn_Right_Press" - image_pressed_selected="SegmentedBtn_Right_Selected_Press" - image_overlay="Arrow_Small_Up" - width="20"/> - <button - follows="bottom|left|right" - height="23" - label="Wear" - layout="topleft" - name="wear_btn" - left_pad="3" - tool_tip="Wear selected outfit" - width="152" /> - </panel> - + left="9" + top_pad="1" + visible="true" + name="bottom_panel" + width="310"> + <button + follows="bottom|left" + height="23" + label="Save As" + left="0" + layout="topleft" + name="save_btn" + top_pad="0" + width="155" /> + <button + follows="bottom|left" + height="23" + name="save_flyout_btn" + label="" + layout="topleft" + left_pad="-20" + tab_stop="false" + image_selected="SegmentedBtn_Right_Selected_Press" + image_unselected="SegmentedBtn_Right_Off" + image_pressed="SegmentedBtn_Right_Press" + image_pressed_selected="SegmentedBtn_Right_Selected_Press" + image_overlay="Arrow_Small_Up" + width="20"/> + <button + follows="bottom|left|right" + height="23" + label="Wear" + layout="topleft" + name="wear_btn" + left_pad="3" + tool_tip="Wear selected outfit" + width="152" /> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_outfits_list.xml b/indra/newview/skins/default/xui/en/panel_outfits_list.xml index aea4e939df..62b23aa74c 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_list.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_list.xml @@ -4,7 +4,7 @@ bg_alpha_color="DkGray" border="false" follows="all" - height="400" + height="430" name="Outfits" layout="topleft" left="0" @@ -23,6 +23,50 @@ left="3" name="outfits_accordion" top="0" - width="307"> + width="309"> </accordion> + <panel + background_visible="true" + follows="bottom|left|right" + height="28" + layout="topleft" + left="4" + top_pad="0" + visible="true" + name="bottom_panel" + width="312"> + <button + follows="bottom|left" + tool_tip="Show additional options" + height="25" + image_hover_unselected="Toolbar_Left_Over" + image_overlay="OptionsMenu_Off" + image_selected="Toolbar_Left_Selected" + image_unselected="Toolbar_Left_Off" + layout="topleft" + left="0" + name="options_gear_btn" + top="1" + width="31" /> + <icon + follows="bottom|left|right" + height="25" + image_name="Toolbar_Middle_Off" + layout="topleft" + left_pad="1" + name="dummy_icon" + width="243"/> + <button + follows="bottom|right" + height="25" + image_hover_unselected="Toolbar_Right_Over" + image_overlay="TrashItem_Off" + image_selected="Toolbar_Right_Selected" + image_unselected="Toolbar_Right_Off" + layout="topleft" + left_pad="1" + name="trash_btn" + tool_tip="Delete selected outfit" + width="31"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml new file mode 100644 index 0000000000..2fbbf6610c --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel + background_visible="true" + bg_alpha_color="DkGray" + follows="all" + height="430" + layout="topleft" + left="0" + name="Wearing" + top="0" + width="312"> + <wearable_items_list + follows="all" + height="400" + layout="topleft" + left="3" + multi_select="true" + name="cof_items_list" + standalone="false" + top="0" + width="309" + worn_indication_enabled="false" /> + <panel + background_visible="true" + follows="bottom|left|right" + height="28" + layout="topleft" + left="4" + name="bottom_panel" + top_pad="0" + width="312"> + <button + follows="bottom|left" + height="25" + image_hover_unselected="Toolbar_Left_Over" + image_overlay="OptionsMenu_Off" + image_selected="Toolbar_Left_Selected" + image_unselected="Toolbar_Left_Off" + layout="topleft" + left="0" + name="options_gear_btn" + tool_tip="Show additional options" + top="1" + width="31" /> + <icon + follows="bottom|left|right" + height="25" + image_name="Toolbar_Right_Off" + layout="topleft" + left_pad="1" + name="dummy_icon" + width="274" /> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index e30c081ba1..799d440292 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -136,7 +136,8 @@ <string name="RetrievingData">Retrieving...</string> <string name="ReleaseNotes">Release Notes</string> - <string name="RELEASE_NOTES_BASE_URL">http://wiki.secondlife.com/wiki/Release_Notes/</string> + <!-- Always mark translate="false" for strings that are nothing but URLs, as they don't need translation. --> + <string name="RELEASE_NOTES_BASE_URL" translate="false">http://wiki.secondlife.com/wiki/Release_Notes/</string> <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData --> <string name="LoadingData">Loading...</string> |