From a0a4a0736d93e0ab4f397281e38bf21f2f2f1425 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Tue, 4 Feb 2014 13:57:10 -0800 Subject: MAINT-3675 NUI:Login Screen - Allow login call to be made from web --- indra/newview/llpanellogin.cpp | 98 +++++++++++++++++++++++++++++++++++++++++- indra/newview/llpanellogin.h | 1 + 2 files changed, 98 insertions(+), 1 deletion(-) diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 911ecaad9d..60208c92b0 100755 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -26,6 +26,8 @@ #include "llviewerprecompiledheaders.h" +#include + #include "llpanellogin.h" #include "lllayoutstack.h" @@ -97,6 +99,87 @@ public: } }; +class LLLoginLocationAutoHandler : public LLCommandHandler +{ +public: + // don't allow from external browsers + LLLoginLocationAutoHandler() : LLCommandHandler("location_login", UNTRUSTED_BLOCK) { } + bool handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web) + { + if (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP) + { + if ( tokens.size() == 0 || tokens.size() > 4 ) + return false; + + // unescape is important - uris with spaces are escaped in this code path + // (e.g. space -> %20) and the code to log into a region doesn't support that. + const std::string region = LLURI::unescape( tokens[0].asString() ); + + // just region name as payload + if ( tokens.size() == 1 ) + { + // region name only - slurl will end up as center of region + LLSLURL slurl(region); + LLPanelLogin::autologinToLocation(slurl); + } + else + // region name and x coord as payload + if ( tokens.size() == 2 ) + { + // invalid to only specify region and x coordinate + // slurl code will revert to same as region only, so do this anyway + LLSLURL slurl(region); + LLPanelLogin::autologinToLocation(slurl); + } + else + // region name and x/y coord as payload + if ( tokens.size() == 3 ) + { + // region and x/y specified - default z to 0 + F32 xpos; + std::istringstream codec(tokens[1].asString()); + codec >> xpos; + + F32 ypos; + codec.clear(); + codec.str(tokens[2].asString()); + codec >> ypos; + + const LLVector3 location(xpos, ypos, 0.0f); + LLSLURL slurl(region, location); + + LLPanelLogin::autologinToLocation(slurl); + } + else + // region name and x/y/z coord as payload + if ( tokens.size() == 4 ) + { + // region and x/y/z specified - ok + F32 xpos; + std::istringstream codec(tokens[1].asString()); + codec >> xpos; + + F32 ypos; + codec.clear(); + codec.str(tokens[2].asString()); + codec >> ypos; + + F32 zpos; + codec.clear(); + codec.str(tokens[3].asString()); + codec >> zpos; + + const LLVector3 location(xpos, ypos, zpos); + LLSLURL slurl(region, location); + + LLPanelLogin::autologinToLocation(slurl); + }; + } + return true; + } +}; +LLLoginLocationAutoHandler gLoginLocationAutoHandler; + //--------------------------------------------------------------------------- // Public methods //--------------------------------------------------------------------------- @@ -714,6 +797,18 @@ void LLPanelLogin::setLocation(const LLSLURL& slurl) LLStartUp::setStartSLURL(slurl); // calls onUpdateStartSLURL, above } +void LLPanelLogin::autologinToLocation(const LLSLURL& slurl) +{ + LL_DEBUGS("AppInit")<<"automatically logging into Location "<onClickConnect(unused_paramter); + } +} + // static void LLPanelLogin::closePanel() { @@ -786,7 +881,8 @@ void LLPanelLogin::loadLoginPage() if (web_browser->getCurrentNavUrl() != login_uri.asString()) { LL_DEBUGS("AppInit") << "loading: " << login_uri << LL_ENDL; - web_browser->navigateTo( login_uri.asString(), "text/html" ); + //web_browser->navigateTo( login_uri.asString(), "text/html" ); + web_browser->navigateTo("http://127.0.0.1:8000/login.html"); } } diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h index c71cfc3783..a614062ccd 100755 --- a/indra/newview/llpanellogin.h +++ b/indra/newview/llpanellogin.h @@ -67,6 +67,7 @@ public: static BOOL areCredentialFieldsDirty(); static void setLocation(const LLSLURL& slurl); + static void autologinToLocation(const LLSLURL& slurl); /// Call when preferences that control visibility may have changed static void updateLocationSelectorsVisibility(); -- cgit v1.2.3 From 385fad27853ed5c5bf37dfe868a9d3eb94e6be10 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Tue, 4 Feb 2014 13:58:29 -0800 Subject: Remove debugging code that reset page URL --- indra/newview/llpanellogin.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 60208c92b0..557c67f2d7 100755 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -881,8 +881,7 @@ void LLPanelLogin::loadLoginPage() if (web_browser->getCurrentNavUrl() != login_uri.asString()) { LL_DEBUGS("AppInit") << "loading: " << login_uri << LL_ENDL; - //web_browser->navigateTo( login_uri.asString(), "text/html" ); - web_browser->navigateTo("http://127.0.0.1:8000/login.html"); + web_browser->navigateTo( login_uri.asString(), "text/html" ); } } -- cgit v1.2.3 From cac7a46a5b0b762ac97ffe53f6c0d21a3e90d28f Mon Sep 17 00:00:00 2001 From: Callum Prentice Date: Wed, 5 Feb 2014 14:11:37 -0800 Subject: Fix from https://bitbucket.org/oz_linden/viewer-macsignfix via Oz to deal with Mac code signing issues. --- indra/newview/viewer_manifest.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 9a617c2a13..96b4c7268c 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -38,7 +38,7 @@ viewer_dir = os.path.dirname(__file__) # Put it FIRST because some of our build hosts have an ancient install of # indra.util.llmanifest under their system Python! sys.path.insert(0, os.path.join(viewer_dir, os.pardir, "lib", "python")) -from indra.util.llmanifest import LLManifest, main, proper_windows_path, path_ancestors, CHANNEL_VENDOR_BASE, RELEASE_CHANNEL +from indra.util.llmanifest import LLManifest, main, proper_windows_path, path_ancestors, CHANNEL_VENDOR_BASE, RELEASE_CHANNEL, ManifestError try: from llbase import llsd except ImportError: @@ -818,11 +818,27 @@ class Darwin_i386_Manifest(ViewerManifest): keychain_pwd = open(keychain_pwd_path).read().rstrip() self.run_command('security unlock-keychain -p "%s" "%s/Library/Keychains/viewer.keychain"' % ( keychain_pwd, home_path ) ) - self.run_command('codesign --verbose --force --keychain "%(home_path)s/Library/Keychains/viewer.keychain" --sign %(identity)r %(bundle)r' % { - 'home_path' : home_path, - 'identity': identity, - 'bundle': self.get_dst_prefix() - }) + signed=False + sign_attempts=3 + sign_retry_wait=15 + while (not signed) and (sign_attempts > 0): + try: + sign_attempts-=1; + self.run_command( + 'codesign --verbose --force --keychain "%(home_path)s/Library/Keychains/viewer.keychain" --sign %(identity)r %(bundle)r' % { + 'home_path' : home_path, + 'identity': identity, + 'bundle': self.get_dst_prefix() + }) + signed=True # if no exception was raised, the codesign worked + except ManifestError, err: + if sign_attempts: + print >> sys.stderr, "codesign failed, waiting %d seconds before retrying" % sign_retry_wait + time.sleep(sign_retry_wait) + sign_retry_wait*=2 + else: + print >> sys.stderr, "Maximum codesign attempts exceeded; giving up" + raise imagename="SecondLife_" + '_'.join(self.args['version']) -- cgit v1.2.3 From b6821ae35a1d47497dbc990c30e8dddc1eb4ff41 Mon Sep 17 00:00:00 2001 From: Callum Prentice Date: Wed, 12 Feb 2014 11:08:16 -0800 Subject: First pass at FirstLogin login page. --- indra/newview/llpanellogin.cpp | 38 +--- indra/newview/skins/default/textures/textures.xml | 4 + .../textures/windows/first_login_image_left.png | Bin 0 -> 280886 bytes .../textures/windows/first_login_image_right.png | Bin 0 -> 263692 bytes .../default/textures/windows/login_sl_logo.png | Bin 0 -> 28583 bytes indra/newview/skins/default/xui/en/main_view.xml | 3 +- .../skins/default/xui/en/panel_login_first.xml | 249 +++++++++++++++++++++ 7 files changed, 259 insertions(+), 35 deletions(-) create mode 100644 indra/newview/skins/default/textures/windows/first_login_image_left.png create mode 100644 indra/newview/skins/default/textures/windows/first_login_image_right.png create mode 100644 indra/newview/skins/default/textures/windows/login_sl_logo.png create mode 100644 indra/newview/skins/default/xui/en/panel_login_first.xml diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 557c67f2d7..f328ffe1a0 100755 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -78,7 +78,6 @@ #include "llsdserialize.h" -const S32 BLACK_BORDER_HEIGHT = 160; const S32 MAX_PASSWORD = 16; LLPanelLogin *LLPanelLogin::sInstance = NULL; @@ -192,7 +191,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, mCallbackData(cb_data), mListener(new LLPanelLoginListener(this)) { - setBackgroundVisible(FALSE); + setBackgroundVisible(TRUE); setBackgroundOpaque(TRUE); // instance management @@ -207,20 +206,16 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, mPasswordModified = FALSE; LLPanelLogin::sInstance = this; + buildFromFile( "panel_login_first.xml"); LLView* login_holder = gViewerWindow->getLoginPanelHolder(); if (login_holder) { + setOrigin(0,0); + reshape(rect.getWidth(), rect.getHeight()); login_holder->addChild(this); } - // Logo - mLogoImage = LLUI::getUIImage("startup_logo"); - - buildFromFile( "panel_login.xml"); - - reshape(rect.getWidth(), rect.getHeight()); - LLLineEditor* password_edit(getChild("password_edit")); password_edit->setKeystrokeCallback(onPassKey, this); // STEAM-14: When user presses Enter with this field in focus, initiate login @@ -408,31 +403,6 @@ LLPanelLogin::~LLPanelLogin() // virtual void LLPanelLogin::draw() { - gGL.pushMatrix(); - { - F32 image_aspect = 1.333333f; - F32 view_aspect = (F32)getRect().getWidth() / (F32)getRect().getHeight(); - // stretch image to maintain aspect ratio - if (image_aspect > view_aspect) - { - gGL.translatef(-0.5f * (image_aspect / view_aspect - 1.f) * getRect().getWidth(), 0.f, 0.f); - gGL.scalef(image_aspect / view_aspect, 1.f, 1.f); - } - - S32 width = getRect().getWidth(); - S32 height = getRect().getHeight(); - - if (getChild("login_widgets")->getVisible()) - { - // draw a background box in black - gl_rect_2d( 0, height - 264, width, 264, LLColor4::black ); - // draw the bottom part of the background image - // just the blue background to the native client UI - mLogoImage->draw(0, -264, width + 8, mLogoImage->getHeight()); - }; - } - gGL.popMatrix(); - LLPanel::draw(); } diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index bb891996c9..4aa668c242 100755 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -577,6 +577,10 @@ with the same filename but different name + + + + diff --git a/indra/newview/skins/default/textures/windows/first_login_image_left.png b/indra/newview/skins/default/textures/windows/first_login_image_left.png new file mode 100644 index 0000000000..b1cb30fe67 Binary files /dev/null and b/indra/newview/skins/default/textures/windows/first_login_image_left.png differ diff --git a/indra/newview/skins/default/textures/windows/first_login_image_right.png b/indra/newview/skins/default/textures/windows/first_login_image_right.png new file mode 100644 index 0000000000..bdd3afdd48 Binary files /dev/null and b/indra/newview/skins/default/textures/windows/first_login_image_right.png differ diff --git a/indra/newview/skins/default/textures/windows/login_sl_logo.png b/indra/newview/skins/default/textures/windows/login_sl_logo.png new file mode 100644 index 0000000000..3bc93ab24d Binary files /dev/null and b/indra/newview/skins/default/textures/windows/login_sl_logo.png differ diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml index a87027a113..b1eb3caccb 100755 --- a/indra/newview/skins/default/xui/en/main_view.xml +++ b/indra/newview/skins/default/xui/en/main_view.xml @@ -67,7 +67,8 @@ diff --git a/indra/newview/skins/default/xui/en/panel_login_first.xml b/indra/newview/skins/default/xui/en/panel_login_first.xml new file mode 100644 index 0000000000..5e257df4fd --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_login_first.xml @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/default/xui/es/floater_lagmeter.xml b/indra/newview/skins/default/xui/es/floater_lagmeter.xml new file mode 100644 index 0000000000..227689a194 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_lagmeter.xml @@ -0,0 +1,154 @@ + + + + Medidor del lag + + + 360 + + + Lag + + + 90 + + + Cliente + + + 10 + + + 15 + + + Normal, ventana en segundo plano + + + Frames del cliente valorados por debajo de [CLIENT_FRAME_RATE_CRITICAL] + + + Frames del cliente valorados entre [CLIENT_FRAME_RATE_CRITICAL] y [CLIENT_FRAME_RATE_WARNING] + + + Normal + + + Posible causa: distancia de dibujo fijada muy alta + + + Posible causa: imágenes cargándose + + + Posible causa: demasiadas imágenes en la memoria + + + Posible causa: demasiados objetos complejos en la escena + + + Red + + + 10 + + + 5 + + + La conexión deja caer más del [NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes + + + La conexión deja caer [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes + + + Normal + + + 600 + + + 300 + + + El tiempo de conexión -ping- supera los [NETWORK_PING_CRITICAL] ms + + + El tiempo de conexión -ping- es de [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms + + + Quizá una mala conexión o un ancho de banda fijado demasiado alto. + + + Quizá una mala conexión o una aplicación de archivos compartidos. + + + Servidor + + + 20 + + + 30 + + + 20 + + + Frecuencia (framerate) por debajo de [SERVER_FRAME_RATE_CRITICAL] + + + Frecuencia (framerate) entre [SERVER_FRAME_RATE_CRITICAL] y [SERVER_FRAME_RATE_WARNING] + + + Normal + + + Posible causa: demasiados objetos físicos + + + Posible causa: demasiados objetos con script + + + Posible causa: demasiado tráfico en la red + + + Posible causa: demasiada gente moviéndose en la región + + + Posible causa: demasiados cálculos de imáganes + + + Posible causa: carga del simulador muy pesada + + + >> + + + << + + -- cgit v1.2.3 From bc029b770c92f9443a30fee88d3b7a22b971b643 Mon Sep 17 00:00:00 2001 From: maksymsproductengine Date: Tue, 22 Jul 2014 19:38:55 +0300 Subject: MAINT-4036 [CHUIBUG]Long pause on first open of preferences or right-clicking a user in friend list: the changeset 009b02c29a52 has been reverted by request from Oz. --- doc/contributions.txt | 2 - indra/newview/llgiveinventory.cpp | 6 +-- indra/newview/lllogchat.cpp | 108 ++++++++++++++++++-------------------- indra/newview/lllogchat.h | 6 --- 4 files changed, 52 insertions(+), 70 deletions(-) diff --git a/doc/contributions.txt b/doc/contributions.txt index 240bce5719..7e8ab46b1a 100755 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -185,7 +185,6 @@ Ansariel Hiller BUG-3764 STORM-1984 STORM-1979 - MAINT-4036 Aralara Rajal Arare Chantilly CHUIBUG-191 @@ -758,7 +757,6 @@ Kitty Barnett STORM-1905 VWR-24217 STORM-1804 - MAINT-4036 Kolor Fall Komiko Okamoto Korvel Noh diff --git a/indra/newview/llgiveinventory.cpp b/indra/newview/llgiveinventory.cpp index b2fc41526e..813d2081ce 100755 --- a/indra/newview/llgiveinventory.cpp +++ b/indra/newview/llgiveinventory.cpp @@ -328,10 +328,8 @@ void LLGiveInventory::logInventoryOffer(const LLUUID& to_agent, const LLUUID &im { // Build a new format username or firstname_lastname for legacy names // to use it for a history log filename. - if (LLLogChat::buildIMP2PLogFilename(to_agent, LLStringUtil::null, full_name)) - { - LLIMModel::instance().logToFile(full_name, LLTrans::getString("SECOND_LIFE"), im_session_id, LLTrans::getString("inventory_item_offered-im")); - } + full_name = LLCacheName::buildUsername(full_name); + LLIMModel::instance().logToFile(full_name, LLTrans::getString("SECOND_LIFE"), im_session_id, LLTrans::getString("inventory_item_offered-im")); } } } diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp index 743bb8973b..06e517a861 100755 --- a/indra/newview/lllogchat.cpp +++ b/indra/newview/lllogchat.cpp @@ -261,46 +261,6 @@ std::string LLLogChat::cleanFileName(std::string filename) return filename; } -bool LLLogChat::buildIMP2PLogFilename(const LLUUID& idAgent, const std::string& strName, std::string& strFilename) -{ - static LLCachedControl fLegacyFilenames(gSavedSettings, "UseLegacyIMLogNames", true); - - // If we have the name cached then we can simply return the username - LLAvatarName avName; - if (LLAvatarNameCache::get(idAgent, &avName)) - { - if (!fLegacyFilenames) - { - strFilename = avName.getUserName(); - } - else - { - strFilename = LLCacheName::cleanFullName(avName.getLegacyName()); - } - return true; - } - else - { - // Try and get it from the legacy cache if we can - std::string strLegacyName; - if (gCacheName->getFullName(idAgent, strLegacyName)) - strLegacyName = strName; - - if (!fLegacyFilenames) - { - // If we don't have it cached 'strName' *should* be a legacy name (or a complete name) and we can construct a username from that - strFilename = LLCacheName::buildUsername(strName); - return strName != strFilename; // If the assumption above was wrong then the two will match which signals failure - } - else - { - // Strip any possible mention of a username - strFilename = LLCacheName::buildLegacyName(strName); - return (!strFilename.empty()); // Assume success as long as the filename isn't an empty string - } - } -} - std::string LLLogChat::timestamp(bool withdate) { std::string timeStr; @@ -610,6 +570,13 @@ void LLLogChat::findTranscriptFiles(std::string pattern, std::vectoradd(dirname, filename)); + LLFile::close(filep); + continue; + } char buffer[LOG_RECALL_SIZE]; fseek(filep, 0, SEEK_END); // seek to end of file @@ -782,34 +749,59 @@ void LLLogChat::deleteTranscripts() // static bool LLLogChat::isTranscriptExist(const LLUUID& avatar_id, bool is_group) { - std::string strFileName; - if (!is_group) - buildIMP2PLogFilename(avatar_id, LLStringUtil::null, strFileName); - else - gCacheName->getGroupName(avatar_id, strFileName); + std::vector list_of_transcriptions; + LLLogChat::getListOfTranscriptFiles(list_of_transcriptions); - std::string strFilePath = makeLogFileName(strFileName); - if ( (!strFilePath.empty()) && (LLFile::isfile(strFilePath)) ) + if (list_of_transcriptions.size() > 0) { - return true; + LLAvatarName avatar_name; + LLAvatarNameCache::get(avatar_id, &avatar_name); + std::string avatar_user_name = avatar_name.getAccountName(); + if(!is_group) + { + std::replace(avatar_user_name.begin(), avatar_user_name.end(), '.', '_'); + BOOST_FOREACH(std::string& transcript_file_name, list_of_transcriptions) + { + if (std::string::npos != transcript_file_name.find(avatar_user_name)) + { + return true; + } + } + } + else + { + std::string file_name; + gCacheName->getGroupName(avatar_id, file_name); + file_name = makeLogFileName(file_name); + BOOST_FOREACH(std::string& transcript_file_name, list_of_transcriptions) + { + if (transcript_file_name == file_name) + { + return true; + } + } + } + } - // If a dated file existed it'll return a valid path; otherwise, it returns the undated unverified path so we do need to check it - strFilePath = oldLogFileName(strFileName); - return (!strFilePath.empty()) && (LLFile::isfile(strFilePath)); + return false; } bool LLLogChat::isNearbyTranscriptExist() { - std::string strFilePath = makeLogFileName("chat"); - if ( (!strFilePath.empty()) && (LLFile::isfile(strFilePath)) ) + std::vector list_of_transcriptions; + LLLogChat::getListOfTranscriptFiles(list_of_transcriptions); + + std::string file_name; + file_name = makeLogFileName("chat"); + BOOST_FOREACH(std::string& transcript_file_name, list_of_transcriptions) { - return true; + if (transcript_file_name == file_name) + { + return true; + } } - - // If a dated file existed it'll return a valid path; otherwise, it returns the undated unverified path so we do need to check it - strFilePath = oldLogFileName("chat"); - return (!strFilePath.empty()) && (LLFile::isfile(strFilePath)); + return false; } //*TODO mark object's names in a special way so that they will be distinguishable form avatar name diff --git a/indra/newview/lllogchat.h b/indra/newview/lllogchat.h index d1dbf2d119..ca597599dd 100755 --- a/indra/newview/lllogchat.h +++ b/indra/newview/lllogchat.h @@ -92,12 +92,6 @@ public: static std::string timestamp(bool withdate = false); static std::string makeLogFileName(std::string(filename)); - - /** - * Attempts to build the correct IM P2P log filename for the specified agent UUID and agent name - */ - static bool buildIMP2PLogFilename(const LLUUID& idAgent, const std::string& strName, std::string& strFilename); - /** *Add functions to get old and non date stamped file names when needed */ -- cgit v1.2.3 From f69b11691d9911264d42a9c53d407a808591ee7c Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Wed, 23 Jul 2014 18:29:18 +0300 Subject: MAINT-4283 FIXED [BEAR] Viewer always crashes when opening "Scene Loading Monitor" if you closed it previously with the X --- indra/newview/llscenemonitor.cpp | 5 +++++ indra/newview/llscenemonitor.h | 1 + 2 files changed, 6 insertions(+) diff --git a/indra/newview/llscenemonitor.cpp b/indra/newview/llscenemonitor.cpp index 5b37fdf41b..179a73413e 100644 --- a/indra/newview/llscenemonitor.cpp +++ b/indra/newview/llscenemonitor.cpp @@ -709,6 +709,11 @@ void LLSceneMonitorView::onClose(bool app_quitting) setVisible(false); } +void LLSceneMonitorView::onClickCloseBtn(bool app_quitting) +{ + setVisible(false); +} + void LLSceneMonitorView::onVisibilityChange(BOOL visible) { if (!LLGLSLShader::sNoFixedFunction && visible) diff --git a/indra/newview/llscenemonitor.h b/indra/newview/llscenemonitor.h index e9ceb2aa2a..5bde3b5aab 100644 --- a/indra/newview/llscenemonitor.h +++ b/indra/newview/llscenemonitor.h @@ -116,6 +116,7 @@ public: protected: virtual void onClose(bool app_quitting=false); + virtual void onClickCloseBtn(bool app_quitting=false); }; extern LLSceneMonitorView* gSceneMonitorView; -- cgit v1.2.3 From 21aca031d7c6e34249dfb5ba5c19f04ee64f8a03 Mon Sep 17 00:00:00 2001 From: Mnikolenko ProductEngine Date: Fri, 25 Jul 2014 11:36:57 +0300 Subject: MAINT-4287 FIXED Check that gMenuHolder is not NULL --- indra/newview/lltoolpie.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index eec9760d2d..e4353aafaa 100755 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -1315,7 +1315,7 @@ void LLToolPie::handleDeselect() // Menu may be still up during transfer to different tool. // toolfocus and toolgrab should retain menu, they will clear it if needed MASK override_mask = gKeyboard ? gKeyboard->currentMask(TRUE) : 0; - if (!gMenuHolder->getVisible() || (override_mask & (MASK_ALT | MASK_CONTROL)) == 0) + if (gMenuHolder && (!gMenuHolder->getVisible() || (override_mask & (MASK_ALT | MASK_CONTROL)) == 0)) { // in most cases menu is useless without correct selection, so either keep both or discard both gMenuHolder->hideMenus(); -- cgit v1.2.3 From 1728556ba7283873f20427459dbf2bc74e405ccb Mon Sep 17 00:00:00 2001 From: Mnikolenko ProductEngine Date: Mon, 28 Jul 2014 11:01:00 +0300 Subject: MAINT-4286 FIXED Dragging outfits folder onto cloud avatar in Bear crashes the viewer --- indra/newview/llaisapi.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/indra/newview/llaisapi.cpp b/indra/newview/llaisapi.cpp index da66ea357a..623458cb08 100755 --- a/indra/newview/llaisapi.cpp +++ b/indra/newview/llaisapi.cpp @@ -380,8 +380,11 @@ void AISUpdate::parseMeta(const LLSD& update) it != cat_ids.end(); ++it) { LLViewerInventoryCategory *cat = gInventory.getCategory(*it); - mCatDescendentDeltas[cat->getParentUUID()]--; - mObjectsDeletedIds.insert(*it); + if(cat) + { + mCatDescendentDeltas[cat->getParentUUID()]--; + mObjectsDeletedIds.insert(*it); + } } // parse _categories_items_removed -> mObjectsDeletedIds @@ -392,8 +395,11 @@ void AISUpdate::parseMeta(const LLSD& update) it != item_ids.end(); ++it) { LLViewerInventoryItem *item = gInventory.getItem(*it); - mCatDescendentDeltas[item->getParentUUID()]--; - mObjectsDeletedIds.insert(*it); + if(item) + { + mCatDescendentDeltas[item->getParentUUID()]--; + mObjectsDeletedIds.insert(*it); + } } // parse _broken_links_removed -> mObjectsDeletedIds @@ -403,8 +409,11 @@ void AISUpdate::parseMeta(const LLSD& update) it != broken_link_ids.end(); ++it) { LLViewerInventoryItem *item = gInventory.getItem(*it); - mCatDescendentDeltas[item->getParentUUID()]--; - mObjectsDeletedIds.insert(*it); + if(item) + { + mCatDescendentDeltas[item->getParentUUID()]--; + mObjectsDeletedIds.insert(*it); + } } // parse _created_items -- cgit v1.2.3 From 32e6df586db4d9f64c3e57bab42e9d8e99a38299 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Tue, 29 Jul 2014 14:58:24 +0300 Subject: MAINT-4086 FIXED Limit the number items "Replace Current Outfit" or "Wear" applies to COF folder is also limited now. --- indra/newview/llinventorybridge.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 13236ea7d9..33e557cddd 100755 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -2279,6 +2279,29 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, } } } + U32 max_items_to_wear = gSavedSettings.getU32("WearFolderLimit"); + if (is_movable + && move_is_into_current_outfit + && descendent_items.size() > max_items_to_wear) + { + LLInventoryModel::cat_array_t cats; + LLInventoryModel::item_array_t items; + LLFindWearablesEx not_worn(/*is_worn=*/ false, /*include_body_parts=*/ false); + gInventory.collectDescendentsIf(cat_id, + cats, + items, + LLInventoryModel::EXCLUDE_TRASH, + not_worn); + + if (items.size() > max_items_to_wear) + { + // Can't move 'large' folders into current outfit: MAINT-4086 + is_movable = FALSE; + LLStringUtil::format_map_t args; + args["AMOUNT"] = llformat("%d", max_items_to_wear); + tooltip_msg = LLTrans::getString("TooltipTooManyWearables",args); + } + } if (is_movable && move_is_into_trash) { for (S32 i=0; i < descendent_items.size(); ++i) -- cgit v1.2.3 From 0ea34fba7347987d95926ef5ef20019a6e3bcf86 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Tue, 29 Jul 2014 17:55:06 +0300 Subject: MAINT-4289 FIXED [BEAR] Recent Items "Reset Filters" not working correctly reverted and remade MAINT-4218 --- indra/llui/llfolderviewitem.cpp | 38 ++++++++++++++++++---------- indra/llui/llfolderviewitem.h | 1 + indra/newview/llfolderviewmodelinventory.cpp | 4 +-- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp index 9a14d0e419..b9593e745d 100644 --- a/indra/llui/llfolderviewitem.cpp +++ b/indra/llui/llfolderviewitem.cpp @@ -256,6 +256,24 @@ BOOL LLFolderViewItem::passedFilter(S32 filter_generation) return getViewModelItem()->passedFilter(filter_generation); } +BOOL LLFolderViewItem::isPotentiallyVisible(S32 filter_generation) +{ + // Item should be visible if: + // 1. item passed current filter + // 2. item was updated (gen < 0) but has descendants that passed filter + // 3. item was recently updated and was visible before update + + LLFolderViewModelItem* model = getViewModelItem(); + if (model->getLastFilterGeneration() < 0) + { + return model->descendantsPassedFilter(filter_generation) || getVisible(); + } + else + { + return model->passedFilter(filter_generation); + } +} + void LLFolderViewItem::refresh() { LLFolderViewModelItem& vmi = *getViewModelItem(); @@ -968,11 +986,10 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height ) getRoot()->getFolderViewModel()->sort(this); LL_RECORD_BLOCK_TIME(FTM_ARRANGE); - + // evaluate mHasVisibleChildren - bool default_filter = getRoot()->getFolderViewModel()->getFilter().isDefault(); - mHasVisibleChildren = default_filter && (mItems.size() || mFolders.size()); - if (!default_filter && getViewModelItem()->descendantsPassedFilter()) + mHasVisibleChildren = false; + if (getViewModelItem()->descendantsPassedFilter()) { // We have to verify that there's at least one child that's not filtered out bool found = false; @@ -980,7 +997,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height ) for (items_t::iterator iit = mItems.begin(); iit != mItems.end(); ++iit) { LLFolderViewItem* itemp = (*iit); - found = itemp->passedFilter(); + found = itemp->isPotentiallyVisible(); if (found) break; } @@ -990,7 +1007,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height ) for (folders_t::iterator fit = mFolders.begin(); fit != mFolders.end(); ++fit) { LLFolderViewFolder* folderp = (*fit); - found = folderp->passedFilter(); + found = folderp->isPotentiallyVisible(); if (found) break; } @@ -1023,12 +1040,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height ) for(folders_t::iterator fit = mFolders.begin(); fit != mFolders.end(); ++fit) { LLFolderViewFolder* folderp = (*fit); - - // passedFilter() will show everything that passed filter or has descendants that passed filter - // also it will hide all filter-pending folders (they will be shown later if needed). - // but since refreshed folders are 'pending', they can be rendered invisible by passedFilter() - // even if we are not using filter at the moment, default_filter is used to prevent it - folderp->setVisible(default_filter || folderp->passedFilter()); + folderp->setVisible(folderp->isPotentiallyVisible()); if (folderp->getVisible()) { @@ -1047,7 +1059,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height ) iit != mItems.end(); ++iit) { LLFolderViewItem* itemp = (*iit); - itemp->setVisible(default_filter || itemp->passedFilter()); + itemp->setVisible(itemp->isPotentiallyVisible()); if (itemp->getVisible()) { diff --git a/indra/llui/llfolderviewitem.h b/indra/llui/llfolderviewitem.h index a9b0201236..0cd20a0f2d 100644 --- a/indra/llui/llfolderviewitem.h +++ b/indra/llui/llfolderviewitem.h @@ -254,6 +254,7 @@ public: S32 getIndentation() { return mIndentation; } virtual BOOL passedFilter(S32 filter_generation = -1); + virtual BOOL isPotentiallyVisible(S32 filter_generation = -1); // refresh information from the object being viewed. virtual void refresh(); diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp index 11d49ff784..7615c12043 100755 --- a/indra/newview/llfolderviewmodelinventory.cpp +++ b/indra/newview/llfolderviewmodelinventory.cpp @@ -129,15 +129,13 @@ void LLFolderViewModelItemInventory::requestSort() void LLFolderViewModelItemInventory::setPassedFilter(bool passed, S32 filter_generation, std::string::size_type string_offset, std::string::size_type string_size) { - bool init_state = getLastFilterGeneration() < 0; LLFolderViewModelItemCommon::setPassedFilter(passed, filter_generation, string_offset, string_size); bool before = mPrevPassedAllFilters; mPrevPassedAllFilters = passedFilter(filter_generation); - if (before != mPrevPassedAllFilters || (init_state && before && !mFolderViewItem->getVisible())) + if (before != mPrevPassedAllFilters) { // Need to rearrange the folder if the filtered state of the item changed - // or folder was hidden during update as filter-dirty (MAINT-4218) LLFolderViewFolder* parent_folder = mFolderViewItem->getParentFolder(); if (parent_folder) { -- cgit v1.2.3 From 21a0ea1209acc5f531e9ae7a477d0361f107aeee Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Wed, 30 Jul 2014 18:39:50 +0300 Subject: MAINT-4218 Adding clothing from inventory closes THAT clothing folder and hides THAT folder fixed issue with 'yet to be started filter' and 'dirty-visible' item. --- indra/llui/llfolderviewitem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp index b9593e745d..7c88f8fb9b 100644 --- a/indra/llui/llfolderviewitem.cpp +++ b/indra/llui/llfolderviewitem.cpp @@ -264,7 +264,7 @@ BOOL LLFolderViewItem::isPotentiallyVisible(S32 filter_generation) // 3. item was recently updated and was visible before update LLFolderViewModelItem* model = getViewModelItem(); - if (model->getLastFilterGeneration() < 0) + if (model->getLastFilterGeneration() < 0 && !getFolderViewModel()->getFilter().isModified()) { return model->descendantsPassedFilter(filter_generation) || getVisible(); } -- cgit v1.2.3 From 4723375709313d99ec8243179e71a114322f810e Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 31 Jul 2014 18:14:38 +0300 Subject: MAINT-4290 FIXED [BEAR] Recent Items flashes badly and sometimes blanks out when any change is made to inventory and especially when inventory is fetching from a clean cache --- indra/newview/llinventorypanel.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index adfdfebae7..4491ec8488 100755 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -590,9 +590,20 @@ void LLInventoryPanel::modelChanged(U32 mask) } } - if ("Recent Items" == getName()) + if (mask & (LLInventoryObserver::STRUCTURE | LLInventoryObserver::REMOVE)) { - getFilter().setModified(); + // STRUCTURE and REMOVE model changes usually fail to update (clean) + // mMostFilteredDescendantGeneration of parent folder and dirtyFilter() + // is not sufficient for successful filter update, so we need to check + // all already passed element over again to remove obsolete elements. + // New items or moved items should be sufficiently covered by + // dirtyFilter(). + LLInventoryFilter& filter = getFilter(); + if (filter.getFilterTypes() & LLInventoryFilter::FILTERTYPE_DATE + || filter.isNotDefault()) + { + filter.setModified(LLFolderViewFilter::FILTER_MORE_RESTRICTIVE); + } } } -- cgit v1.2.3 From 7aca96c2414036386c37c015228e4d01efcc5890 Mon Sep 17 00:00:00 2001 From: maksymsproductengine Date: Thu, 31 Jul 2014 20:11:17 +0300 Subject: MAINT-4292 FIXED Make Merchant Outbox Folder not movable (protected) --- indra/llinventory/llfoldertype.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/llinventory/llfoldertype.cpp b/indra/llinventory/llfoldertype.cpp index 5f8aaae20b..23bf6da1f9 100755 --- a/indra/llinventory/llfoldertype.cpp +++ b/indra/llinventory/llfoldertype.cpp @@ -93,7 +93,7 @@ LLFolderDictionary::LLFolderDictionary() addEntry(LLFolderType::FT_MESH, new FolderEntry("mesh", TRUE)); addEntry(LLFolderType::FT_INBOX, new FolderEntry("inbox", TRUE)); - addEntry(LLFolderType::FT_OUTBOX, new FolderEntry("outbox", FALSE)); + addEntry(LLFolderType::FT_OUTBOX, new FolderEntry("outbox", TRUE)); addEntry(LLFolderType::FT_BASIC_ROOT, new FolderEntry("basic_rt", TRUE)); -- cgit v1.2.3 From 6dc90470275a6d1b1625a05432e63fa54b889ae6 Mon Sep 17 00:00:00 2001 From: Mnikolenko ProductEngine Date: Mon, 4 Aug 2014 12:39:47 +0300 Subject: MAINT-4293 FIXED [BEAR] Very slow inventory fetch on Bear compared to current release) --- indra/newview/llviewerwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index d042bd847e..9dcd0b81e0 100755 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1969,7 +1969,7 @@ void LLViewerWindow::initWorldUI() // Force gFloaterTools to initialize LLFloaterReg::getInstance("build"); - LLFloaterReg::hideInstance("build"); + // Status bar LLPanel* status_bar_container = getRootView()->getChild("status_bar_container"); -- cgit v1.2.3 From c03e22e420a17e47b597c90978eb2f4d206f2ffe Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Wed, 6 Aug 2014 17:50:40 +0300 Subject: MAINT-4325 FIXED [BEAR] Fix to "Reset Filters" causes empty folders to appear in Recent tab of Inventory --- indra/newview/llpanelmaininventory.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 2378e09979..ddf1a63c6e 100755 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -151,7 +151,9 @@ BOOL LLPanelMainInventory::postBuild() recent_items_panel->setSinceLogoff(TRUE); recent_items_panel->setSortOrder(LLInventoryFilter::SO_DATE); recent_items_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS); - recent_items_panel->getFilter().markDefault(); + LLInventoryFilter& recent_filter = recent_items_panel->getFilter(); + recent_filter.setFilterObjectTypes(recent_filter.getFilterObjectTypes() & ~(0x1 << LLInventoryType::IT_CATEGORY)); + recent_filter.markDefault(); recent_items_panel->setSelectCallback(boost::bind(&LLPanelMainInventory::onSelectionChange, this, recent_items_panel, _1, _2)); } @@ -183,13 +185,6 @@ BOOL LLPanelMainInventory::postBuild() } - if (recent_items_panel) - { - U64 types = recent_items_panel->getFilter().getFilterObjectTypes(); - types &= ~(0x1 << LLInventoryType::IT_CATEGORY); - recent_items_panel->getFilter().setFilterObjectTypes(types); - } - mFilterEditor = getChild("inventory search editor"); if (mFilterEditor) { -- cgit v1.2.3 From cf159e169573c18b259fdab3ace64c946a0620a1 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 7 Aug 2014 17:32:25 +0300 Subject: MAINT-4325 FIXED [BEAR] Fix to "Reset Filters" causes empty folders to appear in Recent tab of Inventory Clean up - reverted fragment from MAINT-1192, it is no longer needed. --- indra/newview/llinventorypanel.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 4491ec8488..32e5675f5e 100755 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -1492,8 +1492,6 @@ public: getFilter().setFilterCategoryTypes(getFilter().getFilterCategoryTypes() | (1ULL << LLFolderType::FT_INBOX)); } - /*virtual*/ void onVisibilityChange(BOOL new_visibility); - protected: LLInventoryRecentItemsPanel (const Params&); friend class LLUICtrlFactory; @@ -1506,13 +1504,6 @@ LLInventoryRecentItemsPanel::LLInventoryRecentItemsPanel( const Params& params) mInvFVBridgeBuilder = &RECENT_ITEMS_BUILDER; } -void LLInventoryRecentItemsPanel::onVisibilityChange(BOOL new_visibility) -{ - if(new_visibility) - { - getFilter().setModified(); - } -} namespace LLInitParam { void TypeValues::declareValues() -- cgit v1.2.3 From 06b605b8666f2336e77126f8ff47765115c08a27 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 8 Aug 2014 15:20:28 -0400 Subject: MAINT-4257 WIP - already fixed by MAINT-4286, added some warnings --- indra/newview/llaisapi.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/indra/newview/llaisapi.cpp b/indra/newview/llaisapi.cpp index 623458cb08..96de15bf75 100755 --- a/indra/newview/llaisapi.cpp +++ b/indra/newview/llaisapi.cpp @@ -385,6 +385,10 @@ void AISUpdate::parseMeta(const LLSD& update) mCatDescendentDeltas[cat->getParentUUID()]--; mObjectsDeletedIds.insert(*it); } + else + { + LL_WARNS("Inventory") << "removed category not found " << *it << LL_ENDL; + } } // parse _categories_items_removed -> mObjectsDeletedIds @@ -400,6 +404,10 @@ void AISUpdate::parseMeta(const LLSD& update) mCatDescendentDeltas[item->getParentUUID()]--; mObjectsDeletedIds.insert(*it); } + else + { + LL_WARNS("Inventory") << "removed item not found " << *it << LL_ENDL; + } } // parse _broken_links_removed -> mObjectsDeletedIds @@ -414,6 +422,10 @@ void AISUpdate::parseMeta(const LLSD& update) mCatDescendentDeltas[item->getParentUUID()]--; mObjectsDeletedIds.insert(*it); } + else + { + LL_WARNS("Inventory") << "broken link not found " << *it << LL_ENDL; + } } // parse _created_items @@ -804,7 +816,7 @@ void AISUpdate::doUpdate() // Since this is a copy of the category *before* the accounting update, above, // we need to transfer back the updated version/descendent count. LLViewerInventoryCategory* curr_cat = gInventory.getCategory(new_category->getUUID()); - if (NULL == curr_cat) + if (!curr_cat) { LL_WARNS("Inventory") << "Failed to update unknown category " << new_category->getUUID() << LL_ENDL; } -- cgit v1.2.3 From d56958e68934e673195ec2966e0a3c20dac7fb41 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 13 Aug 2014 17:57:09 -0400 Subject: MAINT-4356 adjust abuse report category label for gaming --- indra/newview/skins/default/xui/en/floater_report_abuse.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/default/xui/en/floater_report_abuse.xml b/indra/newview/skins/default/xui/en/floater_report_abuse.xml index c50c8c02fe..af62c7a9bc 100755 --- a/indra/newview/skins/default/xui/en/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/en/floater_report_abuse.xml @@ -253,7 +253,7 @@ name="Land__Encroachment__Objects_textures" value="63" /> -- cgit v1.2.3 From b740891b1f19c3d0e9ee494ef3bdb8adc3dcb151 Mon Sep 17 00:00:00 2001 From: maksymsproductengine Date: Fri, 15 Aug 2014 19:40:21 +0300 Subject: MAINT-4293 [BEAR] Very slow inventory fetch on Bear compared to current release: this change-set will does this issue not [BEAR] and reverts most part of fix for MAINT-1192. --- indra/newview/llinventorypanel.cpp | 6 ------ indra/newview/llpanelmaininventory.cpp | 4 +--- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 32e5675f5e..ce7d4f50ad 100755 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -337,12 +337,6 @@ void LLInventoryPanel::setFilterTypes(U64 types, LLInventoryFilter::EFilterType { if (filter_type == LLInventoryFilter::FILTERTYPE_OBJECT) { - //Don't show folder without recent item in it - if ("Recent Items" == getName()) - { - types &= ~(0x1 << LLInventoryType::IT_CATEGORY); - } - getFilter().setFilterObjectTypes(types); } if (filter_type == LLInventoryFilter::FILTERTYPE_CATEGORY) diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index ddf1a63c6e..90dfb24377 100755 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -151,9 +151,7 @@ BOOL LLPanelMainInventory::postBuild() recent_items_panel->setSinceLogoff(TRUE); recent_items_panel->setSortOrder(LLInventoryFilter::SO_DATE); recent_items_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS); - LLInventoryFilter& recent_filter = recent_items_panel->getFilter(); - recent_filter.setFilterObjectTypes(recent_filter.getFilterObjectTypes() & ~(0x1 << LLInventoryType::IT_CATEGORY)); - recent_filter.markDefault(); + recent_items_panel->getFilter().markDefault(); recent_items_panel->setSelectCallback(boost::bind(&LLPanelMainInventory::onSelectionChange, this, recent_items_panel, _1, _2)); } -- cgit v1.2.3 From d632f91d942404f15d24fce741f12904f024798a Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 21 Aug 2014 16:12:40 -0700 Subject: GAMING-19 : Unknown content message on attempting to enter an SLSG restricted region with an ineligible account. --- indra/newview/llviewermessage.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 703c6d87c6..9554f06342 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -5828,11 +5828,11 @@ bool handle_teleport_access_blocked(LLSD& llsdBlock) maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_PreferencesOutOfSync", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback); returnValue = true; } - } + } - if ((maturityLevelNotification == NULL) || maturityLevelNotification->isIgnored()) + // If we have a notification but it is normally ignored, give a simple one instead of an in-your-face dialog + if (returnValue && (maturityLevelNotification != NULL) && maturityLevelNotification->isIgnored()) { - // Given a simple notification if no maturityLevelNotification is set or it is ignore LLNotificationsUtil::add(notificationID + notifySuffix, llsdBlock); } -- cgit v1.2.3 From 123f8e77cd643dcb8f701fafdaf1233e3ef03892 Mon Sep 17 00:00:00 2001 From: maksymsproductengine Date: Fri, 22 Aug 2014 16:38:37 +0300 Subject: MAINT-4288 FIXED Backed out changeset for MAINT-4018 (c92d43623c2c) --- indra/newview/llavatariconctrl.cpp | 5 ++--- indra/newview/llviewertexture.cpp | 11 ----------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp index b89b0d9900..746b541f9d 100755 --- a/indra/newview/llavatariconctrl.cpp +++ b/indra/newview/llavatariconctrl.cpp @@ -247,7 +247,7 @@ void LLAvatarIconCtrl::setValue(const LLSD& value) { LLAvatarPropertiesProcessor* app = LLAvatarPropertiesProcessor::getInstance(); - if (mAvatarId.notNull() && mAvatarId != value.asUUID()) + if (mAvatarId.notNull()) { app->removeObserver(mAvatarId, this); } @@ -255,7 +255,6 @@ void LLAvatarIconCtrl::setValue(const LLSD& value) if (mAvatarId != value.asUUID()) { mAvatarId = value.asUUID(); - app->addObserver(mAvatarId, this); // *BUG: This will return stale icons if a user changes their // profile picture. However, otherwise we send too many upstream @@ -271,7 +270,7 @@ void LLAvatarIconCtrl::setValue(const LLSD& value) // People API, rather than sending AvatarPropertyRequest // messages. People API already hits the user table. LLIconCtrl::setValue(mDefaultIconName); - // duplicated requests are filtered later if there are any + app->addObserver(mAvatarId, this); app->sendAvatarPropertiesRequest(mAvatarId); } } diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 3f6d244af1..4e2eef39d6 100755 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -1480,17 +1480,6 @@ void LLViewerFetchedTexture::processTextureStats() { mDesiredDiscardLevel = 0; } - else if (mDontDiscard && (mBoostLevel == LLGLTexture::BOOST_UI || mBoostLevel == LLGLTexture::BOOST_ICON)) - { - if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT) - { - mDesiredDiscardLevel = 1; // MAX_IMAGE_SIZE_DEFAULT = 1024 and max size ever is 2048 - } - else - { - mDesiredDiscardLevel = 0; - } - } else if(!mFullWidth || !mFullHeight) { mDesiredDiscardLevel = llmin(getMaxDiscardLevel(), (S32)mLoadedCallbackDesiredDiscardLevel); -- cgit v1.2.3 From 19ce74567954d5b234cb931f7faa5fe58037c513 Mon Sep 17 00:00:00 2001 From: MNikolenko ProductEngine Date: Tue, 9 Sep 2014 20:54:05 +0300 Subject: MAINT-4432 FIXED Packets Lost under Help -> About Second Life does not display correctly --- indra/newview/skins/default/xui/fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index 46fcbe005f..bca134eef3 100755 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -71,7 +71,7 @@ Version Qt Webkit : [QT_WEBKIT_VERSION] Version serveur vocal : [VOICE_VERSION] - Paquets perdus : [PACKETS_LOST,nombre,0]/[PACKETS_IN,nombre,0] ([PACKETS_PCT,nombre,1]%) + Paquets perdus : [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) Erreur lors de la récupération de l'URL des notes de version du serveur. -- cgit v1.2.3 From 7982ae6b911b8e0400aa593c476b8a634174a6a5 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 28 Aug 2014 19:36:47 +0300 Subject: MAINT-3967 FIXED Up arrow key does not move the cursor up in chat field. Reverted previous two fixes and modified LLTextBase::changeLine() --- indra/llui/lltextbase.cpp | 34 +++++++----------------- indra/llui/lltextbase.h | 1 - indra/llui/lltexteditor.cpp | 64 ++------------------------------------------- 3 files changed, 11 insertions(+), 88 deletions(-) diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 2d7062e71d..9b125a85b9 100755 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -218,8 +218,7 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p) mParseHighlights(p.parse_highlights), mBGVisible(p.bg_visible), mScroller(NULL), - mStyleDirty(true), - mDrawRightmostCursor(false) + mStyleDirty(true) { if(p.allow_scroll) { @@ -1505,11 +1504,6 @@ void LLTextBase::reflow() // find and erase line info structs starting at start_index and going to end of document if (!mLineInfoList.empty()) { - if (mDrawRightmostCursor) - { - start_index--; - } - // find first element whose end comes after start_index line_list_t::iterator iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), start_index, line_end_compare()); line_start_index = iter->mDocIndexStart; @@ -1698,11 +1692,6 @@ S32 LLTextBase::getLineNumFromDocIndex( S32 doc_index, bool include_wordwrap) co } else { - if (mDrawRightmostCursor) - { - doc_index--; - } - line_list_t::const_iterator iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), doc_index, line_end_compare()); if (include_wordwrap) { @@ -1731,11 +1720,6 @@ S32 LLTextBase::getLineOffsetFromDocIndex( S32 startpos, bool include_wordwrap) } else { - if (mDrawRightmostCursor) - { - startpos--; - } - line_list_t::const_iterator iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), startpos, line_end_compare()); return startpos - iter->mDocIndexStart; } @@ -2456,7 +2440,7 @@ S32 LLTextBase::getDocIndexFromLocalCoord( S32 local_x, S32 local_y, BOOL round, } else if (hit_past_end_of_line && segmentp->getEnd() >= line_iter->mDocIndexEnd) { - if (getLineNumFromDocIndex(line_iter->mDocIndexEnd - 1) == line_iter->mLineNum && !mDrawRightmostCursor) + if (getLineNumFromDocIndex(line_iter->mDocIndexEnd - 1) == line_iter->mLineNum) { // if segment wraps to the next line we should step one char back // to compensate for the space char between words @@ -2489,13 +2473,7 @@ LLRect LLTextBase::getDocRectFromDocIndex(S32 pos) const // clamp pos to valid values pos = llclamp(pos, 0, mLineInfoList.back().mDocIndexEnd - 1); - S32 corrected_pos = pos; - if (mDrawRightmostCursor && pos > 0) - { - corrected_pos--; - } - - line_list_t::const_iterator line_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), corrected_pos, line_end_compare()); + line_list_t::const_iterator line_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), pos, line_end_compare()); doc_rect.mLeft = line_iter->mRect.mLeft; doc_rect.mBottom = line_iter->mRect.mBottom; @@ -2670,6 +2648,12 @@ void LLTextBase::changeLine( S32 delta ) LLRect visible_region = getVisibleDocumentRect(); S32 new_cursor_pos = getDocIndexFromLocalCoord(mDesiredXPixel, mLineInfoList[new_line].mRect.mBottom + mVisibleTextRect.mBottom - visible_region.mBottom, TRUE); + S32 actual_line = getLineNumFromDocIndex(new_cursor_pos); + if (actual_line != new_line) + { + // line edge, correcting position by 1 to move onto proper line + new_cursor_pos += new_line - actual_line; + } setCursorPos(new_cursor_pos, true); } } diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index 9c3bc3ed98..738b4d5b8e 100755 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -618,7 +618,6 @@ protected: // cursor S32 mCursorPos; // I-beam is just after the mCursorPos-th character. - bool mDrawRightmostCursor; // When cursor is on the rightmost position on the line S32 mDesiredXPixel; // X pixel position where the user wants the cursor to be LLFrameTimer mCursorBlinkTimer; // timer that controls cursor blinking diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 9219490bf2..cf5fdef539 100755 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -1124,13 +1124,6 @@ void LLTextEditor::addChar(llwchar wc) setCursorPos(new_cursor_pos); } } - - if (mCursorPos > 0) - { - LLRect current_cursor_rect = getDocRectFromDocIndex(mCursorPos); - LLRect prev_cursor_rect = getDocRectFromDocIndex(mCursorPos - 1); - mDrawRightmostCursor = current_cursor_rect.mBottom < prev_cursor_rect.mBottom; - } } void LLTextEditor::addLineBreakChar(BOOL group_together) @@ -1277,12 +1270,6 @@ BOOL LLTextEditor::handleNavigationKey(const KEY key, const MASK mask) break; case KEY_HOME: - if(mDrawRightmostCursor && mCursorPos > 0) - { - mCursorPos--; - mDrawRightmostCursor = false; - } - startOfLine(); break; @@ -1297,23 +1284,6 @@ BOOL LLTextEditor::handleNavigationKey(const KEY key, const MASK mask) case KEY_END: endOfLine(); - { - S32 last_line_index = mLineInfoList.size() - 1; - if (getLineNumFromDocIndex(mCursorPos, true) < last_line_index) - { - mDrawRightmostCursor = true; - setCursorPos(mCursorPos + 1); - } - else if (last_line_index > 0) // only for two and more lines - { - S32 prev_line_width = mLineInfoList[last_line_index - 1].mRect.getWidth(); - S32 last_line_width = mLineInfoList[last_line_index].mRect.getWidth(); - if (prev_line_width <= last_line_width) - { - mDrawRightmostCursor = true; - } - } - } break; case KEY_LEFT: @@ -1325,18 +1295,7 @@ BOOL LLTextEditor::handleNavigationKey(const KEY key, const MASK mask) { if( 0 < mCursorPos ) { - LLRect current_cursor_rect = getDocRectFromDocIndex(mCursorPos); - LLRect next_cursor_rect = getDocRectFromDocIndex(mCursorPos - 1); - - if (current_cursor_rect.mBottom < next_cursor_rect.mBottom) - { - mDrawRightmostCursor = true; - } - else - { - mDrawRightmostCursor = false; - setCursorPos(mCursorPos - 1); - } + setCursorPos(mCursorPos - 1); } else { @@ -1354,26 +1313,7 @@ BOOL LLTextEditor::handleNavigationKey(const KEY key, const MASK mask) { if( mCursorPos < getLength() ) { - LLRect current_cursor_rect = getDocRectFromDocIndex(mCursorPos); - LLRect next_cursor_rect = getDocRectFromDocIndex(mCursorPos + 1); - - if (current_cursor_rect.mBottom > next_cursor_rect.mBottom) - { - if (mDrawRightmostCursor) - { - mDrawRightmostCursor = false; - } - else - { - mDrawRightmostCursor = true; - setCursorPos(mCursorPos + 1); - } - } - else - { - mDrawRightmostCursor = false; - setCursorPos(mCursorPos + 1); - } + setCursorPos(mCursorPos + 1); } else { -- cgit v1.2.3 From b68624da0ec4da51722e39f9adf275725ee3a29f Mon Sep 17 00:00:00 2001 From: eli Date: Mon, 15 Sep 2014 15:24:53 -0700 Subject: FIX INTL-151 translation for Viewer Set41 for viewer-release-nui-login in 9 languages --- .../skins/default/xui/de/floater_big_preview.xml | 2 + .../skins/default/xui/de/floater_facebook.xml | 20 ++++ .../skins/default/xui/de/floater_flickr.xml | 17 +++ .../skins/default/xui/de/floater_perms_default.xml | 6 ++ .../skins/default/xui/de/floater_report_abuse.xml | 10 +- .../default/xui/de/floater_script_ed_prefs.xml | 48 +++++++++ .../skins/default/xui/de/floater_snapshot.xml | 12 ++- .../newview/skins/default/xui/de/floater_stats.xml | 9 +- .../newview/skins/default/xui/de/floater_tools.xml | 2 +- .../skins/default/xui/de/floater_twitter.xml | 17 +++ .../skins/default/xui/de/menu_conversation.xml | 1 + indra/newview/skins/default/xui/de/menu_object.xml | 1 + indra/newview/skins/default/xui/de/menu_viewer.xml | 21 ++-- .../newview/skins/default/xui/de/notifications.xml | 38 ++++++- .../default/xui/de/panel_facebook_account.xml | 15 +++ .../default/xui/de/panel_facebook_friends.xml | 12 +++ .../skins/default/xui/de/panel_facebook_photo.xml | 26 +++++ .../skins/default/xui/de/panel_facebook_place.xml | 17 +++ .../skins/default/xui/de/panel_facebook_status.xml | 14 +++ .../skins/default/xui/de/panel_flickr_account.xml | 15 +++ .../skins/default/xui/de/panel_flickr_photo.xml | 41 ++++++++ .../skins/default/xui/de/panel_group_bulk_ban.xml | 43 ++++++++ .../skins/default/xui/de/panel_group_invite.xml | 2 +- .../skins/default/xui/de/panel_group_roles.xml | 24 ++++- indra/newview/skins/default/xui/de/panel_login.xml | 51 +++------ .../skins/default/xui/de/panel_login_first.xml | 33 ++++++ .../default/xui/de/panel_preferences_advanced.xml | 1 + .../default/xui/de/panel_preferences_general.xml | 10 +- .../default/xui/de/panel_preferences_privacy.xml | 5 +- .../skins/default/xui/de/panel_script_ed.xml | 5 +- .../default/xui/de/panel_snapshot_options.xml | 12 ++- .../default/xui/de/panel_teleport_history_item.xml | 1 + .../skins/default/xui/de/panel_twitter_account.xml | 15 +++ .../skins/default/xui/de/panel_twitter_photo.xml | 32 ++++++ .../newview/skins/default/xui/de/role_actions.xml | 1 + indra/newview/skins/default/xui/de/strings.xml | 114 ++++++++++++++++++++- .../skins/default/xui/es/floater_big_preview.xml | 2 + .../skins/default/xui/es/floater_facebook.xml | 20 ++++ .../skins/default/xui/es/floater_flickr.xml | 17 +++ .../skins/default/xui/es/floater_perms_default.xml | 6 ++ .../skins/default/xui/es/floater_report_abuse.xml | 12 +-- .../default/xui/es/floater_script_ed_prefs.xml | 48 +++++++++ .../skins/default/xui/es/floater_snapshot.xml | 8 +- .../newview/skins/default/xui/es/floater_stats.xml | 9 +- .../newview/skins/default/xui/es/floater_tools.xml | 2 +- .../skins/default/xui/es/floater_twitter.xml | 17 +++ .../skins/default/xui/es/menu_conversation.xml | 1 + indra/newview/skins/default/xui/es/menu_object.xml | 1 + indra/newview/skins/default/xui/es/menu_viewer.xml | 21 ++-- .../newview/skins/default/xui/es/notifications.xml | 38 ++++++- .../default/xui/es/panel_facebook_account.xml | 15 +++ .../default/xui/es/panel_facebook_friends.xml | 12 +++ .../skins/default/xui/es/panel_facebook_photo.xml | 26 +++++ .../skins/default/xui/es/panel_facebook_place.xml | 17 +++ .../skins/default/xui/es/panel_facebook_status.xml | 14 +++ .../skins/default/xui/es/panel_flickr_account.xml | 15 +++ .../skins/default/xui/es/panel_flickr_photo.xml | 41 ++++++++ .../skins/default/xui/es/panel_group_bulk_ban.xml | 43 ++++++++ .../skins/default/xui/es/panel_group_invite.xml | 2 +- .../skins/default/xui/es/panel_group_roles.xml | 25 ++++- indra/newview/skins/default/xui/es/panel_login.xml | 51 +++------ .../skins/default/xui/es/panel_login_first.xml | 33 ++++++ .../default/xui/es/panel_preferences_advanced.xml | 1 + .../default/xui/es/panel_preferences_general.xml | 10 +- .../default/xui/es/panel_preferences_privacy.xml | 5 +- .../skins/default/xui/es/panel_script_ed.xml | 5 +- .../default/xui/es/panel_snapshot_options.xml | 9 ++ .../default/xui/es/panel_teleport_history_item.xml | 1 + .../skins/default/xui/es/panel_twitter_account.xml | 15 +++ .../skins/default/xui/es/panel_twitter_photo.xml | 32 ++++++ .../newview/skins/default/xui/es/role_actions.xml | 1 + indra/newview/skins/default/xui/es/strings.xml | 114 ++++++++++++++++++++- .../skins/default/xui/fr/floater_big_preview.xml | 2 + .../skins/default/xui/fr/floater_facebook.xml | 20 ++++ .../skins/default/xui/fr/floater_flickr.xml | 17 +++ .../skins/default/xui/fr/floater_perms_default.xml | 6 ++ .../skins/default/xui/fr/floater_report_abuse.xml | 12 +-- .../default/xui/fr/floater_script_ed_prefs.xml | 48 +++++++++ .../skins/default/xui/fr/floater_snapshot.xml | 8 +- .../newview/skins/default/xui/fr/floater_stats.xml | 9 +- .../newview/skins/default/xui/fr/floater_tools.xml | 2 +- .../skins/default/xui/fr/floater_twitter.xml | 17 +++ .../skins/default/xui/fr/menu_conversation.xml | 1 + indra/newview/skins/default/xui/fr/menu_object.xml | 1 + indra/newview/skins/default/xui/fr/menu_viewer.xml | 21 ++-- .../newview/skins/default/xui/fr/notifications.xml | 38 ++++++- .../default/xui/fr/panel_facebook_account.xml | 15 +++ .../default/xui/fr/panel_facebook_friends.xml | 12 +++ .../skins/default/xui/fr/panel_facebook_photo.xml | 26 +++++ .../skins/default/xui/fr/panel_facebook_place.xml | 17 +++ .../skins/default/xui/fr/panel_facebook_status.xml | 14 +++ .../skins/default/xui/fr/panel_flickr_account.xml | 15 +++ .../skins/default/xui/fr/panel_flickr_photo.xml | 41 ++++++++ .../skins/default/xui/fr/panel_group_bulk_ban.xml | 43 ++++++++ .../skins/default/xui/fr/panel_group_invite.xml | 2 +- .../skins/default/xui/fr/panel_group_roles.xml | 25 ++++- indra/newview/skins/default/xui/fr/panel_login.xml | 51 +++------ .../skins/default/xui/fr/panel_login_first.xml | 33 ++++++ .../default/xui/fr/panel_preferences_advanced.xml | 1 + .../default/xui/fr/panel_preferences_general.xml | 10 +- .../default/xui/fr/panel_preferences_privacy.xml | 4 +- .../skins/default/xui/fr/panel_script_ed.xml | 5 +- .../default/xui/fr/panel_snapshot_options.xml | 9 ++ .../default/xui/fr/panel_teleport_history_item.xml | 1 + .../skins/default/xui/fr/panel_twitter_account.xml | 15 +++ .../skins/default/xui/fr/panel_twitter_photo.xml | 32 ++++++ .../newview/skins/default/xui/fr/role_actions.xml | 1 + indra/newview/skins/default/xui/fr/strings.xml | 114 ++++++++++++++++++++- .../skins/default/xui/it/floater_big_preview.xml | 2 + .../skins/default/xui/it/floater_facebook.xml | 20 ++++ .../skins/default/xui/it/floater_flickr.xml | 17 +++ .../skins/default/xui/it/floater_perms_default.xml | 6 ++ .../skins/default/xui/it/floater_report_abuse.xml | 12 +-- .../default/xui/it/floater_script_ed_prefs.xml | 48 +++++++++ .../skins/default/xui/it/floater_snapshot.xml | 8 +- .../newview/skins/default/xui/it/floater_stats.xml | 9 +- .../newview/skins/default/xui/it/floater_tools.xml | 2 +- .../skins/default/xui/it/floater_twitter.xml | 17 +++ .../skins/default/xui/it/menu_conversation.xml | 1 + indra/newview/skins/default/xui/it/menu_object.xml | 1 + indra/newview/skins/default/xui/it/menu_viewer.xml | 21 ++-- .../newview/skins/default/xui/it/notifications.xml | 38 ++++++- .../default/xui/it/panel_facebook_account.xml | 15 +++ .../default/xui/it/panel_facebook_friends.xml | 12 +++ .../skins/default/xui/it/panel_facebook_photo.xml | 26 +++++ .../skins/default/xui/it/panel_facebook_place.xml | 17 +++ .../skins/default/xui/it/panel_facebook_status.xml | 14 +++ .../skins/default/xui/it/panel_flickr_account.xml | 15 +++ .../skins/default/xui/it/panel_flickr_photo.xml | 41 ++++++++ .../skins/default/xui/it/panel_group_bulk_ban.xml | 43 ++++++++ .../skins/default/xui/it/panel_group_invite.xml | 2 +- .../skins/default/xui/it/panel_group_roles.xml | 26 ++++- indra/newview/skins/default/xui/it/panel_login.xml | 51 +++------ .../skins/default/xui/it/panel_login_first.xml | 33 ++++++ .../default/xui/it/panel_preferences_advanced.xml | 1 + .../default/xui/it/panel_preferences_general.xml | 10 +- .../default/xui/it/panel_preferences_privacy.xml | 2 +- .../skins/default/xui/it/panel_script_ed.xml | 5 +- .../default/xui/it/panel_snapshot_options.xml | 9 ++ .../default/xui/it/panel_teleport_history_item.xml | 1 + .../skins/default/xui/it/panel_twitter_account.xml | 15 +++ .../skins/default/xui/it/panel_twitter_photo.xml | 32 ++++++ .../newview/skins/default/xui/it/role_actions.xml | 1 + indra/newview/skins/default/xui/it/strings.xml | 114 ++++++++++++++++++++- .../skins/default/xui/ja/floater_big_preview.xml | 2 + .../skins/default/xui/ja/floater_facebook.xml | 20 ++++ .../skins/default/xui/ja/floater_flickr.xml | 17 +++ .../skins/default/xui/ja/floater_perms_default.xml | 6 ++ .../skins/default/xui/ja/floater_report_abuse.xml | 12 +-- .../default/xui/ja/floater_script_ed_prefs.xml | 48 +++++++++ .../skins/default/xui/ja/floater_snapshot.xml | 8 +- .../newview/skins/default/xui/ja/floater_stats.xml | 9 +- .../newview/skins/default/xui/ja/floater_tools.xml | 2 +- .../skins/default/xui/ja/floater_twitter.xml | 17 +++ .../skins/default/xui/ja/menu_conversation.xml | 1 + indra/newview/skins/default/xui/ja/menu_object.xml | 1 + indra/newview/skins/default/xui/ja/menu_viewer.xml | 21 ++-- .../newview/skins/default/xui/ja/notifications.xml | 38 ++++++- .../default/xui/ja/panel_facebook_account.xml | 15 +++ .../default/xui/ja/panel_facebook_friends.xml | 12 +++ .../skins/default/xui/ja/panel_facebook_photo.xml | 26 +++++ .../skins/default/xui/ja/panel_facebook_place.xml | 17 +++ .../skins/default/xui/ja/panel_facebook_status.xml | 14 +++ .../skins/default/xui/ja/panel_flickr_account.xml | 15 +++ .../skins/default/xui/ja/panel_flickr_photo.xml | 41 ++++++++ .../skins/default/xui/ja/panel_group_bulk_ban.xml | 41 ++++++++ .../skins/default/xui/ja/panel_group_invite.xml | 2 +- .../skins/default/xui/ja/panel_group_roles.xml | 24 ++++- indra/newview/skins/default/xui/ja/panel_login.xml | 51 +++------ .../skins/default/xui/ja/panel_login_first.xml | 33 ++++++ .../default/xui/ja/panel_preferences_advanced.xml | 1 + .../default/xui/ja/panel_preferences_general.xml | 10 +- .../default/xui/ja/panel_preferences_privacy.xml | 2 +- .../skins/default/xui/ja/panel_script_ed.xml | 5 +- .../default/xui/ja/panel_snapshot_options.xml | 11 +- .../default/xui/ja/panel_teleport_history_item.xml | 1 + .../skins/default/xui/ja/panel_twitter_account.xml | 15 +++ .../skins/default/xui/ja/panel_twitter_photo.xml | 32 ++++++ .../newview/skins/default/xui/ja/role_actions.xml | 1 + indra/newview/skins/default/xui/ja/strings.xml | 114 ++++++++++++++++++++- .../skins/default/xui/ru/floater_big_preview.xml | 2 + .../skins/default/xui/ru/floater_facebook.xml | 20 ++++ .../skins/default/xui/ru/floater_flickr.xml | 17 +++ .../skins/default/xui/ru/floater_perms_default.xml | 6 ++ .../skins/default/xui/ru/floater_report_abuse.xml | 12 +-- .../default/xui/ru/floater_script_ed_prefs.xml | 48 +++++++++ .../skins/default/xui/ru/floater_snapshot.xml | 8 +- .../newview/skins/default/xui/ru/floater_stats.xml | 9 +- .../newview/skins/default/xui/ru/floater_tools.xml | 81 +-------------- .../skins/default/xui/ru/floater_twitter.xml | 17 +++ .../skins/default/xui/ru/menu_conversation.xml | 1 + indra/newview/skins/default/xui/ru/menu_object.xml | 1 + indra/newview/skins/default/xui/ru/menu_viewer.xml | 20 ++-- .../newview/skins/default/xui/ru/notifications.xml | 38 ++++++- .../default/xui/ru/panel_facebook_account.xml | 15 +++ .../default/xui/ru/panel_facebook_friends.xml | 12 +++ .../skins/default/xui/ru/panel_facebook_photo.xml | 26 +++++ .../skins/default/xui/ru/panel_facebook_place.xml | 17 +++ .../skins/default/xui/ru/panel_facebook_status.xml | 14 +++ .../skins/default/xui/ru/panel_flickr_account.xml | 15 +++ .../skins/default/xui/ru/panel_flickr_photo.xml | 40 ++++++++ .../skins/default/xui/ru/panel_group_bulk_ban.xml | 41 ++++++++ .../skins/default/xui/ru/panel_group_invite.xml | 2 +- .../skins/default/xui/ru/panel_group_roles.xml | 24 ++++- indra/newview/skins/default/xui/ru/panel_login.xml | 51 +++------ .../skins/default/xui/ru/panel_login_first.xml | 33 ++++++ .../default/xui/ru/panel_preferences_advanced.xml | 1 + .../default/xui/ru/panel_preferences_general.xml | 10 +- .../default/xui/ru/panel_preferences_privacy.xml | 2 +- .../skins/default/xui/ru/panel_script_ed.xml | 5 +- .../default/xui/ru/panel_snapshot_options.xml | 9 ++ .../default/xui/ru/panel_teleport_history_item.xml | 1 + .../skins/default/xui/ru/panel_twitter_account.xml | 15 +++ .../skins/default/xui/ru/panel_twitter_photo.xml | 32 ++++++ .../newview/skins/default/xui/ru/role_actions.xml | 1 + indra/newview/skins/default/xui/ru/strings.xml | 114 ++++++++++++++++++++- .../skins/default/xui/tr/floater_big_preview.xml | 2 + .../skins/default/xui/tr/floater_facebook.xml | 20 ++++ .../skins/default/xui/tr/floater_flickr.xml | 17 +++ .../skins/default/xui/tr/floater_perms_default.xml | 6 ++ .../skins/default/xui/tr/floater_report_abuse.xml | 12 +-- .../default/xui/tr/floater_script_ed_prefs.xml | 48 +++++++++ .../skins/default/xui/tr/floater_snapshot.xml | 8 +- .../newview/skins/default/xui/tr/floater_stats.xml | 9 +- .../newview/skins/default/xui/tr/floater_tools.xml | 81 +-------------- .../skins/default/xui/tr/floater_twitter.xml | 17 +++ .../skins/default/xui/tr/menu_conversation.xml | 1 + indra/newview/skins/default/xui/tr/menu_object.xml | 1 + indra/newview/skins/default/xui/tr/menu_viewer.xml | 21 ++-- .../newview/skins/default/xui/tr/notifications.xml | 38 ++++++- .../default/xui/tr/panel_facebook_account.xml | 15 +++ .../default/xui/tr/panel_facebook_friends.xml | 12 +++ .../skins/default/xui/tr/panel_facebook_photo.xml | 26 +++++ .../skins/default/xui/tr/panel_facebook_place.xml | 17 +++ .../skins/default/xui/tr/panel_facebook_status.xml | 14 +++ .../skins/default/xui/tr/panel_flickr_account.xml | 15 +++ .../skins/default/xui/tr/panel_flickr_photo.xml | 41 ++++++++ .../skins/default/xui/tr/panel_group_bulk_ban.xml | 43 ++++++++ .../skins/default/xui/tr/panel_group_invite.xml | 2 +- .../skins/default/xui/tr/panel_group_roles.xml | 22 +++- indra/newview/skins/default/xui/tr/panel_login.xml | 51 +++------ .../skins/default/xui/tr/panel_login_first.xml | 33 ++++++ .../default/xui/tr/panel_preferences_advanced.xml | 1 + .../default/xui/tr/panel_preferences_general.xml | 10 +- .../default/xui/tr/panel_preferences_privacy.xml | 2 +- .../skins/default/xui/tr/panel_script_ed.xml | 5 +- .../default/xui/tr/panel_snapshot_options.xml | 9 ++ .../default/xui/tr/panel_teleport_history_item.xml | 1 + .../skins/default/xui/tr/panel_twitter_account.xml | 15 +++ .../skins/default/xui/tr/panel_twitter_photo.xml | 32 ++++++ .../newview/skins/default/xui/tr/role_actions.xml | 1 + indra/newview/skins/default/xui/tr/strings.xml | 114 ++++++++++++++++++++- .../skins/default/xui/zh/floater_big_preview.xml | 2 + .../skins/default/xui/zh/floater_facebook.xml | 20 ++++ .../skins/default/xui/zh/floater_flickr.xml | 17 +++ .../skins/default/xui/zh/floater_perms_default.xml | 6 ++ .../skins/default/xui/zh/floater_report_abuse.xml | 12 +-- .../default/xui/zh/floater_script_ed_prefs.xml | 48 +++++++++ .../skins/default/xui/zh/floater_snapshot.xml | 8 +- .../newview/skins/default/xui/zh/floater_stats.xml | 9 +- .../newview/skins/default/xui/zh/floater_tools.xml | 81 +-------------- .../skins/default/xui/zh/floater_twitter.xml | 17 +++ .../skins/default/xui/zh/menu_conversation.xml | 1 + indra/newview/skins/default/xui/zh/menu_object.xml | 1 + indra/newview/skins/default/xui/zh/menu_viewer.xml | 21 ++-- .../newview/skins/default/xui/zh/notifications.xml | 38 ++++++- .../default/xui/zh/panel_facebook_account.xml | 15 +++ .../default/xui/zh/panel_facebook_friends.xml | 12 +++ .../skins/default/xui/zh/panel_facebook_photo.xml | 26 +++++ .../skins/default/xui/zh/panel_facebook_place.xml | 17 +++ .../skins/default/xui/zh/panel_facebook_status.xml | 14 +++ .../skins/default/xui/zh/panel_flickr_account.xml | 15 +++ .../skins/default/xui/zh/panel_flickr_photo.xml | 41 ++++++++ .../skins/default/xui/zh/panel_group_bulk_ban.xml | 43 ++++++++ .../skins/default/xui/zh/panel_group_invite.xml | 2 +- .../skins/default/xui/zh/panel_group_roles.xml | 27 ++++- indra/newview/skins/default/xui/zh/panel_login.xml | 51 +++------ .../skins/default/xui/zh/panel_login_first.xml | 33 ++++++ .../default/xui/zh/panel_preferences_advanced.xml | 1 + .../default/xui/zh/panel_preferences_general.xml | 10 +- .../default/xui/zh/panel_preferences_privacy.xml | 2 +- .../skins/default/xui/zh/panel_script_ed.xml | 5 +- .../default/xui/zh/panel_snapshot_options.xml | 9 ++ .../default/xui/zh/panel_teleport_history_item.xml | 1 + .../skins/default/xui/zh/panel_twitter_account.xml | 15 +++ .../skins/default/xui/zh/panel_twitter_photo.xml | 32 ++++++ .../newview/skins/default/xui/zh/role_actions.xml | 1 + indra/newview/skins/default/xui/zh/strings.xml | 108 ++++++++++++++++++- 288 files changed, 4811 insertions(+), 914 deletions(-) create mode 100644 indra/newview/skins/default/xui/de/floater_big_preview.xml create mode 100644 indra/newview/skins/default/xui/de/floater_facebook.xml create mode 100644 indra/newview/skins/default/xui/de/floater_flickr.xml create mode 100644 indra/newview/skins/default/xui/de/floater_perms_default.xml create mode 100644 indra/newview/skins/default/xui/de/floater_script_ed_prefs.xml create mode 100644 indra/newview/skins/default/xui/de/floater_twitter.xml create mode 100644 indra/newview/skins/default/xui/de/panel_facebook_account.xml create mode 100644 indra/newview/skins/default/xui/de/panel_facebook_friends.xml create mode 100644 indra/newview/skins/default/xui/de/panel_facebook_photo.xml create mode 100644 indra/newview/skins/default/xui/de/panel_facebook_place.xml create mode 100644 indra/newview/skins/default/xui/de/panel_facebook_status.xml create mode 100644 indra/newview/skins/default/xui/de/panel_flickr_account.xml create mode 100644 indra/newview/skins/default/xui/de/panel_flickr_photo.xml create mode 100644 indra/newview/skins/default/xui/de/panel_group_bulk_ban.xml create mode 100644 indra/newview/skins/default/xui/de/panel_login_first.xml create mode 100644 indra/newview/skins/default/xui/de/panel_twitter_account.xml create mode 100644 indra/newview/skins/default/xui/de/panel_twitter_photo.xml create mode 100644 indra/newview/skins/default/xui/es/floater_big_preview.xml create mode 100644 indra/newview/skins/default/xui/es/floater_facebook.xml create mode 100644 indra/newview/skins/default/xui/es/floater_flickr.xml create mode 100644 indra/newview/skins/default/xui/es/floater_perms_default.xml create mode 100644 indra/newview/skins/default/xui/es/floater_script_ed_prefs.xml create mode 100644 indra/newview/skins/default/xui/es/floater_twitter.xml create mode 100644 indra/newview/skins/default/xui/es/panel_facebook_account.xml create mode 100644 indra/newview/skins/default/xui/es/panel_facebook_friends.xml create mode 100644 indra/newview/skins/default/xui/es/panel_facebook_photo.xml create mode 100644 indra/newview/skins/default/xui/es/panel_facebook_place.xml create mode 100644 indra/newview/skins/default/xui/es/panel_facebook_status.xml create mode 100644 indra/newview/skins/default/xui/es/panel_flickr_account.xml create mode 100644 indra/newview/skins/default/xui/es/panel_flickr_photo.xml create mode 100644 indra/newview/skins/default/xui/es/panel_group_bulk_ban.xml create mode 100644 indra/newview/skins/default/xui/es/panel_login_first.xml create mode 100644 indra/newview/skins/default/xui/es/panel_twitter_account.xml create mode 100644 indra/newview/skins/default/xui/es/panel_twitter_photo.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_big_preview.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_facebook.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_flickr.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_perms_default.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_script_ed_prefs.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_twitter.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_facebook_account.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_facebook_friends.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_facebook_photo.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_facebook_place.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_facebook_status.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_flickr_account.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_flickr_photo.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_group_bulk_ban.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_login_first.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_twitter_account.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_twitter_photo.xml create mode 100644 indra/newview/skins/default/xui/it/floater_big_preview.xml create mode 100644 indra/newview/skins/default/xui/it/floater_facebook.xml create mode 100644 indra/newview/skins/default/xui/it/floater_flickr.xml create mode 100644 indra/newview/skins/default/xui/it/floater_perms_default.xml create mode 100644 indra/newview/skins/default/xui/it/floater_script_ed_prefs.xml create mode 100644 indra/newview/skins/default/xui/it/floater_twitter.xml create mode 100644 indra/newview/skins/default/xui/it/panel_facebook_account.xml create mode 100644 indra/newview/skins/default/xui/it/panel_facebook_friends.xml create mode 100644 indra/newview/skins/default/xui/it/panel_facebook_photo.xml create mode 100644 indra/newview/skins/default/xui/it/panel_facebook_place.xml create mode 100644 indra/newview/skins/default/xui/it/panel_facebook_status.xml create mode 100644 indra/newview/skins/default/xui/it/panel_flickr_account.xml create mode 100644 indra/newview/skins/default/xui/it/panel_flickr_photo.xml create mode 100644 indra/newview/skins/default/xui/it/panel_group_bulk_ban.xml create mode 100644 indra/newview/skins/default/xui/it/panel_login_first.xml create mode 100644 indra/newview/skins/default/xui/it/panel_twitter_account.xml create mode 100644 indra/newview/skins/default/xui/it/panel_twitter_photo.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_big_preview.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_facebook.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_flickr.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_perms_default.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_script_ed_prefs.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_twitter.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_facebook_account.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_facebook_friends.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_facebook_photo.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_facebook_place.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_facebook_status.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_flickr_account.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_flickr_photo.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_group_bulk_ban.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_login_first.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_twitter_account.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_twitter_photo.xml create mode 100644 indra/newview/skins/default/xui/ru/floater_big_preview.xml create mode 100644 indra/newview/skins/default/xui/ru/floater_facebook.xml create mode 100644 indra/newview/skins/default/xui/ru/floater_flickr.xml create mode 100644 indra/newview/skins/default/xui/ru/floater_perms_default.xml create mode 100644 indra/newview/skins/default/xui/ru/floater_script_ed_prefs.xml create mode 100644 indra/newview/skins/default/xui/ru/floater_twitter.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_facebook_account.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_facebook_friends.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_facebook_photo.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_facebook_place.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_facebook_status.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_flickr_account.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_flickr_photo.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_group_bulk_ban.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_login_first.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_twitter_account.xml create mode 100644 indra/newview/skins/default/xui/ru/panel_twitter_photo.xml create mode 100644 indra/newview/skins/default/xui/tr/floater_big_preview.xml create mode 100644 indra/newview/skins/default/xui/tr/floater_facebook.xml create mode 100644 indra/newview/skins/default/xui/tr/floater_flickr.xml create mode 100644 indra/newview/skins/default/xui/tr/floater_perms_default.xml create mode 100644 indra/newview/skins/default/xui/tr/floater_script_ed_prefs.xml create mode 100644 indra/newview/skins/default/xui/tr/floater_twitter.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_facebook_account.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_facebook_friends.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_facebook_photo.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_facebook_place.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_facebook_status.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_flickr_account.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_flickr_photo.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_group_bulk_ban.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_login_first.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_twitter_account.xml create mode 100644 indra/newview/skins/default/xui/tr/panel_twitter_photo.xml create mode 100644 indra/newview/skins/default/xui/zh/floater_big_preview.xml create mode 100644 indra/newview/skins/default/xui/zh/floater_facebook.xml create mode 100644 indra/newview/skins/default/xui/zh/floater_flickr.xml create mode 100644 indra/newview/skins/default/xui/zh/floater_perms_default.xml create mode 100644 indra/newview/skins/default/xui/zh/floater_script_ed_prefs.xml create mode 100644 indra/newview/skins/default/xui/zh/floater_twitter.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_facebook_account.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_facebook_friends.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_facebook_photo.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_facebook_place.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_facebook_status.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_flickr_account.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_flickr_photo.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_group_bulk_ban.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_login_first.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_twitter_account.xml create mode 100644 indra/newview/skins/default/xui/zh/panel_twitter_photo.xml diff --git a/indra/newview/skins/default/xui/de/floater_big_preview.xml b/indra/newview/skins/default/xui/de/floater_big_preview.xml new file mode 100644 index 0000000000..c5ce56d1d9 --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_big_preview.xml @@ -0,0 +1,2 @@ + + diff --git a/indra/newview/skins/default/xui/de/floater_facebook.xml b/indra/newview/skins/default/xui/de/floater_facebook.xml new file mode 100644 index 0000000000..25b11536eb --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_facebook.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + Fehler + + + Laden... + + + + diff --git a/indra/newview/skins/default/xui/de/floater_flickr.xml b/indra/newview/skins/default/xui/de/floater_flickr.xml new file mode 100644 index 0000000000..b50fa19ec8 --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_flickr.xml @@ -0,0 +1,17 @@ + + + + + + + + + + Fehler + + + Laden... + + + + diff --git a/indra/newview/skins/default/xui/de/floater_perms_default.xml b/indra/newview/skins/default/xui/de/floater_perms_default.xml new file mode 100644 index 0000000000..6d6c89172d --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_perms_default.xml @@ -0,0 +1,6 @@ + + + +