diff options
author | Palmer Truelson <palmer@lindenlab.com> | 2010-03-17 14:23:53 -0700 |
---|---|---|
committer | Palmer Truelson <palmer@lindenlab.com> | 2010-03-17 14:23:53 -0700 |
commit | 86229c1b57fbb748d622caf875e879c227fce762 (patch) | |
tree | 5e45b15b31e577fe78bbef8921c75b91cdf31e79 /indra | |
parent | fd749ea7d5dac43f6efdb2e7eefe9131cf57ec97 (diff) | |
parent | 1e713c886c2ba688a6145d682a8685e547de54ad (diff) |
merge
Diffstat (limited to 'indra')
61 files changed, 903 insertions, 685 deletions
diff --git a/indra/llcommon/llcursortypes.cpp b/indra/llcommon/llcursortypes.cpp index 23ede97af3..6751c235f6 100644 --- a/indra/llcommon/llcursortypes.cpp +++ b/indra/llcommon/llcursortypes.cpp @@ -72,6 +72,9 @@ ECursorType getCursorFromString(const std::string& cursor_string) cursor_string_table["UI_CURSOR_TOOLPAUSE"] = UI_CURSOR_TOOLPAUSE; cursor_string_table["UI_CURSOR_TOOLMEDIAOPEN"] = UI_CURSOR_TOOLMEDIAOPEN; cursor_string_table["UI_CURSOR_PIPETTE"] = UI_CURSOR_PIPETTE; + cursor_string_table["UI_CURSOR_TOOLSIT"] = UI_CURSOR_TOOLSIT; + cursor_string_table["UI_CURSOR_TOOLBUY"] = UI_CURSOR_TOOLBUY; + cursor_string_table["UI_CURSOR_TOOLOPEN"] = UI_CURSOR_TOOLOPEN; } std::map<std::string,U32>::const_iterator iter = cursor_string_table.find(cursor_string); diff --git a/indra/llcommon/llcursortypes.h b/indra/llcommon/llcursortypes.h index a1b8178bfe..143c2c64cf 100644 --- a/indra/llcommon/llcursortypes.h +++ b/indra/llcommon/llcursortypes.h @@ -68,6 +68,9 @@ enum ECursorType { UI_CURSOR_TOOLPAUSE, UI_CURSOR_TOOLMEDIAOPEN, UI_CURSOR_PIPETTE, + UI_CURSOR_TOOLSIT, + UI_CURSOR_TOOLBUY, + UI_CURSOR_TOOLOPEN, UI_CURSOR_COUNT // Number of elements in this enum (NOT a cursor) }; diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index d48f4ad0f5..cb62e46271 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -65,15 +65,19 @@ LLPluginClassMedia::~LLPluginClassMedia() reset(); } -bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path, const std::string &language_code) +bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug) { LL_DEBUGS("Plugin") << "launcher: " << launcher_filename << LL_ENDL; LL_DEBUGS("Plugin") << "plugin: " << plugin_filename << LL_ENDL; - LL_DEBUGS("Plugin") << "user_data_path: " << user_data_path << LL_ENDL; mPlugin = new LLPluginProcessParent(this); mPlugin->setSleepTime(mSleepTime); - mPlugin->init(launcher_filename, plugin_filename, debug, user_data_path,language_code); + + // Queue up the media init message -- it will be sent after all the currently queued messages. + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "init"); + sendMessage(message); + + mPlugin->init(launcher_filename, plugin_filename, debug); return true; } @@ -678,6 +682,20 @@ void LLPluginClassMedia::paste() sendMessage(message); } +void LLPluginClassMedia::setUserDataPath(const std::string &user_data_path) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_user_data_path"); + message.setValue("path", user_data_path); + sendMessage(message); +} + +void LLPluginClassMedia::setLanguageCode(const std::string &language_code) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_language_code"); + message.setValue("language", language_code); + sendMessage(message); +} + LLPluginClassMedia::ETargetType getTargetTypeFromLLQtWebkit(int target_type) { // convert a LinkTargetType value from llqtwebkit to an ETargetType diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index ce49241e84..6318c67f12 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -51,9 +51,7 @@ public: // local initialization, called by the media manager when creating a source virtual bool init(const std::string &launcher_filename, const std::string &plugin_filename, - bool debug, - const std::string &user_data_path, - const std::string &language_code); + bool debug); // undoes everything init() didm called by the media manager when destroying a source virtual void reset(); @@ -177,6 +175,10 @@ public: void paste(); bool canPaste() const { return mCanPaste; }; + + // These can be called before init(), and they will be queued and sent before the media init message. + void setUserDataPath(const std::string &user_data_path); + void setLanguageCode(const std::string &language_code); /////////////////////////////////// // media browser class functions diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp index 9b43ec0e3e..ccaf95b36d 100644 --- a/indra/llplugin/llpluginprocesschild.cpp +++ b/indra/llplugin/llpluginprocesschild.cpp @@ -155,8 +155,6 @@ void LLPluginProcessChild::idle(void) { setState(STATE_PLUGIN_INITIALIZING); LLPluginMessage message("base", "init"); - message.setValue("user_data_path", mUserDataPath); - message.setValue("language_code", mLanguageCode); sendMessageToPlugin(message); } break; @@ -329,8 +327,6 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message) if(message_name == "load_plugin") { mPluginFile = parsed.getValue("file"); - mUserDataPath = parsed.getValue("user_data_path"); - mLanguageCode = parsed.getValue("language_code"); } else if(message_name == "shm_add") { diff --git a/indra/llplugin/llpluginprocesschild.h b/indra/llplugin/llpluginprocesschild.h index af76ec1fa5..0e5e85406a 100644 --- a/indra/llplugin/llpluginprocesschild.h +++ b/indra/llplugin/llpluginprocesschild.h @@ -98,9 +98,6 @@ private: std::string mPluginFile; - std::string mUserDataPath; - std::string mLanguageCode; - LLPluginInstance *mInstance; typedef std::map<std::string, LLPluginSharedMemory*> sharedMemoryRegionsType; diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index 0ce2c759ba..895c858979 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -98,15 +98,12 @@ void LLPluginProcessParent::errorState(void) setState(STATE_ERROR); } -void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path, const std::string &language_code) +void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug) { mProcess.setExecutable(launcher_filename); mPluginFile = plugin_filename; mCPUUsage = 0.0f; - mDebug = debug; - mUserDataPath = user_data_path; - mLanguageCode = language_code; - + mDebug = debug; setState(STATE_INITIALIZED); } @@ -363,8 +360,6 @@ void LLPluginProcessParent::idle(void) { LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "load_plugin"); message.setValue("file", mPluginFile); - message.setValue("user_data_path", mUserDataPath); - message.setValue("language_code", mLanguageCode); sendMessage(message); } diff --git a/indra/llplugin/llpluginprocessparent.h b/indra/llplugin/llpluginprocessparent.h index 23702814c8..cc6c513615 100644 --- a/indra/llplugin/llpluginprocessparent.h +++ b/indra/llplugin/llpluginprocessparent.h @@ -61,9 +61,7 @@ public: void init(const std::string &launcher_filename, const std::string &plugin_filename, - bool debug, - const std::string &user_data_path, - const std::string &language_code); + bool debug); void idle(void); @@ -148,9 +146,6 @@ private: std::string mPluginFile; - std::string mUserDataPath; - std::string mLanguageCode; - LLPluginProcessParentOwner *mOwner; typedef std::map<std::string, LLPluginSharedMemory*> sharedMemoryRegionsType; diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index 35428e4227..e8e3459673 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -310,7 +310,6 @@ LLUrlEntryAgent::LLUrlEntryAgent() boost::regex::perl|boost::regex::icase); mMenuName = "menu_url_agent.xml"; mIcon = "Generic_Person"; - mTooltip = LLTrans::getString("TooltipAgentUrl"); mColor = LLUIColorTable::instance().getColor("AgentLinkColor"); } @@ -323,6 +322,38 @@ void LLUrlEntryAgent::onAgentNameReceived(const LLUUID& id, callObservers(id.asString(), first + " " + last); } +std::string LLUrlEntryAgent::getTooltip(const std::string &string) const +{ + // return a tooltip corresponding to the URL type instead of the generic one + std::string url = getUrl(string); + + if (LLStringUtil::endsWith(url, "/mute")) + { + return LLTrans::getString("TooltipAgentMute"); + } + if (LLStringUtil::endsWith(url, "/unmute")) + { + return LLTrans::getString("TooltipAgentUnmute"); + } + if (LLStringUtil::endsWith(url, "/im")) + { + return LLTrans::getString("TooltipAgentIM"); + } + if (LLStringUtil::endsWith(url, "/pay")) + { + return LLTrans::getString("TooltipAgentPay"); + } + if (LLStringUtil::endsWith(url, "/offerteleport")) + { + return LLTrans::getString("TooltipAgentOfferTeleport"); + } + if (LLStringUtil::endsWith(url, "/requestfriend")) + { + return LLTrans::getString("TooltipAgentRequestFriend"); + } + return LLTrans::getString("TooltipAgentUrl"); +} + std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCallback &cb) { if (!gCacheName) @@ -346,6 +377,31 @@ std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCa } else if (gCacheName->getFullName(agent_id, full_name)) { + // customize label string based on agent SLapp suffix + if (LLStringUtil::endsWith(url, "/mute")) + { + return LLTrans::getString("SLappAgentMute") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/unmute")) + { + return LLTrans::getString("SLappAgentUnmute") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/im")) + { + return LLTrans::getString("SLappAgentIM") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/pay")) + { + return LLTrans::getString("SLappAgentPay") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/offerteleport")) + { + return LLTrans::getString("SLappAgentOfferTeleport") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/requestfriend")) + { + return LLTrans::getString("SLappAgentRequestFriend") + " " + full_name; + } return full_name; } else diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index c947ef7259..84d0968779 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -169,6 +169,7 @@ class LLUrlEntryAgent : public LLUrlEntryBase public: LLUrlEntryAgent(); /*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); + /*virtual*/ std::string getTooltip(const std::string &string) const; private: void onAgentNameReceived(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group); diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index d34083a384..57beb71a01 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -152,7 +152,7 @@ LLView::~LLView() //llinfos << "Deleting view " << mName << ":" << (void*) this << llendl; if (LLView::sIsDrawing) { - llwarns << "Deleting view " << mName << " during UI draw() phase" << llendl; + lldebugs << "Deleting view " << mName << " during UI draw() phase" << llendl; } // llassert(LLView::sIsDrawing == FALSE); diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 924acaf148..224314a490 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -2807,6 +2807,9 @@ const char* cursorIDToName(int id) case UI_CURSOR_TOOLPAUSE: return "UI_CURSOR_TOOLPAUSE"; case UI_CURSOR_TOOLMEDIAOPEN: return "UI_CURSOR_TOOLMEDIAOPEN"; case UI_CURSOR_PIPETTE: return "UI_CURSOR_PIPETTE"; + case UI_CURSOR_TOOLSIT: return "UI_CURSOR_TOOLSIT"; + case UI_CURSOR_TOOLBUY: return "UI_CURSOR_TOOLBUY"; + case UI_CURSOR_TOOLOPEN: return "UI_CURSOR_TOOLOPEN"; } llerrs << "cursorIDToName: unknown cursor id" << id << llendl; @@ -2909,6 +2912,9 @@ void LLWindowMacOSX::setCursor(ECursorType cursor) case UI_CURSOR_TOOLPLAY: case UI_CURSOR_TOOLPAUSE: case UI_CURSOR_TOOLMEDIAOPEN: + case UI_CURSOR_TOOLSIT: + case UI_CURSOR_TOOLBUY: + case UI_CURSOR_TOOLOPEN: result = setImageCursor(gCursors[cursor]); break; @@ -2950,6 +2956,9 @@ void LLWindowMacOSX::initCursors() initPixmapCursor(UI_CURSOR_TOOLPLAY, 1, 1); initPixmapCursor(UI_CURSOR_TOOLPAUSE, 1, 1); initPixmapCursor(UI_CURSOR_TOOLMEDIAOPEN, 1, 1); + initPixmapCursor(UI_CURSOR_TOOLSIT, 20, 15); + initPixmapCursor(UI_CURSOR_TOOLBUY, 20, 15); + initPixmapCursor(UI_CURSOR_TOOLOPEN, 20, 15); initPixmapCursor(UI_CURSOR_SIZENWSE, 10, 10); initPixmapCursor(UI_CURSOR_SIZENESW, 10, 10); diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 4be5d06c2b..5f778d6208 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -46,6 +46,7 @@ #include "llerror.h" #include "llgl.h" #include "llstring.h" +#include "lldir.h" // System includes #include <commdlg.h> @@ -1545,6 +1546,11 @@ void LLWindowWin32::initCursors() mCursor[ UI_CURSOR_PIPETTE ] = LoadCursor(module, TEXT("TOOLPIPETTE")); // Color cursors + gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "res", "toolbuy.cur"); + + mCursor[UI_CURSOR_TOOLSIT] = LoadCursorFromFile(utf8str_to_utf16str(gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + "res" + gDirUtilp->getDirDelimiter() + "toolsit.cur").c_str()); + mCursor[UI_CURSOR_TOOLBUY] = LoadCursorFromFile(utf8str_to_utf16str(gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + "res" + gDirUtilp->getDirDelimiter() + "toolbuy.cur").c_str()); + mCursor[UI_CURSOR_TOOLOPEN] = LoadCursorFromFile(utf8str_to_utf16str(gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + "res" + gDirUtilp->getDirDelimiter() + "toolopen.cur").c_str()); mCursor[UI_CURSOR_TOOLPLAY] = loadColorCursor(TEXT("TOOLPLAY")); mCursor[UI_CURSOR_TOOLPAUSE] = loadColorCursor(TEXT("TOOLPAUSE")); mCursor[UI_CURSOR_TOOLMEDIAOPEN] = loadColorCursor(TEXT("TOOLMEDIAOPEN")); diff --git a/indra/media_plugins/example/media_plugin_example.cpp b/indra/media_plugins/example/media_plugin_example.cpp index f5b077fea0..49bbca6c52 100644 --- a/indra/media_plugins/example/media_plugin_example.cpp +++ b/indra/media_plugins/example/media_plugin_example.cpp @@ -119,17 +119,6 @@ void MediaPluginExample::receiveMessage( const char* message_string ) std::string plugin_version = "Example media plugin, Example Version 1.0.0.0"; message.setValue( "plugin_version", plugin_version ); sendMessage( message ); - - // Plugin gets to decide the texture parameters to use. - message.setMessage( LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params" ); - message.setValueS32( "default_width", mWidth ); - message.setValueS32( "default_height", mHeight ); - message.setValueS32( "depth", mDepth ); - message.setValueU32( "internalformat", GL_RGBA ); - message.setValueU32( "format", GL_RGBA ); - message.setValueU32( "type", GL_UNSIGNED_BYTE ); - message.setValueBoolean( "coords_opengl", false ); - sendMessage( message ); } else if ( message_name == "idle" ) @@ -191,7 +180,20 @@ void MediaPluginExample::receiveMessage( const char* message_string ) else if ( message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA ) { - if ( message_name == "size_change" ) + if ( message_name == "init" ) + { + // Plugin gets to decide the texture parameters to use. + LLPluginMessage message( LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params" ); + message.setValueS32( "default_width", mWidth ); + message.setValueS32( "default_height", mHeight ); + message.setValueS32( "depth", mDepth ); + message.setValueU32( "internalformat", GL_RGBA ); + message.setValueU32( "format", GL_RGBA ); + message.setValueU32( "type", GL_UNSIGNED_BYTE ); + message.setValueBoolean( "coords_opengl", false ); + sendMessage( message ); + } + else if ( message_name == "size_change" ) { std::string name = message_in.getValue( "name" ); S32 width = message_in.getValueS32( "width" ); diff --git a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp index 26173314a7..a69da3ff5a 100644 --- a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp +++ b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp @@ -946,33 +946,6 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) message.setValue("plugin_version", getVersion()); sendMessage(message); - - // Plugin gets to decide the texture parameters to use. - message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); - // lame to have to decide this now, it depends on the movie. Oh well. - mDepth = 4; - - mCurrentWidth = 1; - mCurrentHeight = 1; - mPreviousWidth = 1; - mPreviousHeight = 1; - mNaturalWidth = 1; - mNaturalHeight = 1; - mWidth = 1; - mHeight = 1; - mTextureWidth = 1; - mTextureHeight = 1; - - message.setValueU32("format", GL_RGBA); - message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV); - - message.setValueS32("depth", mDepth); - message.setValueS32("default_width", mWidth); - message.setValueS32("default_height", mHeight); - message.setValueU32("internalformat", GL_RGBA8); - message.setValueBoolean("coords_opengl", true); // true == use OpenGL-style coordinates, false == (0,0) is upper left. - message.setValueBoolean("allow_downsample", true); // we respond with grace and performance if asked to downscale - sendMessage(message); } else if(message_name == "idle") { @@ -1037,7 +1010,36 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) } else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) { - if(message_name == "size_change") + if(message_name == "init") + { + // Plugin gets to decide the texture parameters to use. + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); + // lame to have to decide this now, it depends on the movie. Oh well. + mDepth = 4; + + mCurrentWidth = 1; + mCurrentHeight = 1; + mPreviousWidth = 1; + mPreviousHeight = 1; + mNaturalWidth = 1; + mNaturalHeight = 1; + mWidth = 1; + mHeight = 1; + mTextureWidth = 1; + mTextureHeight = 1; + + message.setValueU32("format", GL_RGBA); + message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV); + + message.setValueS32("depth", mDepth); + message.setValueS32("default_width", mWidth); + message.setValueS32("default_height", mHeight); + message.setValueU32("internalformat", GL_RGBA8); + message.setValueBoolean("coords_opengl", true); // true == use OpenGL-style coordinates, false == (0,0) is upper left. + message.setValueBoolean("allow_downsample", true); // we respond with grace and performance if asked to downscale + sendMessage(message); + } + else if(message_name == "size_change") { std::string name = message_in.getValue("name"); S32 width = message_in.getValueS32("width"); diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp index e230fcc280..1f88301ca7 100644 --- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp +++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp @@ -859,36 +859,6 @@ void MediaPluginQuickTime::receiveMessage(const char *message_string) plugin_version += codec.str(); message.setValue("plugin_version", plugin_version); sendMessage(message); - - // Plugin gets to decide the texture parameters to use. - message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); - #if defined(LL_WINDOWS) - // Values for Windows - mDepth = 3; - message.setValueU32("format", GL_RGB); - message.setValueU32("type", GL_UNSIGNED_BYTE); - - // We really want to pad the texture width to a multiple of 32 bytes, but since we're using 3-byte pixels, it doesn't come out even. - // Padding to a multiple of 3*32 guarantees it'll divide out properly. - message.setValueU32("padding", 32 * 3); - #else - // Values for Mac - mDepth = 4; - message.setValueU32("format", GL_BGRA_EXT); - #ifdef __BIG_ENDIAN__ - message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV ); - #else - message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8); - #endif - - // Pad texture width to a multiple of 32 bytes, to line up with cache lines. - message.setValueU32("padding", 32); - #endif - message.setValueS32("depth", mDepth); - message.setValueU32("internalformat", GL_RGB); - message.setValueBoolean("coords_opengl", true); // true == use OpenGL-style coordinates, false == (0,0) is upper left. - message.setValueBoolean("allow_downsample", true); - sendMessage(message); } else if(message_name == "idle") { @@ -953,7 +923,41 @@ void MediaPluginQuickTime::receiveMessage(const char *message_string) } else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) { - if(message_name == "size_change") + if(message_name == "init") + { + // This is the media init message -- all necessary data for initialization should have been received. + + // Plugin gets to decide the texture parameters to use. + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); + #if defined(LL_WINDOWS) + // Values for Windows + mDepth = 3; + message.setValueU32("format", GL_RGB); + message.setValueU32("type", GL_UNSIGNED_BYTE); + + // We really want to pad the texture width to a multiple of 32 bytes, but since we're using 3-byte pixels, it doesn't come out even. + // Padding to a multiple of 3*32 guarantees it'll divide out properly. + message.setValueU32("padding", 32 * 3); + #else + // Values for Mac + mDepth = 4; + message.setValueU32("format", GL_BGRA_EXT); + #ifdef __BIG_ENDIAN__ + message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV ); + #else + message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8); + #endif + + // Pad texture width to a multiple of 32 bytes, to line up with cache lines. + message.setValueU32("padding", 32); + #endif + message.setValueS32("depth", mDepth); + message.setValueU32("internalformat", GL_RGB); + message.setValueBoolean("coords_opengl", true); // true == use OpenGL-style coordinates, false == (0,0) is upper left. + message.setValueBoolean("allow_downsample", true); + sendMessage(message); + } + else if(message_name == "size_change") { std::string name = message_in.getValue("name"); S32 width = message_in.getValueS32("width"); diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index afde904be6..24c53638d2 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -88,10 +88,12 @@ public: private: std::string mProfileDir; + std::string mHostLanguage; enum { - INIT_STATE_UNINITIALIZED, // Browser instance hasn't been set up yet + INIT_STATE_UNINITIALIZED, // LLQtWebkit hasn't been set up yet + INIT_STATE_INITIALIZED, // LLQtWebkit has been set up, but no browser window has been created yet. INIT_STATE_NAVIGATING, // Browser instance has been set up and initial navigate to about:blank has been issued INIT_STATE_NAVIGATE_COMPLETE, // initial navigate to about:blank has completed INIT_STATE_WAIT_REDRAW, // First real navigate begin has been received, waiting for page changed event to start handling redraws @@ -191,13 +193,6 @@ private: if ( mInitState > INIT_STATE_UNINITIALIZED ) return true; - // not enough information to initialize the browser yet. - if ( mWidth < 0 || mHeight < 0 || mDepth < 0 || - mTextureWidth < 0 || mTextureHeight < 0 ) - { - return false; - }; - // set up directories char cwd[ FILENAME_MAX ]; // I *think* this is defined on all platforms we use if (NULL == getcwd( cwd, FILENAME_MAX - 1 )) @@ -208,12 +203,12 @@ private: std::string application_dir = std::string( cwd ); #if LL_DARWIN - // When running under the Xcode debugger, there's a setting called "Break on Debugger()/DebugStr()" which defaults to being turned on. - // This causes the environment variable USERBREAK to be set to 1, which causes these legacy calls to break into the debugger. - // This wouldn't cause any problems except for the fact that the current release version of the Flash plugin has a call to Debugger() in it - // which gets hit when the plugin is probed by webkit. - // Unsetting the environment variable here works around this issue. - unsetenv("USERBREAK"); + // When running under the Xcode debugger, there's a setting called "Break on Debugger()/DebugStr()" which defaults to being turned on. + // This causes the environment variable USERBREAK to be set to 1, which causes these legacy calls to break into the debugger. + // This wouldn't cause any problems except for the fact that the current release version of the Flash plugin has a call to Debugger() in it + // which gets hit when the plugin is probed by webkit. + // Unsetting the environment variable here works around this issue. + unsetenv("USERBREAK"); #endif #if LL_WINDOWS @@ -254,66 +249,92 @@ private: bool result = LLQtWebKit::getInstance()->init( application_dir, component_dir, mProfileDir, native_window_handle ); if ( result ) { - // create single browser window - mBrowserWindowId = LLQtWebKit::getInstance()->createBrowserWindow( mWidth, mHeight ); + mInitState = INIT_STATE_INITIALIZED; + + return true; + }; + + return false; + }; + + //////////////////////////////////////////////////////////////////////////////// + // + bool initBrowserWindow() + { + // already initialized + if ( mInitState > INIT_STATE_INITIALIZED ) + return true; + + // not enough information to initialize the browser yet. + if ( mWidth < 0 || mHeight < 0 || mDepth < 0 || + mTextureWidth < 0 || mTextureHeight < 0 ) + { + return false; + }; + + // Set up host language before creating browser window + if(!mHostLanguage.empty()) + { + LLQtWebKit::getInstance()->setHostLanguage(mHostLanguage); + } + + // create single browser window + mBrowserWindowId = LLQtWebKit::getInstance()->createBrowserWindow( mWidth, mHeight ); #if LL_WINDOWS - // Enable plugins - LLQtWebKit::getInstance()->enablePlugins(true); + // Enable plugins + LLQtWebKit::getInstance()->enablePlugins(true); #elif LL_DARWIN - // Enable plugins - LLQtWebKit::getInstance()->enablePlugins(true); + // Enable plugins + LLQtWebKit::getInstance()->enablePlugins(true); #elif LL_LINUX - // Enable plugins - LLQtWebKit::getInstance()->enablePlugins(true); + // Enable plugins + LLQtWebKit::getInstance()->enablePlugins(true); #endif - // Enable cookies - LLQtWebKit::getInstance()->enableCookies( true ); + // Enable cookies + LLQtWebKit::getInstance()->enableCookies( true ); - // tell LLQtWebKit about the size of the browser window - LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight ); + // tell LLQtWebKit about the size of the browser window + LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight ); - // observer events that LLQtWebKit emits - LLQtWebKit::getInstance()->addObserver( mBrowserWindowId, this ); + // observer events that LLQtWebKit emits + LLQtWebKit::getInstance()->addObserver( mBrowserWindowId, this ); - // append details to agent string - LLQtWebKit::getInstance()->setBrowserAgentId( "LLPluginMedia Web Browser" ); + // append details to agent string + LLQtWebKit::getInstance()->setBrowserAgentId( "LLPluginMedia Web Browser" ); #if !LL_QTWEBKIT_USES_PIXMAPS - // don't flip bitmap - LLQtWebKit::getInstance()->flipWindow( mBrowserWindowId, true ); + // don't flip bitmap + LLQtWebKit::getInstance()->flipWindow( mBrowserWindowId, true ); #endif // !LL_QTWEBKIT_USES_PIXMAPS - - // set background color - // convert background color channels from [0.0, 1.0] to [0, 255]; - LLQtWebKit::getInstance()->setBackgroundColor( mBrowserWindowId, int(mBackgroundR * 255.0f), int(mBackgroundG * 255.0f), int(mBackgroundB * 255.0f) ); - - // Set state _before_ starting the navigate, since onNavigateBegin might get called before this call returns. - setInitState(INIT_STATE_NAVIGATING); - - // Don't do this here -- it causes the dreaded "white flash" when loading a browser instance. - // FIXME: Re-added this because navigating to a "page" initializes things correctly - especially - // for the HTTP AUTH dialog issues (DEV-41731). Will fix at a later date. - // Build a data URL like this: "data:text/html,%3Chtml%3E%3Cbody bgcolor=%22#RRGGBB%22%3E%3C/body%3E%3C/html%3E" - // where RRGGBB is the background color in HTML style - std::stringstream url; - - url << "data:text/html,%3Chtml%3E%3Cbody%20bgcolor=%22#"; - // convert background color channels from [0.0, 1.0] to [0, 255]; - url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundR * 255.0f); - url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundG * 255.0f); - url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundB * 255.0f); - url << "%22%3E%3C/body%3E%3C/html%3E"; - - lldebugs << "data url is: " << url.str() << llendl; - - LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, url.str() ); -// LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, "about:blank" ); - - return true; - }; + + // set background color + // convert background color channels from [0.0, 1.0] to [0, 255]; + LLQtWebKit::getInstance()->setBackgroundColor( mBrowserWindowId, int(mBackgroundR * 255.0f), int(mBackgroundG * 255.0f), int(mBackgroundB * 255.0f) ); + + // Set state _before_ starting the navigate, since onNavigateBegin might get called before this call returns. + setInitState(INIT_STATE_NAVIGATING); + + // Don't do this here -- it causes the dreaded "white flash" when loading a browser instance. + // FIXME: Re-added this because navigating to a "page" initializes things correctly - especially + // for the HTTP AUTH dialog issues (DEV-41731). Will fix at a later date. + // Build a data URL like this: "data:text/html,%3Chtml%3E%3Cbody bgcolor=%22#RRGGBB%22%3E%3C/body%3E%3C/html%3E" + // where RRGGBB is the background color in HTML style + std::stringstream url; + + url << "data:text/html,%3Chtml%3E%3Cbody%20bgcolor=%22#"; + // convert background color channels from [0.0, 1.0] to [0, 255]; + url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundR * 255.0f); + url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundG * 255.0f); + url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundB * 255.0f); + url << "%22%3E%3C/body%3E%3C/html%3E"; + + lldebugs << "data url is: " << url.str() << llendl; + + LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, url.str() ); +// LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, "about:blank" ); - return false; - }; + return true; + } void setVolume(F32 vol); @@ -676,9 +697,6 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) { if(message_name == "init") { - std::string user_data_path = message_in.getValue("user_data_path"); // n.b. always has trailing platform-specific dir-delimiter - mProfileDir = user_data_path + "browser_profile"; - LLPluginMessage message("base", "init_response"); LLSD versions = LLSD::emptyMap(); versions[LLPLUGIN_MESSAGE_CLASS_BASE] = LLPLUGIN_MESSAGE_CLASS_BASE_VERSION; @@ -690,23 +708,6 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) plugin_version += LLQtWebKit::getInstance()->getVersion(); message.setValue("plugin_version", plugin_version); sendMessage(message); - - // Plugin gets to decide the texture parameters to use. - mDepth = 4; - - message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); - message.setValueS32("default_width", 1024); - message.setValueS32("default_height", 1024); - message.setValueS32("depth", mDepth); - message.setValueU32("internalformat", GL_RGBA); -#if LL_QTWEBKIT_USES_PIXMAPS - message.setValueU32("format", GL_BGRA_EXT); // I hope this isn't system-dependant... is it? If so, we'll have to check the root window's pixel layout or something... yuck. -#else - message.setValueU32("format", GL_RGBA); -#endif // LL_QTWEBKIT_USES_PIXMAPS - message.setValueU32("type", GL_UNSIGNED_BYTE); - message.setValueBoolean("coords_opengl", true); - sendMessage(message); } else if(message_name == "idle") { @@ -771,7 +772,7 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) // std::cerr << "MediaPluginWebKit::receiveMessage: unknown base message: " << message_name << std::endl; } } - else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME) + else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME) { if(message_name == "set_volume") { @@ -781,7 +782,50 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) } else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) { - if(message_name == "size_change") + if(message_name == "init") + { + // This is the media init message -- all necessary data for initialization should have been received. + if(initBrowser()) + { + + // Plugin gets to decide the texture parameters to use. + mDepth = 4; + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); + message.setValueS32("default_width", 1024); + message.setValueS32("default_height", 1024); + message.setValueS32("depth", mDepth); + message.setValueU32("internalformat", GL_RGBA); + #if LL_QTWEBKIT_USES_PIXMAPS + message.setValueU32("format", GL_BGRA_EXT); // I hope this isn't system-dependant... is it? If so, we'll have to check the root window's pixel layout or something... yuck. + #else + message.setValueU32("format", GL_RGBA); + #endif // LL_QTWEBKIT_USES_PIXMAPS + message.setValueU32("type", GL_UNSIGNED_BYTE); + message.setValueBoolean("coords_opengl", true); + sendMessage(message); + } + else + { + // if initialization failed, we're done. + mDeleteMe = true; + } + + } + else if(message_name == "set_user_data_path") + { + std::string user_data_path = message_in.getValue("path"); // n.b. always has trailing platform-specific dir-delimiter + mProfileDir = user_data_path + "browser_profile"; + + // FIXME: Should we do anything with this if it comes in after the browser has been initialized? + } + else if(message_name == "set_language_code") + { + mHostLanguage = message_in.getValue("language"); + + // FIXME: Should we do anything with this if it comes in after the browser has been initialized? + } + else if(message_name == "size_change") { std::string name = message_in.getValue("name"); S32 width = message_in.getValueS32("width"); @@ -803,29 +847,36 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) mWidth = width; mHeight = height; - // initialize (only gets called once) - initBrowser(); - - // size changed so tell the browser - LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight ); - -// std::cerr << "webkit plugin: set size to " << mWidth << " x " << mHeight -// << ", rowspan is " << LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) << std::endl; - - S32 real_width = LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) / LLQtWebKit::getInstance()->getBrowserDepth(mBrowserWindowId); - - // The actual width the browser will be drawing to is probably smaller... let the host know by modifying texture_width in the response. - if(real_width <= texture_width) + if(initBrowserWindow()) { - texture_width = real_width; + + // size changed so tell the browser + LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight ); + + // std::cerr << "webkit plugin: set size to " << mWidth << " x " << mHeight + // << ", rowspan is " << LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) << std::endl; + + S32 real_width = LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) / LLQtWebKit::getInstance()->getBrowserDepth(mBrowserWindowId); + + // The actual width the browser will be drawing to is probably smaller... let the host know by modifying texture_width in the response. + if(real_width <= texture_width) + { + texture_width = real_width; + } + else + { + // This won't work -- it'll be bigger than the allocated memory. This is a fatal error. + // std::cerr << "Fatal error: browser rowbytes greater than texture width" << std::endl; + mDeleteMe = true; + return; + } } else { - // This won't work -- it'll be bigger than the allocated memory. This is a fatal error. -// std::cerr << "Fatal error: browser rowbytes greater than texture width" << std::endl; + // Setting up the browser window failed. This is a fatal error. mDeleteMe = true; - return; } + mTextureWidth = texture_width; mTextureHeight = texture_height; diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif Binary files differnew file mode 100644 index 0000000000..f366026c33 --- /dev/null +++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif Binary files differnew file mode 100644 index 0000000000..e9e6a20cd9 --- /dev/null +++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif Binary files differnew file mode 100644 index 0000000000..bea3d9d442 --- /dev/null +++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp index 844f0ac509..6842d3dc74 100644 --- a/indra/newview/llfloaterinventory.cpp +++ b/indra/newview/llfloaterinventory.cpp @@ -64,42 +64,6 @@ BOOL LLFloaterInventory::postBuild() return TRUE; } - -void LLFloaterInventory::draw() -{ - updateTitle(); - LLFloater::draw(); -} - -void LLFloaterInventory::updateTitle() -{ - LLLocale locale(LLLocale::USER_LOCALE); - std::string item_count_string; - LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); - - LLStringUtil::format_map_t string_args; - string_args["[ITEM_COUNT]"] = item_count_string; - string_args["[FILTER]"] = mPanelMainInventory->getFilterText(); - - if (LLInventoryModel::backgroundFetchActive()) - { - setTitle(getString("TitleFetching", string_args)); - } - else if (LLInventoryModel::isEverythingFetched()) - { - setTitle(getString("TitleCompleted", string_args)); - } - else - { - setTitle(getString("Title")); - } -} - -void LLFloaterInventory::changed(U32 mask) -{ - updateTitle(); -} - LLInventoryPanel* LLFloaterInventory::getPanel() { if (mPanelMainInventory) diff --git a/indra/newview/llfloaterinventory.h b/indra/newview/llfloaterinventory.h index b661c391a7..473d2b189d 100644 --- a/indra/newview/llfloaterinventory.h +++ b/indra/newview/llfloaterinventory.h @@ -63,13 +63,9 @@ public: static void cleanup(); // Inherited functionality - /*virtual*/ void changed(U32 mask); - /*virtual*/ void draw(); /*virtual*/ void onOpen(const LLSD& key); LLInventoryPanel* getPanel(); -protected: - void updateTitle(); private: LLPanelMainInventory* mPanelMainInventory; }; diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 8bffe9bf57..e998d10fcc 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -110,6 +110,9 @@ const F32 MAX_USER_FAR_CLIP = 512.f; const F32 MIN_USER_FAR_CLIP = 64.f; +//control value for middle mouse as talk2push button +const static std::string MIDDLE_MOUSE_CV = "MiddleMouse"; + class LLVoiceSetKeyDialog : public LLModalDialog { public: @@ -1008,9 +1011,17 @@ void LLFloaterPreference::setKey(KEY key) void LLFloaterPreference::onClickSetMiddleMouse() { - childSetValue("modifier_combo", "MiddleMouse"); + LLUICtrl* p2t_line_editor = getChild<LLUICtrl>("modifier_combo"); + // update the control right away since we no longer wait for apply - getChild<LLUICtrl>("modifier_combo")->onCommit(); + p2t_line_editor->setControlValue(MIDDLE_MOUSE_CV); + + //push2talk button "middle mouse" control value is in English, need to localize it for presentation + LLPanel* advanced_preferences = dynamic_cast<LLPanel*>(p2t_line_editor->getParent()); + if (advanced_preferences) + { + p2t_line_editor->setValue(advanced_preferences->getString("middle_mouse")); + } } /* void LLFloaterPreference::onClickSkipDialogs() @@ -1302,6 +1313,16 @@ BOOL LLPanelPreference::postBuild() getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2)); } + // Panel Advanced + if (hasChild("modifier_combo")) + { + //localizing if push2talk button is set to middle mouse + if (MIDDLE_MOUSE_CV == childGetValue("modifier_combo").asString()) + { + childSetValue("modifier_combo", getString("middle_mouse")); + } + } + apply(); return true; } diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index d3e3d2b57b..bb4c75d3ac 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -255,11 +255,30 @@ void LLFolderViewItem::refreshFromListener() // temporary attempt to display the inventory folder in the user locale. // mantipov: *NOTE: be sure this code is synchronized with LLFriendCardsManager::findChildFolderUUID // it uses the same way to find localized string - if (LLFolderType::lookupIsProtectedType(preferred_type)) + + // HACK: EXT - 6028 ([HARD CODED]? Inventory > Library > "Accessories" folder) + // Translation of Accessories folder in Library inventory folder + bool accessories = false; + if(mLabel == std::string("Accessories")) + { + //To ensure that Accessories folder is in Library we have to check its parent folder. + //Due to parent LLFolderViewFloder is not set to this item yet we have to check its parent via Inventory Model + LLInventoryCategory* cat = gInventory.getCategory(mListener->getUUID()); + if(cat) + { + const LLUUID& parent_folder_id = cat->getParentUUID(); + accessories = (parent_folder_id == gInventory.getLibraryRootFolderID()); + } + } + + //"Accessories" inventory category has folder type FT_NONE. So, this folder + //can not be detected as protected with LLFolderType::lookupIsProtectedType + if (accessories || LLFolderType::lookupIsProtectedType(preferred_type)) { LLTrans::findString(mLabel, "InvFolder " + mLabel); }; + setToolTip(mLabel); setIcon(mListener->getIcon()); time_t creation_date = mListener->getCreationDate(); if (mCreationDate != creation_date) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index ceeffea1c9..1f918c72ea 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -3808,7 +3808,9 @@ std::string LLGestureBridge::getLabelSuffix() const { if( LLGestureManager::instance().isGestureActive(mUUID) ) { - return LLItemBridge::getLabelSuffix() + " (active)"; + LLStringUtil::format_map_t args; + args["[GESLABEL]"] = LLItemBridge::getLabelSuffix(); + return LLTrans::getString("ActiveGesture", args); } else { @@ -4157,7 +4159,7 @@ std::string LLObjectBridge::getLabelSuffix() const // e.g. "(worn on ...)" / "(attached to ...)" LLStringUtil::format_map_t args; - args["[ATTACHMENT_POINT]"] = attachment_point_name.c_str(); + args["[ATTACHMENT_POINT]"] = LLTrans::getString(attachment_point_name); return LLItemBridge::getLabelSuffix() + LLTrans::getString("WornOnAttachmentPoint", args); } else diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index ec83a1fd6d..d7720b735c 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -293,9 +293,6 @@ void LLInventoryPanel::modelChanged(U32 mask) bridge->clearDisplayName(); view_item->refresh(); - - // Set the new tooltip with the new display name. - view_item->setToolTip(bridge->getDisplayName()); } } } diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 879fbba9cd..4842fcac38 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -534,7 +534,7 @@ void LLLandmarksPanel::initLandmarksInventoryPanel() // subscribe to have auto-rename functionality while creating New Folder mLandmarksInventoryPanel->setSelectCallback(boost::bind(&LLInventoryPanel::onSelectionChange, mLandmarksInventoryPanel, _1, _2)); - initAccordion("tab_landmarks", mLandmarksInventoryPanel, true); + mMyLandmarksAccordionTab = initAccordion("tab_landmarks", mLandmarksInventoryPanel, true); } void LLLandmarksPanel::initMyInventoryPanel() @@ -588,7 +588,7 @@ void LLLandmarksPanel::initLandmarksPanel(LLPlacesInventoryPanel* inventory_list inventory_list->saveFolderState(); } -void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab) +LLAccordionCtrlTab* LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab) { LLAccordionCtrlTab* accordion_tab = getChild<LLAccordionCtrlTab>(accordion_tab_name); @@ -596,6 +596,7 @@ void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPl accordion_tab->setDropDownStateChangedCallback( boost::bind(&LLLandmarksPanel::onAccordionExpandedCollapsed, this, _2, inventory_list)); accordion_tab->setDisplayChildren(expand_tab); + return accordion_tab; } void LLLandmarksPanel::onAccordionExpandedCollapsed(const LLSD& param, LLPlacesInventoryPanel* inventory_list) @@ -776,6 +777,11 @@ void LLLandmarksPanel::onAddAction(const LLSD& userdata) const //in case My Landmarks tab is completely empty (thus cannot be determined as being selected) menu_create_inventory_item(mLandmarksInventoryPanel->getRootFolder(), NULL, LLSD("category"), gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK)); + + if (mMyLandmarksAccordionTab) + { + mMyLandmarksAccordionTab->changeOpenClose(false); + } } } } diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h index 2b46ba9933..c9217a4b2f 100644 --- a/indra/newview/llpanellandmarks.h +++ b/indra/newview/llpanellandmarks.h @@ -112,7 +112,7 @@ private: void initMyInventoryPanel(); void initLibraryInventoryPanel(); void initLandmarksPanel(LLPlacesInventoryPanel* inventory_list); - void initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab); + LLAccordionCtrlTab* initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab); void onAccordionExpandedCollapsed(const LLSD& param, LLPlacesInventoryPanel* inventory_list); void deselectOtherThan(const LLPlacesInventoryPanel* inventory_list); @@ -169,6 +169,8 @@ private: typedef std::vector<LLAccordionCtrlTab*> accordion_tabs_t; accordion_tabs_t mAccordionTabs; + + LLAccordionCtrlTab* mMyLandmarksAccordionTab; }; #endif //LL_LLPANELLANDMARKS_H diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 421c9df9a1..d40141c91d 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -44,6 +44,7 @@ #include "llfiltereditor.h" #include "llfloaterreg.h" #include "llpreviewtexture.h" +#include "llresmgr.h" #include "llscrollcontainer.h" #include "llsdserialize.h" #include "llspinctrl.h" @@ -538,7 +539,7 @@ BOOL LLPanelMainInventory::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, // virtual void LLPanelMainInventory::changed(U32) { - // empty, but must have this defined for abstract base class. + updateItemcountText(); } @@ -550,6 +551,34 @@ void LLPanelMainInventory::draw() mFilterEditor->setText(mFilterSubString); } LLPanel::draw(); + updateItemcountText(); +} + +void LLPanelMainInventory::updateItemcountText() +{ + LLLocale locale(LLLocale::USER_LOCALE); + std::string item_count_string; + LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); + + LLStringUtil::format_map_t string_args; + string_args["[ITEM_COUNT]"] = item_count_string; + string_args["[FILTER]"] = getFilterText(); + + std::string text = ""; + + if (LLInventoryModel::backgroundFetchActive()) + { + text = getString("ItemcountFetching", string_args); + } + else if (LLInventoryModel::isEverythingFetched()) + { + text = getString("ItemcountCompleted", string_args); + } + else + { + text = getString("ItemcountUnknown"); + } + childSetText("ItemcountText",text); } void LLPanelMainInventory::setFilterTextFromFilter() diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h index d9ea0da2da..b43e057f83 100644 --- a/indra/newview/llpanelmaininventory.h +++ b/indra/newview/llpanelmaininventory.h @@ -113,7 +113,8 @@ protected: void setSortBy(const LLSD& userdata); void saveTexture(const LLSD& userdata); bool isSaveTextureEnabled(const LLSD& userdata); - + void updateItemcountText(); + private: LLFloaterInventoryFinder* getFinder(); diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index 9e92ee337f..7505581904 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -1578,7 +1578,7 @@ void LLPanelObjectInventory::reset() p.title = "task inventory"; p.task_id = getTaskUUID(); p.parent_panel = this; - p.tool_tip= p.name; + p.tool_tip= LLTrans::getString("PanelContentsTooltip"); mFolders = LLUICtrlFactory::create<LLFolderView>(p); // this ensures that we never say "searching..." or "no items found" mFolders->getFilter()->setShowFolderState(LLInventoryFilter::SHOW_ALL_FOLDERS); diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp index 6cd8a78b25..43913f3632 100644 --- a/indra/newview/lltextureview.cpp +++ b/indra/newview/lltextureview.cpp @@ -660,8 +660,9 @@ struct compare_decode_pair struct KillView { - void operator()(LLView* viewp) const + void operator()(LLView* viewp) { + viewp->getParent()->removeChild(viewp); viewp->die(); } }; @@ -676,8 +677,12 @@ void LLTextureView::draw() for_each(mTextureBars.begin(), mTextureBars.end(), KillView()); mTextureBars.clear(); - delete mGLTexMemBar; - mGLTexMemBar = 0; + if (mGLTexMemBar) + { + removeChild(mGLTexMemBar); + mGLTexMemBar->die(); + mGLTexMemBar = 0; + } typedef std::multiset<decode_pair_t, compare_decode_pair > display_list_t; display_list_t display_image_list; diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 2f4a69a53c..d15db536e6 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -412,24 +412,24 @@ ECursorType cursor_from_object(LLViewerObject* object) case CLICK_ACTION_SIT: if ((gAgent.getAvatarObject() != NULL) && (!gAgent.getAvatarObject()->isSitting())) // not already sitting? { - cursor = UI_CURSOR_HAND; + cursor = UI_CURSOR_TOOLSIT; } break; case CLICK_ACTION_BUY: - cursor = UI_CURSOR_HAND; + cursor = UI_CURSOR_TOOLBUY; break; case CLICK_ACTION_OPEN: // Open always opens the parent. if (parent && parent->allowOpen()) { - cursor = UI_CURSOR_HAND; + cursor = UI_CURSOR_TOOLOPEN; } break; case CLICK_ACTION_PAY: if ((object && object->flagTakesMoney()) || (parent && parent->flagTakesMoney())) { - cursor = UI_CURSOR_HAND; + cursor = UI_CURSOR_TOOLBUY; } break; case CLICK_ACTION_ZOOM: @@ -964,7 +964,7 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l } } } - + // Avoid showing tip over media that's displaying unless it's for sale // also check the primary node since sometimes it can have an action even though @@ -972,9 +972,9 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l bool needs_tip = (!is_media_displaying || for_sale) && - (has_media || - needs_tooltip(nodep) || - needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode())); + (has_media || + needs_tooltip(nodep) || + needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode())); if (show_all_object_tips || needs_tip) { diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 64dcd62a6a..b9509a98f5 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1258,8 +1258,9 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_ { LLPluginClassMedia* media_source = new LLPluginClassMedia(owner); media_source->setSize(default_width, default_height); - std::string language_code = LLUI::getLanguage(); - if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"), user_data_path, language_code)) + media_source->setUserDataPath(user_data_path); + media_source->setLanguageCode(LLUI::getLanguage()); + if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) { return media_source; } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 1d58daba2c..5c40d02f8d 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -86,6 +86,7 @@ #include "lltoolmgr.h" #include "lltoolpie.h" #include "lltoolselectland.h" +#include "lltrans.h" #include "llviewergenericmessage.h" #include "llviewerhelp.h" #include "llviewermenufile.h" // init_menu_file() @@ -7047,7 +7048,7 @@ LLVOAvatar* find_avatar_from_object( const LLUUID& object_id ) void handle_disconnect_viewer(void *) { - LLAppViewer::instance()->forceDisconnect("Testing viewer disconnect"); + LLAppViewer::instance()->forceDisconnect(LLTrans::getString("TestingDisconnect")); } void force_error_breakpoint(void *) diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index eed3f25231..bd0012057c 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -3080,7 +3080,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) << x << ":" << y << " current pos " << gAgent.getPositionGlobal() << LL_ENDL; - LLAppViewer::instance()->forceDisconnect("You were sent to an invalid region."); + LLAppViewer::instance()->forceDisconnect(LLTrans::getString("SentToInvalidRegion")); return; } diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index 2c5c0a37e8..b967436df6 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -210,25 +210,29 @@ void LLViewerParcelMedia::play(LLParcel* parcel) // A new impl will be created below. } } - - if(!sMediaImpl) + + // Don't ever try to play if the media type is set to "none/none" + if(stricmp(mime_type.c_str(), "none/none") != 0) { - LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL; - - // There is no media impl, make a new one - sMediaImpl = LLViewerMedia::newMediaImpl( - placeholder_texture_id, - media_width, - media_height, - media_auto_scale, - media_loop); - sMediaImpl->setIsParcelMedia(true); - sMediaImpl->navigateTo(media_url, mime_type, true); - } + if(!sMediaImpl) + { + LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL; + + // There is no media impl, make a new one + sMediaImpl = LLViewerMedia::newMediaImpl( + placeholder_texture_id, + media_width, + media_height, + media_auto_scale, + media_loop); + sMediaImpl->setIsParcelMedia(true); + sMediaImpl->navigateTo(media_url, mime_type, true); + } - //LLFirstUse::useMedia(); + //LLFirstUse::useMedia(); - LLViewerParcelMediaAutoPlay::playStarted(); + LLViewerParcelMediaAutoPlay::playStarted(); + } } // static @@ -312,11 +316,14 @@ std::string LLViewerParcelMedia::getURL() if(sMediaImpl.notNull()) url = sMediaImpl->getMediaURL(); - if (url.empty()) - url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaCurrentURL(); - - if (url.empty()) - url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaURL(); + if(stricmp(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaType().c_str(), "none/none") != 0) + { + if (url.empty()) + url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaCurrentURL(); + + if (url.empty()) + url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaURL(); + } return url; } diff --git a/indra/newview/llviewerparcelmediaautoplay.cpp b/indra/newview/llviewerparcelmediaautoplay.cpp index ad2723b66b..f55d6d89c4 100644 --- a/indra/newview/llviewerparcelmediaautoplay.cpp +++ b/indra/newview/llviewerparcelmediaautoplay.cpp @@ -86,6 +86,7 @@ BOOL LLViewerParcelMediaAutoPlay::tick() LLParcel *this_parcel = NULL; LLViewerRegion *this_region = NULL; std::string this_media_url; + std::string this_media_type; LLUUID this_media_texture_id; S32 this_parcel_id = 0; LLUUID this_region_id; @@ -101,7 +102,9 @@ BOOL LLViewerParcelMediaAutoPlay::tick() if (this_parcel) { - this_media_url = std::string(this_parcel->getMediaURL()); + this_media_url = this_parcel->getMediaURL(); + + this_media_type = this_parcel->getMediaType(); this_media_texture_id = this_parcel->getMediaID(); @@ -118,14 +121,15 @@ BOOL LLViewerParcelMediaAutoPlay::tick() mLastRegionID = this_region_id; } - mTimeInParcel += mPeriod; // increase mTimeInParcel by the amount of time between ticks + mTimeInParcel += mPeriod; // increase mTimeInParcel by the amount of time between ticks - if ((!mPlayed) && // if we've never played - (mTimeInParcel > AUTOPLAY_TIME) && // and if we've been here for so many seconds - (this_media_url.size() != 0) && // and if the parcel has media - (LLViewerParcelMedia::sMediaImpl.isNull())) // and if the media is not already playing + if ((!mPlayed) && // if we've never played + (mTimeInParcel > AUTOPLAY_TIME) && // and if we've been here for so many seconds + (!this_media_url.empty()) && // and if the parcel has media + (stricmp(this_media_type.c_str(), "none/none") != 0) && + (LLViewerParcelMedia::sMediaImpl.isNull())) // and if the media is not already playing { - if (this_media_texture_id.notNull()) // and if the media texture is good + if (this_media_texture_id.notNull()) // and if the media texture is good { LLViewerMediaTexture *image = LLViewerTextureManager::getMediaTexture(this_media_texture_id, FALSE) ; diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 32c24b3ebd..98ca76ed01 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -489,7 +489,7 @@ BOOL LLVOAvatarSelf::buildMenus() { LLMenuItemCallGL::Params item_params; item_params.name = attachment->getName(); - item_params.label = attachment->getName(); + item_params.label = LLTrans::getString(attachment->getName()); item_params.on_click.function_name = "Object.AttachToAvatar"; item_params.on_click.parameter = attach_index; item_params.on_enable.function_name = "Object.EnableWear"; diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index d7e5b464a6..19f303ab88 100644 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -45,6 +45,7 @@ #include "llhttpnode.h" #include "llregionhandle.h" #include "llsurface.h" +#include "lltrans.h" #include "llviewercamera.h" #include "llviewertexture.h" #include "llviewertexturelist.h" @@ -258,7 +259,7 @@ void LLWorld::removeRegion(const LLHost &host) llwarns << "gFrameTimeSeconds " << gFrameTimeSeconds << llendl; llwarns << "Disabling region " << regionp->getName() << " that agent is in!" << llendl; - LLAppViewer::instance()->forceDisconnect("You have been disconnected from the region you were in."); + LLAppViewer::instance()->forceDisconnect(LLTrans::getString("YouHaveBeenDisconnected")); return; } diff --git a/indra/newview/res-sdl/ll_icon.BMP b/indra/newview/res-sdl/ll_icon.BMP Binary files differindex 4a44aafbfa..6f9366df41 100644 --- a/indra/newview/res-sdl/ll_icon.BMP +++ b/indra/newview/res-sdl/ll_icon.BMP diff --git a/indra/newview/res/ll_icon.png b/indra/newview/res/ll_icon.png Binary files differindex 414b703111..ae573b3874 100644 --- a/indra/newview/res/ll_icon.png +++ b/indra/newview/res/ll_icon.png diff --git a/indra/newview/res/toolbuy.cur b/indra/newview/res/toolbuy.cur Binary files differnew file mode 100644 index 0000000000..7fd552a78e --- /dev/null +++ b/indra/newview/res/toolbuy.cur diff --git a/indra/newview/res/toolopen.cur b/indra/newview/res/toolopen.cur Binary files differnew file mode 100644 index 0000000000..1562f5bc95 --- /dev/null +++ b/indra/newview/res/toolopen.cur diff --git a/indra/newview/res/toolsit.cur b/indra/newview/res/toolsit.cur Binary files differnew file mode 100644 index 0000000000..a1f99cfe6d --- /dev/null +++ b/indra/newview/res/toolsit.cur diff --git a/indra/newview/res/viewerRes.rc b/indra/newview/res/viewerRes.rc index 38291e45c9..7a965cf57e 100644 --- a/indra/newview/res/viewerRes.rc +++ b/indra/newview/res/viewerRes.rc @@ -2,19 +2,12 @@ // #include "resource.h" -#ifdef IDC_STATIC -#undef IDC_STATIC -#endif -#define IDC_STATIC (-1) -#include "winresrc.h" - #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // -// Commented out because it only compiles if you have MFC installed. -//#include "winres.h" +#include "winres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -34,18 +27,18 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // TEXTINCLUDE // -1 TEXTINCLUDE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE +2 TEXTINCLUDE BEGIN "#include ""winres.h""\r\n" "\0" END -3 TEXTINCLUDE +3 TEXTINCLUDE BEGIN "\r\n" "\0" @@ -84,9 +77,8 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO +GUIDELINES DESIGNINFO BEGIN - "SPLASHSCREEN", DIALOG BEGIN LEFTMARGIN, 7 @@ -127,6 +119,9 @@ TOOLPIPETTE CURSOR "toolpipette.cur" TOOLPLAY CURSOR "toolplay.cur" TOOLPAUSE CURSOR "toolpause.cur" TOOLMEDIAOPEN CURSOR "toolmediaopen.cur" +TOOLOPEN CURSOR "toolopen.cur" +TOOLSIT CURSOR "toolsit.cur" +TOOLBUY CURSOR "toolbuy.cur" ///////////////////////////////////////////////////////////////////////////// // @@ -134,8 +129,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,0,0,200030 - PRODUCTVERSION 2,0,0,200030 + FILEVERSION 2,0,0,3422 + PRODUCTVERSION 2,0,0,3422 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -166,12 +161,6 @@ BEGIN END END - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/skins/default/textures/icons/SL_Logo.png b/indra/newview/skins/default/textures/icons/SL_Logo.png Binary files differindex c9fbde987a..8342d7cfee 100644 --- a/indra/newview/skins/default/textures/icons/SL_Logo.png +++ b/indra/newview/skins/default/textures/icons/SL_Logo.png diff --git a/indra/newview/skins/default/xui/de/panel_profile.xml b/indra/newview/skins/default/xui/de/panel_profile.xml index cb598f89f6..cda2788e40 100644 --- a/indra/newview/skins/default/xui/de/panel_profile.xml +++ b/indra/newview/skins/default/xui/de/panel_profile.xml @@ -41,10 +41,10 @@ </scroll_container> </layout_panel> <layout_panel name="profile_buttons_panel"> - <button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an" width="109"/> - <button label="IM" name="im" tool_tip="Instant Messenger öffnen" width="24"/> + <button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an"/> + <button label="IM" name="im" tool_tip="Instant Messenger öffnen"/> <button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/> - <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen" width="36"/> + <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/> <button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/> <button label="▼" name="overflow_btn" tool_tip="Dem Einwohner Geld geben oder Inventar an den Einwohner schicken"/> </layout_panel> diff --git a/indra/newview/skins/default/xui/en/floater_inventory.xml b/indra/newview/skins/default/xui/en/floater_inventory.xml index 0d381fe5cb..ba2e0d3277 100644 --- a/indra/newview/skins/default/xui/en/floater_inventory.xml +++ b/indra/newview/skins/default/xui/en/floater_inventory.xml @@ -14,22 +14,6 @@ single_instance="false" title="MY INVENTORY" width="467"> - <floater.string - name="Title"> - MY INVENTORY - </floater.string> - <floater.string - name="TitleFetching"> - MY INVENTORY (Fetching [ITEM_COUNT] Items...) [FILTER] - </floater.string> - <floater.string - name="TitleCompleted"> - MY INVENTORY ([ITEM_COUNT] Items) [FILTER] - </floater.string> - <floater.string - name="Fetched"> - Fetched - </floater.string> <panel bottom="560" class="panel_main_inventory" diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml index d7a7daf30c..b5a3764e73 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences.xml @@ -10,7 +10,7 @@ help_topic="preferences" single_instance="true" title="PREFERENCES" - width="620"> + width="658"> <button follows="right|bottom" height="23" @@ -48,7 +48,7 @@ tab_width="115" tab_padding_right="5" top="21" - width="620"> + width="658"> <panel class="panel_preference" filename="panel_preferences_general.xml" diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 12d169b70a..2235b84869 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -741,7 +741,7 @@ halign="center" left="0" name="Object Info Tabs" - tab_max_width="54" + tab_max_width="100" tab_min_width="40" tab_position="top" tab_height="25" diff --git a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml index 1e2e74f882..876ff9961b 100644 --- a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml +++ b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml @@ -69,7 +69,7 @@ name="last_interaction" text_color="LtGray_50" value="0s" - width="24" /> + width="35" /> <button follows="right" height="16" diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml index 50983d2976..c7768c6eb6 100644 --- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml @@ -10,9 +10,34 @@ name="main inventory panel" width="330"> <panel.string - name="Title"> - Things + name="Itemcount"> </panel.string> + <panel.string + name="ItemcountFetching"> + Fetching [ITEM_COUNT] Items... [FILTER] + </panel.string> + <panel.string + name="ItemcountCompleted"> + [ITEM_COUNT] Items [FILTER] + </panel.string> + <panel.string + name="ItemcountUnknown"> + + </panel.string> + <text + type="string" + length="1" + follows="left|top" + height="13" + layout="topleft" + left="12" + name="ItemcountText" + font="SansSerifMedium" + text_color="EmphasisColor" + top_pad="0" + width="300"> + Items: + </text> <menu_bar bg_visible="false" follows="left|top|right" @@ -21,8 +46,8 @@ left="10" mouse_opaque="false" name="Inventory Menu" - top="0" - visible="true" + top="+10" + visible="true" width="290"> <menu height="101" @@ -377,30 +402,30 @@ <filter_editor text_pad_left="10" follows="left|top|right" - height="23" + height="23" label="Filter Inventory" layout="topleft" left="10" -max_length="300" + max_length="300" name="inventory search editor" - top="26" + top="+31" width="303" /> <tab_container - bg_opaque_color="DkGray2" + bg_opaque_color="DkGray2" bg_alpha_color="DkGray2" background_visible="true" background_opaque="true" -follows="all" -halign="center" - height="305" - layout="topleft" - left="6" - name="inventory filter tabs" - tab_height="30" - tab_position="top" - tab_min_width="100" - top_pad="10" - width="315"> + follows="all" + halign="center" + height="300" + layout="topleft" + left="6" + name="inventory filter tabs" + tab_height="30" + tab_position="top" + tab_min_width="100" + top_pad="10" + width="315"> <inventory_panel bg_opaque_color="DkGray2" bg_alpha_color="DkGray2" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml index 4be4d6b432..c658e0de6f 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml @@ -13,6 +13,10 @@ name="aspect_ratio_text"> [NUM]:[DEN] </panel.string> + <panel.string + name="middle_mouse"> + Middle Mouse + </panel.string> <icon follows="left|top" height="18" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml index 188fd3b7bc..516457dd93 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml @@ -51,13 +51,13 @@ Always show: </text> <scroll_list - follows="top|left" + follows="top|left|right" height="140" layout="topleft" left="10" multi_select="true" name="enabled_popups" - width="475" /> + width="495" /> <button enabled_control="FirstSelectedDisabledPopups" follows="top|left" @@ -99,11 +99,11 @@ Never show: </text> <scroll_list - follows="top|left" + follows="top|left|right" height="140" layout="topleft" left="10" multi_select="true" name="disabled_popups" - width="475" /> + width="495" /> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml index d11aebe943..e667fa9a2b 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml @@ -365,12 +365,12 @@ use_ellipses="false" hover="false" commit_on_focus_lost = "true" - follows="left|top" + follows="left|top|right" height="60" layout="topleft" left="50" name="busy_response" - width="440" + width="450" word_wrap="true"> log_in_to_change </text_editor> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 111daec242..3a766bb798 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -56,7 +56,9 @@ <string name="SavingSettings">Saving your settings...</string> <string name="LoggingOut">Logging out...</string> <string name="ShuttingDown">Shutting down...</string> - + <string name="YouHaveBeenDisconnected">You have been disconnected from the region you were in.</string> + <string name="SentToInvalidRegion">You were sent to an invalid region.</string> + <string name="TestingDisconnect">Testing viewer disconnect</string> <!-- Tooltip, lltooltipview.cpp --> <string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar --> @@ -79,6 +81,12 @@ <string name="TooltipHttpUrl">Click to view this web page</string> <string name="TooltipSLURL">Click to view this location's information</string> <string name="TooltipAgentUrl">Click to view this Resident's profile</string> + <string name="TooltipAgentMute">Click to mute this Resident</string> + <string name="TooltipAgentUnmute">Click to unmute this Resident</string> + <string name="TooltipAgentIM">Click to IM this Resident</string> + <string name="TooltipAgentPay">Click to Pay this Resident</string> + <string name="TooltipAgentOfferTeleport">Click to offer a teleport request to this Resident</string> + <string name="TooltipAgentRequestFriend">Click to send a friend request to this Resident</string> <string name="TooltipGroupUrl">Click to view this group's description</string> <string name="TooltipEventUrl">Click to view this event's description</string> <string name="TooltipClassifiedUrl">Click to view this classified</string> @@ -95,6 +103,14 @@ <string name="SLurlLabelTeleport">Teleport to</string> <string name="SLurlLabelShowOnMap">Show Map for</string> + <!-- label strings for secondlife:///app/agent SLapps --> + <string name="SLappAgentMute">Mute</string> + <string name="SLappAgentUnmute">Unmute</string> + <string name="SLappAgentIM">IM</string> + <string name="SLappAgentPay">Pay</string> + <string name="SLappAgentOfferTeleport">Offer Teleport to </string> + <string name="SLappAgentRequestFriend">Friend Request </string> + <!-- ButtonToolTips, llfloater.cpp --> <string name="BUTTON_CLOSE_DARWIN">Close (⌘W)</string> <string name="BUTTON_CLOSE_WIN">Close (Ctrl+W)</string> @@ -1836,6 +1852,7 @@ Clears (deletes) the media and all params from the given face. <string name="LoadingContents">Loading contents...</string> <string name="NoContents">No contents</string> <string name="WornOnAttachmentPoint" value=" (worn on [ATTACHMENT_POINT])" /> + <string name="ActiveGesture" value="[GESLABEL] (active)"/> <!-- Inventory permissions --> <string name="PermYes">Yes</string> <string name="PermNo">No</string> @@ -1892,6 +1909,7 @@ Clears (deletes) the media and all params from the given face. <string name="InvFolder favorite">Favorites</string> <string name="InvFolder Current Outfit">Current Outfit</string> <string name="InvFolder My Outfits">My Outfits</string> + <string name="InvFolder Accessories">Accessories</string> <!-- are used for Friends and Friends/All folders in Inventory "Calling cards" folder. See EXT-694--> <string name="InvFolder Friends">Friends</string> @@ -2121,6 +2139,7 @@ Clears (deletes) the media and all params from the given face. <!-- panel contents --> <string name="PanelContentsNewScript">New Script</string> + <string name="PanelContentsTooltip">Content of object</string> <!-- panel preferences general --> <string name="BusyModeResponseDefault">The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing.</string> diff --git a/indra/newview/skins/default/xui/fr/panel_profile.xml b/indra/newview/skins/default/xui/fr/panel_profile.xml index 8cb4641937..f801aee312 100644 --- a/indra/newview/skins/default/xui/fr/panel_profile.xml +++ b/indra/newview/skins/default/xui/fr/panel_profile.xml @@ -42,8 +42,8 @@ </layout_panel> <layout_panel name="profile_buttons_panel"> <button label="Devenir amis" name="add_friend" tool_tip="Proposer à un résident de devenir votre ami"/> - <button label="IM" name="im" tool_tip="Ouvrir une session IM" width="30"/> - <button label="Appeler" name="call" tool_tip="Appeler ce résident" width="60"/> + <button label="IM" name="im" tool_tip="Ouvrir une session IM"/> + <button label="Appeler" name="call" tool_tip="Appeler ce résident"/> <button label="Carte" name="show_on_map_btn" tool_tip="Afficher le résident sur la carte"/> <button label="Téléporter" name="teleport" tool_tip="Proposez une téléportation"/> <button label="▼" name="overflow_btn" tool_tip="Payer ou partager l'inventaire avec le résident"/> diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml index 910e6e0960..28b12f2bdf 100644 --- a/indra/newview/skins/default/xui/it/strings.xml +++ b/indra/newview/skins/default/xui/it/strings.xml @@ -17,13 +17,13 @@ Ricerca hardware... </string> <string name="StartupLoading"> - In Caricamento + Caricamento in corso </string> <string name="LoginInProgress"> In connessione. [APP_NAME] può sembrare rallentata. Attendi. </string> <string name="LoginInProgressNoFrozen"> - Logging in... + Accesso in corso... </string> <string name="LoginAuthenticating"> In autenticazione @@ -80,7 +80,7 @@ Errore di rete: Non è stato possibile stabilire un collegamento, controlla la tua connessione. </string> <string name="Quit"> - Termina + Esci </string> <string name="create_account_url"> http://join.secondlife.com/index.php?lang=it-IT @@ -152,10 +152,10 @@ Clicca per vedere questa inserzione </string> <string name="TooltipParcelUrl"> - Clicca per vedere la descrizione della parcel + Clicca per vedere la descrizione del lotto </string> <string name="TooltipTeleportUrl"> - Clicca per teleportarti a questa destinazione + Clicca per effettuare il teleport a questa destinazione </string> <string name="TooltipObjectIMUrl"> Clicca per vedere la descrizione dell'oggetto @@ -166,7 +166,7 @@ <string name="TooltipSLAPP"> Clicca per avviare il comando secondlife:// </string> - <string name="CurrentURL" value=" URL attuale: [CurrentURL]"/> + <string name="CurrentURL" value="URL attuale: [CurrentURL]"/> <string name="SLurlLabelTeleport"> Teleportati a </string> @@ -174,7 +174,7 @@ Mostra la mappa per </string> <string name="BUTTON_CLOSE_DARWIN"> - Chiudi (⌘W) + Chiudi (⌘W) </string> <string name="BUTTON_CLOSE_WIN"> Chiudi (Ctrl+W) @@ -195,10 +195,10 @@ Disàncora </string> <string name="BUTTON_HELP"> - Mostra gli aiuti + Mostra Aiuto </string> <string name="Searching"> - In ricerca... + Ricerca in corso... </string> <string name="NoneFound"> Nessun risultato. @@ -267,19 +267,19 @@ biglietto da visita </string> <string name="landmark"> - landmark + punto di riferimento </string> <string name="legacy script"> script (vecchia versione) </string> <string name="clothing"> - abito + vestiario </string> <string name="object"> oggetto </string> <string name="note card"> - notecard + biglietto </string> <string name="folder"> cartella @@ -309,7 +309,7 @@ immagine targa </string> <string name="trash"> - cestino + Cestino </string> <string name="jpeg image"> immagine jpeg @@ -546,7 +546,7 @@ Si </string> <string name="texture_loading"> - In Caricamento... + Caricamento in corso... </string> <string name="worldmap_offline"> Offline @@ -684,25 +684,25 @@ Scegli la cartella </string> <string name="AvatarSetNotAway"> - Imposta non assente + Imposta come non assente </string> <string name="AvatarSetAway"> - Imposta assente + Imposta come assente </string> <string name="AvatarSetNotBusy"> - Imposta non occupato + Imposta come non occupato </string> <string name="AvatarSetBusy"> - Imposta occupato + Imposta come occupato </string> <string name="shape"> - Shape + Figura corporea </string> <string name="skin"> - Skin + Pelle </string> <string name="hair"> - Capelli + Capigliature </string> <string name="eyes"> Occhi @@ -717,7 +717,7 @@ Scarpe </string> <string name="socks"> - Calze + Calzini </string> <string name="jacket"> Giacca @@ -729,7 +729,7 @@ Maglietta intima </string> <string name="underpants"> - slip + Slip </string> <string name="skirt"> Gonna @@ -744,16 +744,16 @@ non valido </string> <string name="next"> - Seguente + Avanti </string> <string name="ok"> OK </string> <string name="GroupNotifyGroupNotice"> - Notice di gruppo + Avviso di gruppo </string> <string name="GroupNotifyGroupNotices"> - Notice di gruppo + Avvisi di gruppo </string> <string name="GroupNotifySentBy"> Inviato da @@ -762,7 +762,7 @@ Allegato: </string> <string name="GroupNotifyViewPastNotices"> - Visualizza i notice passati o scegli qui di non riceverne. + Visualizza gli avvisi precedenti o scegli qui di non riceverne. </string> <string name="GroupNotifyOpenAttachment"> Apri l'allegato @@ -771,7 +771,7 @@ Salva l'allegato </string> <string name="TeleportOffer"> - Offerta di Teletrasporto + Offerta di Teleport </string> <string name="StartUpNotification"> [%d] una nuova notifica è arrivata mentre eri assente... @@ -819,40 +819,40 @@ Non hai una copia di questa texture in inventario. </string> - <string name="no_transfer" value=" (no transfer)"/> - <string name="no_modify" value=" (no modify)"/> - <string name="no_copy" value=" (no copy)"/> - <string name="worn" value=" (indossato)"/> - <string name="link" value=" (link)"/> - <string name="broken_link" value=" (broken_link)"/> + <string name="no_transfer" value="(nessun trasferimento)"/> + <string name="no_modify" value="(nessuna modifica)"/> + <string name="no_copy" value="(nessuna copia)"/> + <string name="worn" value="(indossato)"/> + <string name="link" value="(link)"/> + <string name="broken_link" value="(broken_link)""/> <string name="LoadingContents"> - Contenuto in caricamento... + Caricamento del contenuto... </string> <string name="NoContents"> Nessun contenuto </string> - <string name="WornOnAttachmentPoint" value=" (indossato su [ATTACHMENT_POINT])"/> - <string name="Chat" value=" Chat :"/> - <string name="Sound" value=" Suono :"/> - <string name="Wait" value=" --- Attendi :"/> - <string name="AnimFlagStop" value=" Ferma l'Animazione :"/> - <string name="AnimFlagStart" value=" Inizia l'Animazione :"/> - <string name="Wave" value=" Wave"/> - <string name="HelloAvatar" value=" Ciao, avatar!"/> - <string name="ViewAllGestures" value=" Visualizza tutte le gesture >>"/> - <string name="Animations" value=" Animazioni,"/> - <string name="Calling Cards" value=" Biglietti da visita,"/> - <string name="Clothing" value=" Vestiti,"/> - <string name="Gestures" value=" Gesture,"/> - <string name="Landmarks" value=" Landmark,"/> - <string name="Notecards" value=" Notecard,"/> - <string name="Objects" value=" Oggetti,"/> - <string name="Scripts" value=" Script,"/> - <string name="Sounds" value=" Suoni,"/> - <string name="Textures" value=" Texture,"/> - <string name="Snapshots" value=" Fotografie,"/> - <string name="No Filters" value="No "/> - <string name="Since Logoff" value=" - Dalla disconnessione"/> + <string name="WornOnAttachmentPoint" value="(indossato su [ATTACHMENT_POINT])"/> + <string name="Chat" value="Chat :"/> + <string name="Sound" value="Suono :"/> + <string name="Wait" value="--- Attendi :"/> + <string name="AnimFlagStop" value="Ferma l'animazione :"/> + <string name="AnimFlagStart" value="Inizia l'animazione :"/> + <string name="Wave" value="Saluta con la mano"/> + <string name="HelloAvatar" value="Ciao, avatar!"/> + <string name="ViewAllGestures" value="Visualizza tutto >>"/> + <string name="Animations" value="Animazioni,"/> + <string name="Calling Cards" value="Biglietti da visita,"/> + <string name="Clothing" value="Vestiti,"/> + <string name="Gestures" value="Gesture,"/> + <string name="Landmarks" value="Punti di riferimento,"/> + <string name="Notecards" value="Biglietti,"/> + <string name="Objects" value="Oggetti,"/> + <string name="Scripts" value="Script,"/> + <string name="Sounds" value="Suoni,"/> + <string name="Textures" value="Texture,"/> + <string name="Snapshots" value="Fotografie,"/> + <string name="No Filters" value="No"/> + <string name="Since Logoff" value="- Dall'uscita"/> <string name="InvFolder My Inventory"> Il mio inventario </string> @@ -869,22 +869,22 @@ di questa texture in inventario. Suoni </string> <string name="InvFolder Calling Cards"> - Biglieti da visita + Biglietti da visita </string> <string name="InvFolder Landmarks"> - Landmark + Punti di riferimento </string> <string name="InvFolder Scripts"> Script </string> <string name="InvFolder Clothing"> - Vestiti + Vestiario </string> <string name="InvFolder Objects"> Oggetti </string> <string name="InvFolder Notecards"> - Notecard + Biglietti </string> <string name="InvFolder New Folder"> Nuova cartella @@ -920,22 +920,22 @@ di questa texture in inventario. Preferiti </string> <string name="InvFolder Current Outfit"> - Outfit attuale + Abbigliamento attuale </string> <string name="InvFolder My Outfits"> - I miei Outfit + Il mio vestiario </string> <string name="InvFolder Friends"> Amici </string> <string name="InvFolder All"> - Tutti + Tutto </string> <string name="Buy"> - Compra + Acquista </string> <string name="BuyforL$"> - Compra per L$ + Acquista per L$ </string> <string name="Stone"> Pietra @@ -962,7 +962,7 @@ di questa texture in inventario. Luce </string> <string name="KBShift"> - Shift + Maiusc </string> <string name="KBCtrl"> Ctrl @@ -1112,13 +1112,13 @@ di questa texture in inventario. [COUNT] giorni </string> <string name="GroupMembersA"> - [COUNT] membro + [COUNT] iscritto </string> <string name="GroupMembersB"> - [COUNT] membri + [COUNT] iscritti </string> <string name="GroupMembersC"> - [COUNT] membri + [COUNT] iscritti </string> <string name="AcctTypeResident"> Residente @@ -1127,10 +1127,10 @@ di questa texture in inventario. In prova </string> <string name="AcctTypeCharterMember"> - Membro onorario + Socio onorario </string> <string name="AcctTypeEmployee"> - Impiegato Linden Lab + Dipendente Linden Lab </string> <string name="PaymentInfoUsed"> Informazioni di pagamento usate @@ -1139,7 +1139,7 @@ di questa texture in inventario. Informazioni di pagamento registrate </string> <string name="NoPaymentInfoOnFile"> - Nessuna informazione di pagamento + Nessuna informazione di pagamento disponibile </string> <string name="AgeVerified"> Età verificata @@ -1154,7 +1154,7 @@ di questa texture in inventario. In alto a destra </string> <string name="Top"> - In alto + in alto </string> <string name="Top Left"> In alto a sinistra @@ -1196,22 +1196,22 @@ di questa texture in inventario. ricompila </string> <string name="ResetQueueTitle"> - Avanzamento reset + Azzera avanzamento </string> <string name="ResetQueueStart"> - reset + azzera </string> <string name="RunQueueTitle"> - Avanzamento attivazione + Attiva avanzamento </string> <string name="RunQueueStart"> - Attiva + attiva </string> <string name="NotRunQueueTitle"> - Avanzamento disattivazione + Disattiva avanzamento </string> <string name="NotRunQueueStart"> - Disattivazione + disattiva </string> <string name="CompileSuccessful"> Compilazione riuscita! @@ -1231,18 +1231,18 @@ di questa texture in inventario. <string name="GroupsNone"> nessuno </string> - <string name="Group" value=" (gruppo)"/> + <string name="Group" value="(gruppo)"/> <string name="Unknown"> (Sconosciuto) </string> <string name="SummaryForTheWeek" value="Riassunto della settimana, partendo dal"/> - <string name="NextStipendDay" value="Il prossimo giorno di stipendio è "/> - <string name="GroupIndividualShare" value=" Gruppo Dividendi individuali"/> + <string name="NextStipendDay" value="Il prossimo giorno di stipendio è"/> + <string name="GroupIndividualShare" value="Gruppo Dividendi individuali"/> <string name="Balance"> Saldo </string> <string name="Credits"> - Crediti + Ringraziamenti </string> <string name="Debits"> Debiti @@ -1257,7 +1257,7 @@ di questa texture in inventario. Proprietà principale </string> <string name="IMMainland"> - mainland + continente </string> <string name="IMTeen"> teen @@ -1266,13 +1266,13 @@ di questa texture in inventario. errore </string> <string name="RegionInfoAllEstatesOwnedBy"> - la proprietà posseduta da [OWNER] + tutte le proprietà immobiliari di [OWNER] </string> <string name="RegionInfoAllEstatesYouOwn"> - Le proprietà che possiedi + tutte le tue proprietà immobiliari </string> <string name="RegionInfoAllEstatesYouManage"> - Le proprietà di cui sei manager per conto di [OWNER] + tutte le proprietà immobiliari che gestisci per conto di [OWNER] </string> <string name="RegionInfoAllowedResidents"> Residenti ammessi: ([ALLOWEDAGENTS], massimo [MAXACCESS]) @@ -1287,10 +1287,10 @@ di questa texture in inventario. [COUNT] trovato/i </string> <string name="PanelContentsNewScript"> - Nuovo Script + Nuovo script </string> <string name="MuteByName"> - (per nome) + (in base al nome) </string> <string name="MuteAgent"> (residente) @@ -1302,18 +1302,18 @@ di questa texture in inventario. (gruppo) </string> <string name="RegionNoCovenant"> - Non esiste nessun regolamento per questa proprietà. + Non esiste alcun regolamento per questa proprietà. </string> <string name="RegionNoCovenantOtherOwner"> - Non esiste nessun regolamento per questa proprietà. Il terreno di questa proprietà è messo in vendita dal proprietario, non dalla Linden Lab. Contatta il proprietario del terreno per i dettagli della vendita. + Non esiste alcun regolamento per questa proprietà. Il terreno di questa proprietà è messo in vendita dal proprietario, non dalla Linden Lab. Contatta il proprietario del terreno per i dettagli della vendita. </string> <string name="covenant_last_modified"> Ultima modifica: </string> - <string name="none_text" value=" (nessuno) "/> - <string name="never_text" value=" (mai) "/> + <string name="none_text" value="(nessuno)"/> + <string name="never_text" value="(mai)"/> <string name="GroupOwned"> - Posseduta da un gruppo + Di proprietà di un gruppo </string> <string name="Public"> Pubblica @@ -1328,22 +1328,22 @@ di questa texture in inventario. Anteprima </string> <string name="MultiPropertiesTitle"> - Proprietà + Beni immobiliari </string> <string name="InvOfferAnObjectNamed"> - Un oggetto chiamato + Un oggetto denominato </string> <string name="InvOfferOwnedByGroup"> - Posseduto dal gruppo + di proprietà del gruppo </string> <string name="InvOfferOwnedByUnknownGroup"> - Posseduto da un gruppo sconosciuto + di proprietà di un gruppo sconosciuto </string> <string name="InvOfferOwnedBy"> - Posseduto da + di proprietà di </string> <string name="InvOfferOwnedByUnknownUser"> - Posseduto da un'utente sconosciuto + di proprietà di un utente sconosciuto </string> <string name="InvOfferGaveYou"> Ti ha offerto @@ -1379,7 +1379,7 @@ di questa texture in inventario. Saldo </string> <string name="GroupMoneyCredits"> - Crediti + Ringraziamenti </string> <string name="GroupMoneyDebits"> Debiti @@ -1391,7 +1391,7 @@ di questa texture in inventario. Oggetti acquisiti </string> <string name="Cancel"> - Cancella + Annulla </string> <string name="UploadingCosts"> Costi di caricamento [%s] @@ -1401,22 +1401,22 @@ di questa texture in inventario. Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh </string> <string name="AddLandmarkNavBarMenu"> - Aggiungi landmark... + Aggiungi punto di riferimento... </string> <string name="EditLandmarkNavBarMenu"> - Modifica landmark... + Modifica punto di riferimento... </string> <string name="accel-mac-control"> - ⌃ + ⌃ </string> <string name="accel-mac-command"> - ⌘ + ⌘ </string> <string name="accel-mac-option"> - ⌥ + ⌥ </string> <string name="accel-mac-shift"> - ⇧ + ⇧ </string> <string name="accel-win-control"> Ctrl+ @@ -1428,22 +1428,22 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Shift+ </string> <string name="FileSaved"> - File Salvato + File salvato </string> <string name="Receiving"> In ricezione </string> <string name="AM"> - AM + antemeridiane </string> <string name="PM"> - PM + pomeridiane </string> <string name="PST"> - PST + Ora Pacifico </string> <string name="PDT"> - PDT + Ora legale Pacifico </string> <string name="Forward"> Avanti @@ -1455,7 +1455,7 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Destra </string> <string name="Back"> - Dietro + Indietro </string> <string name="North"> Nord @@ -1476,13 +1476,13 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Giù </string> <string name="Any Category"> - Tutte le categorie + Qualsiasi categoria </string> <string name="Shopping"> - Shopping + Acquisti </string> <string name="Land Rental"> - Affitto terreni + Affitto terreno </string> <string name="Property Rental"> Affitto proprietà @@ -1494,13 +1494,13 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Nuovi prodotti </string> <string name="Employment"> - Impiego + Lavoro </string> <string name="Wanted"> - Richiesti + Cercasi </string> <string name="Service"> - Servizi + Servizio </string> <string name="Personal"> Personale @@ -1539,7 +1539,7 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Residenziale </string> <string name="Stage"> - Stage + Fase </string> <string name="Other"> Altro @@ -1551,10 +1551,10 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Tu </string> <string name="Multiple Media"> - Media Multipli + Più supporti </string> <string name="Play Media"> - Media Play/Pausa + Riproduci/Pausa supporto </string> <string name="MBCmdLineError"> Un errore è stato riscontrato analizzando la linea di comando. @@ -1562,17 +1562,17 @@ Per informazioni: http://wiki.secondlife.com/wiki/Client_parameters Errore: </string> <string name="MBCmdLineUsg"> - uso linea di comando del programma [APP_NAME] : + Uso linea di comando del programma [APP_NAME] : </string> <string name="MBUnableToAccessFile"> Il programma [APP_NAME] non è in grado di accedere ad un file necessario. -Potrebbe darsi che tu abbia copie multiple attivate, o il tuo sistema reputa erroneamente che il file sia già aperto. +Potrebbe darsi che tu abbia copie multiple attivate o che il tuo sistema reputi erroneamente che il file sia già aperto. Se il problema persiste, riavvia il computer e riprova. -Se il problema persiste ancora, dovresti completamente disinstallare l'applicazione [APP_NAME] e reinstallarla. +Se il problema continua ancora, dovresti completamente disinstallare l'applicazione [APP_NAME] e reinstallarla. </string> <string name="MBFatalError"> - Errore fatale + Errore critico </string> <string name="MBRequiresAltiVec"> Il programma [APP_NAME] richiede un processore con AltiVec (G4 o superiore). @@ -1591,7 +1591,7 @@ Vuoi mandare un crash report? </string> <string name="MBNoDirectX"> Il programmma [APP_NAME] non riesce a trovare una DirectX 9.0b o superiore. -[APP_NAME] usa le DirectX per determinare hardware e/o i driver non aggiornati che possono causare problemi di stabilità, scarsa performance e interruzioni. Sebbene tu possa avviare il programma [APP_NAME] senza di esse, raccomandiamo caldamente di installare le DirectX 9.0b. +[APP_NAME] usa DirectX per rilevare hardware e/o i driver non aggiornati che possono causare problemi di stabilità, scarsa performance e interruzioni. Benché tu possa avviare il programma [APP_NAME] senza di esse, consigliamo caldamente l'esecuzione con DirectX 9.0b. Vuoi continuare? </string> @@ -1599,8 +1599,8 @@ Vuoi continuare? Attenzione </string> <string name="MBNoAutoUpdate"> - L'aggiornamento automatico non è stato ancora implementato per Linux. -Raccomandiamo di scaricare l'utima versione da www.secondlife.com. + L'aggiornamento automatico non è stato ancora realizzato per Linux. +Consigliamo di scaricare l'ultima versione direttamente da www.secondlife.com. </string> <string name="MBRegClassFailed"> RegisterClass non riuscito @@ -1609,8 +1609,8 @@ Raccomandiamo di scaricare l'utima versione da www.secondlife.com. Errore </string> <string name="MBFullScreenErr"> - Impossibile visualizzare a schermo intero a risoluzione [WIDTH] x [HEIGHT]. -Visualizzazione corrente ridotta a finestra. + Impossibile visualizzare a schermo intero con risoluzione [WIDTH] x [HEIGHT]. +Visualizzazione corrente in modalità finestra. </string> <string name="MBDestroyWinFailed"> Errore di arresto durante il tentativo di chiusura della finestra (DestroyWindow() non riuscito) @@ -1628,14 +1628,14 @@ Visualizzazione corrente ridotta a finestra. Impossibile ottenere una descrizione del formato pixel </string> <string name="MBTrueColorWindow"> - [APP_NAME] richiede True Color (32-bit) per funzionare. -Vai alle impostazioni dello schermo del tuo computer e imposta il colore in modalità 32-bit. + [APP_NAME] richiede True Color (32 bit) per funzionare. +Vai alle impostazioni dello schermo del tuo computer e imposta il colore in modalità 32 bit. </string> <string name="MBAlpha"> - [APP_NAME] non funziona poichè è impossibile trovare un canale alpha ad 8 Bit. Questo problema normalmente deriva dai driver della scheda video. + [APP_NAME] non funziona poichè è impossibile trovare un canale alpha a 8 bit. Questo problema normalmente deriva dai driver della scheda video. Assicurati di avere installato i driver della scheda video più recenti. -Assicurati anche che il monitor sia impostato a True Color (32-bit) nel pannello di controllo > Display > Settings. -Se il messaggio persiste, contatta contatta [SUPPORT_SITE]. +Assicurati anche che il monitor sia impostato a True Color (32 bit) nel Pannello di controllo > Schermo > Impostazioni. +Se il messaggio persiste, contatta [SUPPORT_SITE]. </string> <string name="MBPixelFmtSetErr"> Impossibile impostare il formato pixel @@ -1647,7 +1647,7 @@ Se il messaggio persiste, contatta contatta [SUPPORT_SITE]. Impossibile attivare il GL rendering </string> <string name="MBVideoDrvErr"> - [APP_NAME] Non riesce ad avviarsi perchè i driver della tua scheda video non sono stati installati correttamente, non sono aggiornati, o sono per un hardware non supportato. Assicurati di avere i driver della scheda video più recenti e anche se li hai installati, prova a reinstallarli di nuovo. + [APP_NAME] Non riesce ad avviarsi perchè i driver della tua scheda video non sono stati installati correttamente, non sono aggiornati, o sono per un hardware non supportato. Assicurati di avere i driver della scheda video più recenti e anche se li hai installati, prova a installarli di nuovo. Se il messaggio persiste, contatta [SUPPORT_SITE]. </string> @@ -1673,43 +1673,43 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Lobi attaccati </string> <string name="Back Bangs"> - #Back Bangs + Frangetta da dietro </string> <string name="Back Bangs Down"> - #Back Bangs Down + Frangetta da dietro giù </string> <string name="Back Bangs Up"> - #Back Bangs Up + Frangetta da dietro su </string> <string name="Back Fringe"> Frangetta all'indietro </string> <string name="Back Hair"> - #Back Hair + Capelli da dietro </string> <string name="Back Hair Down"> - #Back Hair Down + Capelli da dietro giù </string> <string name="Back Hair Up"> - #Back Hair Up + Capelli da dietro su </string> <string name="Baggy"> - Con le borse + Larghi </string> <string name="Bangs"> Frange </string> <string name="Bangs Down"> - #Bangs Down + Frangetta giù </string> <string name="Bangs Up"> - #Bangs Up + Frangetta su </string> <string name="Beady Eyes"> Occhi piccoli </string> <string name="Belly Size"> - punto vita + Punto vita </string> <string name="Big"> Grande @@ -1718,22 +1718,22 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Sedere grande </string> <string name="Big Eyeball"> - #Big Eyeball + Bulbo oculare grande </string> <string name="Big Hair Back"> - Gonfiore dei capelli: dietro + Capigliatura grande: Indietro </string> <string name="Big Hair Front"> - Gonfiore dei capelli: davanti + Capigliatura grande: anteriore </string> <string name="Big Hair Top"> - Gonfiore dei capelli: sopra + Capigliatura grande: in alto </string> <string name="Big Head"> - Grandezza testa + Grande testa </string> <string name="Big Pectorals"> - Grandezza pettorali + Grandi pettorali </string> <string name="Big Spikes"> Capelli con punte @@ -1766,13 +1766,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Lentiggini e nei </string> <string name="Body Thick"> - Corpo robusto + Corpo più robusto </string> <string name="Body Thickness"> Robustezza del corpo </string> <string name="Body Thin"> - Magrezza del corpo + Corpo più magro </string> <string name="Bow Legged"> Gambe arcuate @@ -1781,7 +1781,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Altezza del seno </string> <string name="Breast Cleavage"> - Avvicinamento dei seni + Décolleté </string> <string name="Breast Size"> Grandezza del seno @@ -1796,7 +1796,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Grandezza delle sopracciglia </string> <string name="Bug Eyes"> - Sporgenza degli occhi + Occhi sporgenti </string> <string name="Bugged Eyes"> Occhi sporgenti @@ -1817,19 +1817,19 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Grandezza del sedere </string> <string name="bustle skirt"> - Arricciatura posteriore + Crinolina </string> <string name="no bustle"> - Meno arricciatura + Nessuna crinolina </string> <string name="more bustle"> - Più arricciatura + Più crinolina </string> <string name="Chaplin"> Baffetti </string> <string name="Cheek Bones"> - Mascella + Zigomi </string> <string name="Chest Size"> Ampiezza del torace @@ -1838,7 +1838,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Angolo del mento </string> <string name="Chin Cleft"> - Fessura inf. del mento + Fossetta sul mento </string> <string name="Chin Curtains"> Barba sottomento @@ -1847,16 +1847,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Profondità mento </string> <string name="Chin Heavy"> - Appuntita verso l'alto + Mento forte </string> <string name="Chin In"> Mento in dentro </string> <string name="Chin Out"> - Mento in fuori + Mento sporgente </string> <string name="Chin-Neck"> - Grandezza mento-collo + Mento-collo </string> <string name="Clear"> Trasparente @@ -1871,46 +1871,46 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Chiusa </string> <string name="Closed Back"> - Spacco chiuso dietro + Chiuso dietro </string> <string name="Closed Front"> - Spacco chiuso davanti + Chiuso davanti </string> <string name="Closed Left"> - Spacco chiuso sx + Chiuso sinistra </string> <string name="Closed Right"> - Spacco chiuso dx + Chiuso destra </string> <string name="Coin Purse"> Meno pronunciati </string> <string name="Collar Back"> - Scollatura posteriore + Colletto posteriore </string> <string name="Collar Front"> - Scollatura anteriore + Colletto anteriore </string> <string name="Corner Down"> Angolo all'ingiù </string> <string name="Corner Normal"> - Angolo Normale + Angolo normale </string> <string name="Corner Up"> Angolo all'insù </string> <string name="Creased"> - Alzato + Piega </string> <string name="Crooked Nose"> Naso storto </string> <string name="Cropped Hair"> - Capelli raccolti + Capelli corti </string> <string name="Cuff Flare"> - Fondo pantalone + Svasato con risvolto </string> <string name="Dark"> Scuro @@ -1922,7 +1922,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Più scuro </string> <string name="Deep"> - Più pronunciato + Profondo </string> <string name="Default Heels"> Tacchi standard @@ -1931,40 +1931,40 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Punta del piede standard </string> <string name="Dense"> - Meno rade + Folti </string> <string name="Dense hair"> - #Dense Hair + Capelli folti </string> <string name="Double Chin"> Doppio mento </string> <string name="Downturned"> - Naso all'ingiù + All'ingiù </string> <string name="Duffle Bag"> Più pronunciati </string> <string name="Ear Angle"> - Orecchie a sventola + Angolo orecchie </string> <string name="Ear Size"> Grandezza orecchie </string> <string name="Ear Tips"> - Tipo di orecchio + Estremità orecchie </string> <string name="Egg Head"> Ovalizzazione testa </string> <string name="Eye Bags"> - Borse sotto agli occhi + Occhiaie </string> <string name="Eye Color"> Colore degli occhi </string> <string name="Eye Depth"> - Occhi incavati + Profondità degli occhi </string> <string name="Eye Lightness"> Luminosità degli occhi @@ -1973,7 +1973,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Apertura degli occhi </string> <string name="Eye Pop"> - Differenza apertura occhi + Prominenza degli occhi </string> <string name="Eye Size"> Grandezza occhi @@ -1982,7 +1982,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Distanza occhi </string> <string name="Eyeball Size"> - #Eyeball Size + Grandezza bulbo oculare </string> <string name="Eyebrow Arc"> Arco delle sopracciglia @@ -2009,64 +2009,64 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Colore dell'eyeliner </string> <string name="Eyes Back"> - #Eyes Back + Occhi indietro </string> <string name="Eyes Bugged"> Occhi sporgenti </string> <string name="Eyes Forward"> - #Eyes Forward + Occhi in avanti </string> <string name="Eyes Long Head"> - #Eyes Long Head + Occhi testa lunga </string> <string name="Eyes Shear Left Up"> - Distorsione occhi in alto a sx + Occhio a sinistra verso l'alto </string> <string name="Eyes Shear Right Up"> - Distorsione occhi in alto a dx + Occhio a destra verso il basso </string> <string name="Eyes Short Head"> - #Eyes Short Head + Occhi testa corta </string> <string name="Eyes Spread"> - #Eyes Spread + Spaziatura occhi </string> <string name="Eyes Sunken"> - #Eyes Sunken + Occhi infossati </string> <string name="Eyes Together"> - #Eyes Together + Occhi ravvicinati </string> <string name="Face Shear"> - Distorsione del viso + Taglio del viso </string> <string name="Facial Definition"> - Lineamenti del viso + Definizione del viso </string> <string name="Far Set Eyes"> Occhi distanti </string> <string name="Fat"> - #Fat + Grasso </string> <string name="Fat Head"> - #Fat Head + Testa grossa </string> <string name="Fat Lips"> Labbra carnose </string> <string name="Fat Lower"> - #Fat Lower + Inferiore carnoso </string> <string name="Fat Lower Lip"> Labbro inferiore sporgente </string> <string name="Fat Torso"> - #Fat Torso + Torace grosso </string> <string name="Fat Upper"> - #Fat Upper + Torace grosso </string> <string name="Fat Upper Lip"> Labbro superiore sporgente @@ -2081,7 +2081,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Dita </string> <string name="Flared Cuffs"> - Fondo largo + Risvolti svasati </string> <string name="Flat"> Piatto @@ -2090,88 +2090,88 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Sedere piatto </string> <string name="Flat Head"> - Viso piatto + Testa piatta </string> <string name="Flat Toe"> Punta piatta </string> <string name="Foot Size"> - Grandezza piede + Misura piede </string> <string name="Forehead Angle"> Angolo della fronte </string> <string name="Forehead Heavy"> - Appuntita verso il basso + Fronte sporgente </string> <string name="Freckles"> Lentiggini </string> <string name="Front Bangs Down"> - #Front Bangs Down + Frangette in giù </string> <string name="Front Bangs Up"> - #Front Bangs Up + Frangette in su </string> <string name="Front Fringe"> Frangetta </string> <string name="Front Hair"> - #Front Hair + Capelli davanti </string> <string name="Front Hair Down"> - #Front Hair Down + Capelli davanti sciolti </string> <string name="Front Hair Up"> - #Front Hair Up + Capelli davanti raccolti </string> <string name="Full Back"> - Scostati + Dietro gonfi </string> <string name="Full Eyeliner"> - Con eyeliner + Eyeliner marcato </string> <string name="Full Front"> - Anteriore pieno + Anteriore gonfio </string> <string name="Full Hair Sides"> - Riempimento lati + Lati capelli gonfi </string> <string name="Full Sides"> - Pieni + Lati gonfi </string> <string name="Glossy"> Lucido </string> <string name="Glove Fingers"> - Dita dei guanti + Dita con guanti </string> <string name="Glove Length"> Lunghezza guanti </string> <string name="Hair"> - Capelli + Capigliature </string> <string name="Hair Back"> - Capelli: dietro + Capelli: Indietro </string> <string name="Hair Front"> - Capelli: davanti + Capelli: anteriore </string> <string name="Hair Sides"> Capelli: lati </string> <string name="Hair Sweep"> - Traslazione + Direzione capigliatura </string> <string name="Hair Thickess"> - Spessore + Foltezza </string> <string name="Hair Thickness"> - Spessore barba + Foltezza </string> <string name="Hair Tilt"> - Rotazione capelli + Inclinazione </string> <string name="Hair Tilted Left"> Verso sinistra @@ -2180,16 +2180,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Verso destra </string> <string name="Hair Volume"> - Capelli: volume + Capelli: Volume </string> <string name="Hand Size"> Grandezza mani </string> <string name="Handlebars"> - Baffi lunghi + Baffi a manubrio </string> <string name="Head Length"> - Sporgenza del viso + Lunghezza testa </string> <string name="Head Shape"> Forma della testa @@ -2198,7 +2198,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Grandezza della testa </string> <string name="Head Stretch"> - Compressione lat testa + Allungamento testa </string> <string name="Heel Height"> Altezza tacchi @@ -2222,7 +2222,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Alta </string> <string name="High and Tight"> - Cavallo alto + Alto e stretto </string> <string name="Higher"> Più alto @@ -2267,7 +2267,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Forma del mento </string> <string name="Join"> - Avvicinati + Iscriviti </string> <string name="Jowls"> Guance @@ -2297,7 +2297,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Meno </string> <string name="Less Body Fat"> - Meno grasso + Meno grasso corporeo </string> <string name="Less Curtains"> Meno @@ -2339,16 +2339,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Meno </string> <string name="Lighter"> - Più chiaro + Più leggero </string> <string name="Lip Cleft"> - Distanza divis. labbro sup. + Distanza fossetta labbro </string> <string name="Lip Cleft Depth"> - Prof. spacco labbro sup. + Prof. fossetta labbro </string> <string name="Lip Fullness"> - Riempimento delle labbra + Volume labbra </string> <string name="Lip Pinkness"> Tonalità rosa labbra @@ -2375,7 +2375,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Lungo </string> <string name="Long Head"> - Viso sporgente + Testa lunga </string> <string name="Long Hips"> Bacino alto @@ -2387,7 +2387,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Collo lungo </string> <string name="Long Pigtails"> - Ciuffi laterali lunghi + Codini lunghi </string> <string name="Long Ponytail"> Codino lungo @@ -2399,16 +2399,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Braccia lunghe </string> <string name="Longcuffs"> - Longcuffs + Maniche lunghe </string> <string name="Loose Pants"> - Non attillati + Pantaloni ampi </string> <string name="Loose Shirt"> - Non attillata + Camicia ampia </string> <string name="Loose Sleeves"> - Maniche lente + Maniche non attillate </string> <string name="Love Handles"> Maniglie dell'amore @@ -2426,7 +2426,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Bassa </string> <string name="Low and Loose"> - Cavallo basso + Basso e ampio </string> <string name="Lower"> Più basso @@ -2435,7 +2435,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Parte bassa del setto </string> <string name="Lower Cheeks"> - Guance + Guance inferiori </string> <string name="Male"> Maschio @@ -2444,13 +2444,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Riga nel mezzo </string> <string name="More"> - Di più + Altro </string> <string name="More Blush"> Più fard </string> <string name="More Body Fat"> - Più grasso + Più grasso corporeo </string> <string name="More Curtains"> Più @@ -2519,7 +2519,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Posizione della bocca </string> <string name="Mowhawk"> - Vuoti + Moicana </string> <string name="Muscular"> Muscolatura @@ -2597,10 +2597,10 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Superiore normale </string> <string name="Nose Left"> - Storto a sinistra + Naso a sinistra </string> <string name="Nose Right"> - Storto a destra + Naso a destra </string> <string name="Nose Size"> Grandezza naso @@ -2630,13 +2630,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Opaco </string> <string name="Open"> - Aperto + Apri </string> <string name="Open Back"> Retro aperto </string> <string name="Open Front"> - Aperto Frontale + Davanti aperto </string> <string name="Open Left"> Lato sin. aperto @@ -2672,7 +2672,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Genitali </string> <string name="Painted Nails"> - Unghie colorate + Unghie smaltate </string> <string name="Pale"> Pallido @@ -2687,7 +2687,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Lunghezza pantaloni </string> <string name="Pants Waist"> - Altezza slip + Taglia pantalone </string> <string name="Pants Wrinkles"> Pantaloni con le grinze @@ -2705,7 +2705,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Pigmento </string> <string name="Pigtails"> - Ciuffi + Codini </string> <string name="Pink"> Rosa @@ -2807,16 +2807,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Meno pronunciato </string> <string name="Shear Back"> - Accostamento posteriore + Taglio posteriore </string> <string name="Shear Face"> - Distorsione viso + Taglio del viso </string> <string name="Shear Front"> - Riempimento davanti + Taglio anteriore </string> <string name="Shear Left"> - A sinistra + Taglio a sinistra </string> <string name="Shear Left Up"> Distorto a sinistra @@ -2828,10 +2828,10 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Distorto a destra </string> <string name="Sheared Back"> - Accostati + Taglio verso dietro </string> <string name="Sheared Front"> - Anteriormente vuoto + Taglio verso davanti </string> <string name="Shift Left"> A sinistra @@ -2867,10 +2867,10 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Collo corto </string> <string name="Short Pigtails"> - Ciuffi laterali corti + Codini corti </string> <string name="Short Ponytail"> - Codino Corto + Codino corto </string> <string name="Short Sideburns"> Basette corte @@ -2900,13 +2900,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Basette </string> <string name="Sides Hair"> - Capigliatura later. + Capigliatura di lato </string> <string name="Sides Hair Down"> - Giù + Capigliatura di lato sciolta </string> <string name="Sides Hair Up"> - Su + Capigliatura di lato raccolta </string> <string name="Skinny"> Skinny @@ -2930,19 +2930,19 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Morbidezza maniche </string> <string name="Slit Back"> - Spacco: posteriore + Spacco: Indietro </string> <string name="Slit Front"> Spacco: anteriore </string> <string name="Slit Left"> - Spacco: sinistro + Spacco: Sinistra </string> <string name="Slit Right"> - Spacco: destro + Spacco: Destra </string> <string name="Small"> - Piccolo + Piccola </string> <string name="Small Hands"> Mani piccole @@ -3032,37 +3032,37 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Punta spessa </string> <string name="Thickness"> - Thickness + Spessore </string> <string name="Thin"> - Ossute + Sottili </string> <string name="Thin Eyebrows"> - Sopracciglia fini + Sopracciglia sottili </string> <string name="Thin Lips"> - Labbra fini + Labbra sottili </string> <string name="Thin Nose"> - Naso fino + Naso sottile </string> <string name="Tight Chin"> - Mento magro + Mento stretto </string> <string name="Tight Cuffs"> Fondo stretto </string> <string name="Tight Pants"> - Attillati + Pantaloni attillati </string> <string name="Tight Shirt"> - Attilata + Camicia attillata </string> <string name="Tight Skirt"> - Attillata + Gonna attillata </string> <string name="Tight Sleeves"> - Attillate + Maniche strette </string> <string name="Tilt Left"> Tilt Left @@ -3089,7 +3089,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Distaccato </string> <string name="Uncreased"> - Abbassato + Senza piega </string> <string name="Underbite"> Denti inf. in fuori @@ -3104,13 +3104,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Parte alta degli zigomi </string> <string name="Upper Chin Cleft"> - Fessura sup. del mento + Fossetta sup. del mento </string> <string name="Upper Eyelid Fold"> Piega palpebra sup. </string> <string name="Upturned"> - Naso all'insù + All'insù </string> <string name="Very Red"> Molto rossi @@ -3125,13 +3125,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Capelli bianchi </string> <string name="Wide"> - Spalancati + Largo </string> <string name="Wide Back"> - Laterali post. larghi + Dietro largo </string> <string name="Wide Front"> - Laterali ant. larghi + Davanti largo </string> <string name="Wide Lips"> Labbra larghe @@ -3143,31 +3143,31 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Grinze </string> <string name="LocationCtrlAddLandmarkTooltip"> - Aggiungi ai miei landmark + Aggiungi ai miei punti di riferimento </string> <string name="LocationCtrlEditLandmarkTooltip"> - Modifica i miei landmark + Modifica i miei punti di riferimento </string> <string name="LocationCtrlInfoBtnTooltip"> - maggiori informazioni sulla posizione attuale + Maggiori informazioni sulla posizione attuale </string> <string name="LocationCtrlComboBtnTooltip"> - Lo storico delle mie posizioni + La cronologia delle mie posizioni </string> <string name="UpdaterWindowTitle"> Aggiornamento [APP_NAME] </string> <string name="UpdaterNowUpdating"> - [APP_NAME] In aggiornamento... + Aggiornamento di [APP_NAME]... </string> <string name="UpdaterNowInstalling"> - [APP_NAME] In installazione... + Installazione di [APP_NAME]... </string> <string name="UpdaterUpdatingDescriptive"> - Il Viewer del programma [APP_NAME] si sta aggiornando all'ultima versione. Potrebbe volerci del tempo, attendi. + Il Viewer del programma [APP_NAME] si sta aggiornando all'ultima versione. Potrebbe volerci del tempo, attendi. </string> <string name="UpdaterProgressBarTextWithEllipses"> - Aggiornamento in download... + Download dell'aggiornamento... </string> <string name="UpdaterProgressBarText"> Download dell'aggiornamento @@ -3176,13 +3176,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Download dell'aggiornamento non riuscito </string> <string name="UpdaterFailUpdateDescriptive"> - Il programma [APP_NAME] ha riscontrato un'errore nel tentativo di aggiornamento. Consigliamo di scaricare l'ultima versione direttamente da www.secondlife.com. + Il programma [APP_NAME] ha riscontrato un'errore durante il tentativo di aggiornamento. Consigliamo di scaricare l'ultima versione direttamente da www.secondlife.com. </string> <string name="UpdaterFailInstallTitle"> - Tentativo di installazione aggiornamento non riuscito + Installazione dell'aggiornamento non riuscita </string> <string name="UpdaterFailStartTitle"> - Errore nell'apertura del viewer + Errore nell'avvio del viewer </string> <string name="IM_logging_string"> -- Registrazione messaggi instantanei abilitata -- @@ -3194,7 +3194,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. (anonimo) </string> <string name="IM_moderated_chat_label"> - (Moderato: Voice spento di default) + (Moderato: Voci disattivate di default) </string> <string name="IM_unavailable_text_label"> La chat di testo non è disponibile per questa chiamata. @@ -3203,7 +3203,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. La chat di testo è stata disabilitata da un moderatore di gruppo. </string> <string name="IM_default_text_label"> - Clicca qua per inviare un messaggio instantaneo. + Clicca qui per inviare un messaggio instantaneo. </string> <string name="IM_to_label"> A diff --git a/indra/test_apps/llplugintest/bookmarks.txt b/indra/test_apps/llplugintest/bookmarks.txt index b8b83df386..2ff64f217f 100644 --- a/indra/test_apps/llplugintest/bookmarks.txt +++ b/indra/test_apps/llplugintest/bookmarks.txt @@ -18,20 +18,20 @@ (Flash) Scribd,http://www.scribd.com/doc/14427744/Second-Life-Quickstart-Guide (Flash) MAME,http://yvern.com/fMAME/fMAME.html (QT) Local sample,file:///C|/Program Files/QuickTime/Sample.mov -(QT) Movie - Watchmen Trailer,http://movies.apple.com/movies/wb/watchmen/watchmen-tlr2_480p.mov -(QT) Movie - Transformers - Revenge of the Fallen,http://movies.apple.com/movies/paramount/transformers2/transformersrevengeofthefallen-tlr1_h.320.mov -(QT) Movie - Terminator Salvation,http://movies.apple.com/movies/wb/terminatorsalvation/terminatorsalvation-tlr3_h.320.mov -(QT) Movie - Angels and Demons,http://movies.apple.com/movies/sony_pictures/angelsanddemons/angelsanddemons-video_h.320.mov -(QT) Movie - Sin City Trailer,http://movies.apple.com/movies/miramax/sin_city/sin_city_480.mov -(QT) Movie - The Incredibles Trailer,http://movies.apple.com/movies/disney/the_incredibles/the_incredibles-tlr_a480.mov +(QT) Movie - Watchmen Trailer,http://trailers.apple.com/movies/wb/watchmen/watchmen-tlr2_480p.mov +(QT) Movie - Transformers - Revenge of the Fallen,http://trailers.apple.com/movies/paramount/transformers2/transformersrevengeofthefallen-tlr1_h.320.mov +(QT) Movie - Terminator Salvation,http://trailers.apple.com/movies/wb/terminatorsalvation/terminatorsalvation-tlr3_h.320.mov +(QT) Movie - Angels and Demons,http://trailers.apple.com/movies/sony_pictures/angelsanddemons/angelsanddemons-video_h.320.mov +(QT) Movie - Sin City Trailer,http://trailers.apple.com/movies/miramax/sin_city/sin_city_480.mov +(QT) Movie - The Incredibles Trailer,http://trailers.apple.com/movies/disney/the_incredibles/the_incredibles-tlr_a480.mov (QT) Movie - Streaming Apple Event,http://stream.qtv.apple.com/events/mar/0903lajkszg/m_090374535329zdwg_650_ref.mov (QT) Movie - MPEG-4 from Amazon S3,http://s3.amazonaws.com/callum-linden/flashdemo/interactive_flash_demo.mp4 -(QT) Movie - Star Trek,http://movies.apple.com/movies/paramount/star_trek/startrek-tlr3_h.320.mov -(QT) Movie - Ice Age 3,http://movies.apple.com/movies/fox/ice_age_iii/iceage3-tlrd_h.320.mov -(QT) Movie - AstroBoy,http://movies.apple.com/movies/summit/astroboy/astroboy-tsr_h.320.mov -(QT) Movie - Ante Up,http://movies.apple.com/movies/independent/anteup/anteup_h.320.mov -(QT) Movie - Every Little Step,http://movies.apple.com/movies/sony/everylittlestep/everylittlestep-clip_h.320.mov -(QT) Movie - The Informers,http://movies.apple.com/movies/independent/theinformers/theinformers_h.320.mov +(QT) Movie - Star Trek,http://trailers.apple.com/movies/paramount/star_trek/startrek-tlr3_h.320.mov +(QT) Movie - Ice Age 3,http://trailers.apple.com/movies/fox/ice_age_iii/iceage3-tlrd_h.320.mov +(QT) Movie - AstroBoy,http://trailers.apple.com/movies/summit/astroboy/astroboy-tsr_h.320.mov +(QT) Movie - Ante Up,http://trailers.apple.com/movies/independent/anteup/anteup_h.320.mov +(QT) Movie - Every Little Step,http://trailers.apple.com/movies/sony/everylittlestep/everylittlestep-clip_h.320.mov +(QT) Movie - The Informers,http://trailers.apple.com/movies/independent/theinformers/theinformers_h.320.mov (QT) Animated GIF,http://upload.wikimedia.org/wikipedia/commons/4/44/Optical.greysquares.arp-animated.gif (QT) Apple Text Descriptors,http://ubrowser.com/tmp/apple_text.txt (EX) Example Plugin,example://blah diff --git a/indra/test_apps/llplugintest/llmediaplugintest.cpp b/indra/test_apps/llplugintest/llmediaplugintest.cpp index e5a846f15a..5677308fb0 100644 --- a/indra/test_apps/llplugintest/llmediaplugintest.cpp +++ b/indra/test_apps/llplugintest/llmediaplugintest.cpp @@ -1593,8 +1593,8 @@ void LLMediaPluginTest::addMediaPanel( std::string url ) } std::string user_data_path = std::string( cwd ) + "/"; #endif - - media_source->init( launcher_name, plugin_name, false, user_data_path ); + media_source->setUserDataPath(user_data_path); + media_source->init( launcher_name, plugin_name, false ); media_source->setDisableTimeout(mDisableTimeout); // make a new panel and save parameters @@ -1831,7 +1831,8 @@ void LLMediaPluginTest::replaceMediaPanel( mediaPanel* panel, std::string url ) std::string user_data_path = std::string( cwd ) + "/"; #endif - media_source->init( launcher_name, plugin_name, false, user_data_path ); + media_source->setUserDataPath(user_data_path); + media_source->init( launcher_name, plugin_name, false ); media_source->setDisableTimeout(mDisableTimeout); // make a new panel and save parameters |