summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llpanellogin.cpp103
-rw-r--r--indra/newview/llpanellogin.h1
-rw-r--r--indra/newview/skins/default/textures/textures.xml1
-rw-r--r--indra/newview/skins/default/textures/windows/first_login_image.jpgbin0 -> 104529 bytes
-rw-r--r--indra/newview/skins/default/xui/de/panel_login_first.xml39
-rw-r--r--indra/newview/skins/default/xui/en/panel_login_first.xml262
-rw-r--r--indra/newview/skins/default/xui/es/panel_login_first.xml39
-rw-r--r--indra/newview/skins/default/xui/fr/panel_login_first.xml39
-rw-r--r--indra/newview/skins/default/xui/it/panel_login_first.xml39
-rw-r--r--indra/newview/skins/default/xui/ja/panel_login_first.xml54
-rw-r--r--indra/newview/skins/default/xui/pl/panel_login_first.xml30
-rw-r--r--indra/newview/skins/default/xui/pt/panel_login_first.xml39
-rw-r--r--indra/newview/skins/default/xui/ru/panel_login_first.xml39
-rw-r--r--indra/newview/skins/default/xui/tr/panel_login_first.xml39
-rw-r--r--indra/newview/skins/default/xui/zh/panel_login_first.xml39
-rwxr-xr-xindra/newview/viewer_manifest.py1
16 files changed, 728 insertions, 36 deletions
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 59aa375457..ed80c8b732 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -184,6 +184,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
mCallback(callback),
mCallbackData(cb_data),
mListener(new LLPanelLoginListener(this)),
+ mFirstLoginThisInstall(gSavedSettings.getBOOL("FirstLoginThisInstall")),
mUsernameLength(0),
mPasswordLength(0),
mLocationLength(0),
@@ -202,7 +203,14 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
login_holder->addChild(this);
}
- buildFromFile("panel_login.xml");
+ if (mFirstLoginThisInstall)
+ {
+ buildFromFile( "panel_login_first.xml");
+ }
+ else
+ {
+ buildFromFile( "panel_login.xml");
+ }
reshape(rect.getWidth(), rect.getHeight());
@@ -216,36 +224,38 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
sendChildToBack(getChildView("sign_up_text"));
std::string current_grid = LLGridManager::getInstance()->getGrid();
+ if (!mFirstLoginThisInstall)
+ {
+ LLComboBox* favorites_combo = getChild<LLComboBox>("start_location_combo");
+ updateLocationSelectorsVisibility(); // separate so that it can be called from preferences
+ favorites_combo->setReturnCallback(boost::bind(&LLPanelLogin::onClickConnect, false));
+ favorites_combo->setFocusLostCallback(boost::bind(&LLPanelLogin::onLocationSLURL, this));
- LLComboBox* favorites_combo = getChild<LLComboBox>("start_location_combo");
- updateLocationSelectorsVisibility(); // separate so that it can be called from preferences
- favorites_combo->setReturnCallback(boost::bind(&LLPanelLogin::onClickConnect, false));
- favorites_combo->setFocusLostCallback(boost::bind(&LLPanelLogin::onLocationSLURL, this));
-
- LLComboBox* server_choice_combo = getChild<LLComboBox>("server_combo");
- server_choice_combo->setCommitCallback(boost::bind(&LLPanelLogin::onSelectServer, this));
+ LLComboBox* server_choice_combo = getChild<LLComboBox>("server_combo");
+ server_choice_combo->setCommitCallback(boost::bind(&LLPanelLogin::onSelectServer, this));
- // Load all of the grids, sorted, and then add a bar and the current grid at the top
- server_choice_combo->removeall();
+ // Load all of the grids, sorted, and then add a bar and the current grid at the top
+ server_choice_combo->removeall();
- std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
- for (std::map<std::string, std::string>::iterator grid_choice = known_grids.begin();
- grid_choice != known_grids.end();
- grid_choice++)
- {
- if (!grid_choice->first.empty() && current_grid != grid_choice->first)
+ std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
+ for (std::map<std::string, std::string>::iterator grid_choice = known_grids.begin();
+ grid_choice != known_grids.end();
+ grid_choice++)
{
- LL_DEBUGS("AppInit") << "adding " << grid_choice->first << LL_ENDL;
- server_choice_combo->add(grid_choice->second, grid_choice->first);
+ if (!grid_choice->first.empty() && current_grid != grid_choice->first)
+ {
+ LL_DEBUGS("AppInit") << "adding " << grid_choice->first << LL_ENDL;
+ server_choice_combo->add(grid_choice->second, grid_choice->first);
+ }
}
- }
- server_choice_combo->sortByName();
+ server_choice_combo->sortByName();
- LL_DEBUGS("AppInit") << "adding current " << current_grid << LL_ENDL;
- server_choice_combo->add(LLGridManager::getInstance()->getGridLabel(),
- current_grid,
- ADD_TOP);
- server_choice_combo->selectFirstItem();
+ LL_DEBUGS("AppInit") << "adding current " << current_grid << LL_ENDL;
+ server_choice_combo->add(LLGridManager::getInstance()->getGridLabel(),
+ current_grid,
+ ADD_TOP);
+ server_choice_combo->selectFirstItem();
+ }
LLSLURL start_slurl(LLStartUp::getStartSLURL());
// The StartSLURL might have been set either by an explicit command-line
@@ -321,6 +331,15 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
void LLPanelLogin::addFavoritesToStartLocation()
{
+ if (mFirstLoginThisInstall)
+ {
+ // first login panel has no favorites, just update name length and buttons
+ std::string user_defined_name = getChild<LLComboBox>("username_combo")->getSimple();
+ mUsernameLength = static_cast<unsigned int>(user_defined_name.length());
+ updateLoginButtons();
+ return;
+ }
+
// Clear the combo.
LLComboBox* combo = getChild<LLComboBox>("start_location_combo");
if (!combo) return;
@@ -540,9 +559,16 @@ void LLPanelLogin::resetFields()
// function is used to reset list in case of changes by external sources
return;
}
-
- LLPointer<LLCredential> cred = gSecAPIHandler->loadCredential(LLGridManager::getInstance()->getGrid());
- sInstance->populateUserList(cred);
+ if (sInstance->mFirstLoginThisInstall)
+ {
+ // no list to populate
+ LL_WARNS() << "Shouldn't happen, user should have no ability to modify list on first install" << LL_ENDL;
+ }
+ else
+ {
+ LLPointer<LLCredential> cred = gSecAPIHandler->loadCredential(LLGridManager::getInstance()->getGrid());
+ sInstance->populateUserList(cred);
+ }
}
// static
@@ -560,6 +586,7 @@ void LLPanelLogin::setFields(LLPointer<LLCredential> credential)
if(identifier.has("type") && (std::string)identifier["type"] == "agent")
{
+ // not nessesary for panel_login.xml, needed for panel_login_first.xml
std::string firstname = identifier["first_name"].asString();
std::string lastname = identifier["last_name"].asString();
std::string login_id = firstname;
@@ -1054,7 +1081,8 @@ void LLPanelLogin::onRememberUserCheck(void*)
LLComboBox* user_combo(sInstance->getChild<LLComboBox>("username_combo"));
bool remember = remember_name->getValue().asBoolean();
- if (user_combo->getCurrentIndex() != -1
+ if (!sInstance->mFirstLoginThisInstall
+ && user_combo->getCurrentIndex() != -1
&& !remember)
{
remember = true;
@@ -1169,14 +1197,17 @@ void LLPanelLogin::updateLoginButtons()
login_btn->setEnabled(mUsernameLength != 0 && mPasswordLength != 0);
- LLComboBox* user_combo = getChild<LLComboBox>("username_combo");
- LLCheckBoxCtrl* remember_name = getChild<LLCheckBoxCtrl>("remember_name");
- if (user_combo->getCurrentIndex() != -1)
+ if (!mFirstLoginThisInstall)
{
- remember_name->setValue(true);
- LLCheckBoxCtrl* remember_pass = getChild<LLCheckBoxCtrl>("remember_password");
- remember_pass->setEnabled(true);
- } // Note: might be good idea to do "else remember_name->setValue(mRememberedState)" but it might behave 'weird' to user
+ LLComboBox* user_combo = getChild<LLComboBox>("username_combo");
+ LLCheckBoxCtrl* remember_name = getChild<LLCheckBoxCtrl>("remember_name");
+ if (user_combo->getCurrentIndex() != -1)
+ {
+ remember_name->setValue(true);
+ LLCheckBoxCtrl* remember_pass = getChild<LLCheckBoxCtrl>("remember_password");
+ remember_pass->setEnabled(true);
+ } // Note: might be good idea to do "else remember_name->setValue(mRememberedState)" but it might behave 'weird' to user
+ }
}
void LLPanelLogin::populateUserList(LLPointer<LLCredential> credential)
diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h
index 1259bf26d6..a1bf25fb05 100644
--- a/indra/newview/llpanellogin.h
+++ b/indra/newview/llpanellogin.h
@@ -119,6 +119,7 @@ private:
static LLPanelLogin* sInstance;
static bool sCapslockDidNotification;
+ bool mFirstLoginThisInstall;
static bool sCredentialSet;
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index b18d151ab7..d650e7e791 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -657,6 +657,7 @@ with the same filename but different name
<texture name="login_sl_logo" file_name="windows/login_sl_logo.png" preload="true" />
<texture name="login_sl_logo_small" file_name="windows/login_sl_logo_small.png" preload="true" />
+ <texture name="first_login_image" file_name="windows/first_login_image.jpg" preload="true" />
<texture name="Stepper_Down_Off" file_name="widgets/Stepper_Down_Off.png" preload="false" />
<texture name="Stepper_Down_Press" file_name="widgets/Stepper_Down_Press.png" preload="false" />
diff --git a/indra/newview/skins/default/textures/windows/first_login_image.jpg b/indra/newview/skins/default/textures/windows/first_login_image.jpg
new file mode 100644
index 0000000000..30f31341ed
--- /dev/null
+++ b/indra/newview/skins/default/textures/windows/first_login_image.jpg
Binary files differ
diff --git a/indra/newview/skins/default/xui/de/panel_login_first.xml b/indra/newview/skins/default/xui/de/panel_login_first.xml
new file mode 100644
index 0000000000..038001157e
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_login_first.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<panel name="panel_login">
+ <panel.string name="forgot_password_url">
+ http://secondlife.com/account/request.php?lang=de
+ </panel.string>
+ <panel.string name="sign_up_url">
+ https://join.secondlife.com/
+ </panel.string>
+ <layout_stack name="logo_stack">
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_container">
+ <combo_box label="Benutzername" name="username_combo" tool_tip="Bei der Registrierung gewählter Benutzername wie „berndschmidt12“ oder „Liebe Sonne“"/>
+ <line_editor label="Kennwort" name="password_edit"/>
+ <button label="Anmelden" name="connect_btn"/>
+ <check_box label="Details speichern" name="remember_check"/>
+ <text name="forgot_password_text">
+ Kennwort vergessen
+ </text>
+ <text name="sign_up_text">
+ Registrieren
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_container">
+ <text name="image_caption_left">
+ Ihr erster Schritt ist Learning Island. Suchen Sie die Pforte!
+ </text>
+ <text name="image_caption_right">
+ Erkunden Sie dann Social Island und lernen Sie andere Einwohner kennen!
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+</panel>
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..d6ac71db94
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_login_first.xml
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel
+ follows="all"
+ height="768"
+ layout="topleft"
+ name="panel_login"
+ focus_root="true"
+ background_visible="true"
+ bg_opaque_color="0.16 0.16 0.16 1"
+ background_opaque="true"
+ width="1024">
+ <panel.string
+ name="forgot_password_url">
+ http://secondlife.com/account/request.php
+ </panel.string>
+ <panel.string
+ name="sign_up_url">
+ https://join.secondlife.com/
+ </panel.string>
+ <layout_stack
+ follows="left|right|top|bottom"
+ width="1024"
+ height="768"
+ left="0"
+ name="logo_stack"
+ orientation="vertical"
+ top="0">
+ <layout_panel
+ height="18"
+ auto_resize="false"
+ name="page_top"
+ width="1024" />
+ <!-- start of logo stack -->
+ <layout_panel
+ height="130"
+ min_height="10"
+ auto_resize="false"
+ name="parent_panel"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="100"
+ left="0"
+ name="logo_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="110"
+ min_height="10"
+ auto_resize="true"
+ name="logo_left"
+ width="300" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|right|top"
+ name="logo_container"
+ width="225"
+ left="0"
+ top="0"
+ height="105">
+ <icon
+ height="94"
+ image_name="login_sl_logo"
+ left="0"
+ name="sl_logo"
+ top="0" />
+ </layout_panel>
+ <layout_panel
+ height="100"
+ name="logo_right"
+ auto_resize="true"
+ width="300" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of logo stack -->
+ <!-- start of widget stack -->
+ <layout_panel
+ height="100"
+ min_height="10"
+ auto_resize="false"
+ name="parent_panel2"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="80"
+ left="0"
+ name="widget_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="80"
+ min_height="10"
+ auto_resize="true"
+ name="widget_left"
+ width="200" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|right|top"
+ name="widget_container"
+ width="730"
+ left="0"
+ top="0"
+ height="80">
+ <combo_box
+ allow_text_entry="true"
+ follows="left|bottom"
+ height="32"
+ left="42"
+ label="Username"
+ combo_editor.font="SansSerifLarge"
+ max_chars="128"
+ top="0"
+ combo_editor.prevalidator="ascii"
+ tool_tip="The username you chose when you registered, like bobsmith12 or Steller Sunshine"
+ name="username_combo"
+ width="232">
+ <combo_box.combo_editor
+ text_pad_left="8" />
+ <combo_box.combo_button
+ visible ="false"/>
+ <combo_box.drop_down_button
+ visible ="false"/>
+ </combo_box>
+ <line_editor
+ follows="left|top"
+ width="200"
+ height="32"
+ left="262"
+ max_length_chars="16"
+ name="password_edit"
+ label="Password"
+ text_pad_left="8"
+ font="SansSerifLarge"
+ is_password="true"
+ select_on_focus="true"
+ commit_on_focus_lost="false"
+ top="0" />
+ <button
+ follows="left|top"
+ image_unselected="PushButton_Login"
+ image_pressed="PushButton_Login_Pressed"
+ image_hover_unselected="PushButton_Login_Over"
+ label="Log In"
+ label_color="White"
+ font="SansSerifLarge"
+ name="connect_btn"
+ left_pad="15"
+ width="120"
+ height="32"
+ top="0" />
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ font.style="BOLD"
+ text_color="EmphasisColor"
+ height="34"
+ name="sign_up_text"
+ left_pad="10"
+ top="0"
+ width="200"
+ valign="center">
+ Sign up
+ </text>
+ <check_box
+ follows="left|top"
+ font="SansSerifLarge"
+ left="42"
+ top="32"
+ height="24"
+ label="Remember me"
+ word_wrap="down"
+ check_button.bottom="3"
+ name="remember_name"
+ tool_tip="Already remembered user can be forgotten from Me &gt; Preferences &gt; Advanced &gt; Remembered Usernames."
+ width="198" />
+ <check_box
+ control_name="RememberPassword"
+ follows="left|top"
+ font="SansSerifLarge"
+ height="24"
+ left="262"
+ bottom_delta="0"
+ label="Remember password"
+ word_wrap="down"
+ check_button.bottom="3"
+ name="remember_password"
+ width="198" />
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="EmphasisColor"
+ height="16"
+ name="forgot_password_text"
+ left="492"
+ top="34"
+ width="200">
+ Forgotten password
+ </text>
+ </layout_panel>
+ <layout_panel
+ height="100"
+ name="widget_right"
+ auto_resize="true"
+ width="200" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of widget stack -->
+ <!-- start of images stack -->
+ <layout_panel
+ height="500"
+ min_height="10"
+ auto_resize="false"
+ name="parent_panel3"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="500"
+ left="0"
+ name="images_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="500"
+ min_height="10"
+ auto_resize="true"
+ name="images_left"
+ width="96" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|right|top"
+ name="images_container"
+ width="675"
+ left="0"
+ top="0"
+ height="500">
+ <icon
+ height="450"
+ width="675"
+ image_name="first_login_image"
+ left="0"
+ name="image_left"
+ top="0" />
+ </layout_panel>
+ <layout_panel
+ height="100"
+ name="images_right"
+ auto_resize="true"
+ width="96" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of images stack -->
+ <layout_panel
+ height="400"
+ min_height="10"
+ auto_resize="true"
+ name="page_bottom"
+ width="1024" />
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_login_first.xml b/indra/newview/skins/default/xui/es/panel_login_first.xml
new file mode 100644
index 0000000000..ccb6858351
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_login_first.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<panel name="panel_login">
+ <panel.string name="forgot_password_url">
+ http://secondlife.com/account/request.php?lang=es
+ </panel.string>
+ <panel.string name="sign_up_url">
+ https://join.secondlife.com/
+ </panel.string>
+ <layout_stack name="logo_stack">
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_container">
+ <combo_box label="Nombre de usuario" name="username_combo" tool_tip="El nombre de usuario que elegiste al registrarte, como bobsmith12 o Steller Sunshine"/>
+ <line_editor label="Contraseña" name="password_edit"/>
+ <button label="Iniciar sesión" name="connect_btn"/>
+ <check_box label="Recordarme" name="remember_check"/>
+ <text name="forgot_password_text">
+ Contraseña olvidada
+ </text>
+ <text name="sign_up_text">
+ Regístrate
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_container">
+ <text name="image_caption_left">
+ Tu primer destino es la Isla de aprendizaje. ¡Encuentra el portal de salida!
+ </text>
+ <text name="image_caption_right">
+ A continuación, puedes explorar la Isla social y hablar con otros residentes nuevos.
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_login_first.xml b/indra/newview/skins/default/xui/fr/panel_login_first.xml
new file mode 100644
index 0000000000..8f40d0230c
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_login_first.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<panel name="panel_login">
+ <panel.string name="forgot_password_url">
+ http://secondlife.com/account/request.php?lang=fr
+ </panel.string>
+ <panel.string name="sign_up_url">
+ https://join.secondlife.com/
+ </panel.string>
+ <layout_stack name="logo_stack">
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_container">
+ <combo_box label="Nom d&apos;utilisateur" name="username_combo" tool_tip="Nom d&apos;utilisateur que vous avez choisi lors de votre inscription (par exemple, bobsmith12 ou Steller Sunshine)."/>
+ <line_editor label="Mot de passe" name="password_edit"/>
+ <button label="Connexion" name="connect_btn"/>
+ <check_box font="SansSerifSmall" label="Mémoriser mes informations" name="remember_check"/>
+ <text name="forgot_password_text">
+ Mot de passe oublié
+ </text>
+ <text name="sign_up_text">
+ S&apos;inscrire
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_container">
+ <text name="image_caption_left">
+ Votre première étape est Learning Island. Trouvez le portail de sortie.
+ </text>
+ <text name="image_caption_right">
+ Puis explorez Social Island et faites la connaissance d&apos;autres résidents.
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_login_first.xml b/indra/newview/skins/default/xui/it/panel_login_first.xml
new file mode 100644
index 0000000000..5b04fd411a
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_login_first.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<panel name="panel_login">
+ <panel.string name="forgot_password_url">
+ http://secondlife.com/account/request.php?lang=it
+ </panel.string>
+ <panel.string name="sign_up_url">
+ http://join.secondlife.com/
+ </panel.string>
+ <layout_stack name="logo_stack">
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_container">
+ <combo_box label="Nome utente" name="username_combo" tool_tip="Il nome utente che hai scelto durante la registrazione, come roby12 o Stella Solare"/>
+ <line_editor label="Password" name="password_edit"/>
+ <button label="Accedi" name="connect_btn"/>
+ <check_box label="Ricordami" name="remember_check"/>
+ <text name="forgot_password_text">
+ Password dimenticata
+ </text>
+ <text name="sign_up_text">
+ Registrati
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_container">
+ <text name="image_caption_left">
+ Il primo passo è a Learning Island. Trova il portale di uscita!
+ </text>
+ <text name="image_caption_right">
+ Quindi esplora Social Island e incontra altri nuovi residenti.
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_login_first.xml b/indra/newview/skins/default/xui/ja/panel_login_first.xml
new file mode 100644
index 0000000000..0f987fc816
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_login_first.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="panel_login">
+ <panel.string name="forgot_password_url">
+ https://secondlife.com/my/account/request.php?lang=ja-JP
+ </panel.string>
+ <panel.string name="sign_up_url">
+ https://join.secondlife.com/?lang=ja
+ </panel.string>
+ <layout_stack name="logo_stack">
+ <layout_panel name="page_top"/>
+ <layout_panel name="parent_panel">
+ <layout_stack name="logo_stack">
+ <layout_panel name="logo_left"/>
+ <layout_panel name="logo_container">
+ <icon name="sl_logo"/>
+ </layout_panel>
+ <layout_panel auto_resize="true"/>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_left"/>
+ <layout_panel name="widget_container">
+ <combo_box label="ユーザ名" tool_tip="登録時に自分で選んだユーザー名(例:bobsmith12、Steller Sunshineなど)" name="username_combo">
+ <combo_box.combo_editor/>
+ <combo_box.combo_button/>
+ <combo_box.drop_down_button/>
+ </combo_box>
+ <line_editor name="password_edit" label="パスワード"/>
+ <button label="ログイン" name="connect_btn"/>
+ <text name="sign_up_text" valign="center">
+ サインアップ
+ </text>
+ <check_box label="ユーザ名を記憶" name="remember_name" tool_tip="すでに記憶されているユーザーは、「私」>「初期設定」>「詳細設定」>「記憶されたユーザー名」から削除できます。"/>
+ <check_box label="パスワード記憶" name="remember_password"/>
+ <text name="forgot_password_text">
+ パスワードを忘れましたか?
+ </text>
+ </layout_panel>
+ <layout_panel name="widget_right"/>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_left"/>
+ <layout_panel name="images_container">
+ <icon name="image_left"/>
+ </layout_panel>
+ <layout_panel name="images_right"/>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="page_bottom"/>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_login_first.xml b/indra/newview/skins/default/xui/pl/panel_login_first.xml
new file mode 100644
index 0000000000..0604ecbcff
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_login_first.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="panel_login">
+ <layout_stack name="logo_stack">
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_container">
+ <combo_box label="Użytkownik" tool_tip="Nazwa użytkownika wybrana przy rejestracji, np. bobsmith12 lub Steller Sunshine" name="username_combo" />
+ <line_editor name="password_edit" label="Hasło" />
+ <button label="Zaloguj" name="connect_btn" />
+ <check_box label="Zapamiętaj mnie" name="remember_check" />
+ <text name="forgot_password_text">
+ Zapomniałem/am hasła
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_container">
+ <text name="image_caption_left">
+ Wyspa Nauki to Twój pierwszy krok. Znajdź portal z wyjściem!
+ </text>
+ <text name="image_caption_right">
+ Potem zwiedź Wyspę Towarzyską i poznaj innych nowych rezydentów!
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_login_first.xml b/indra/newview/skins/default/xui/pt/panel_login_first.xml
new file mode 100644
index 0000000000..86c61163bc
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_login_first.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<panel name="panel_login">
+ <panel.string name="forgot_password_url">
+ http://secondlife.com/account/request.php?lang=pt
+ </panel.string>
+ <panel.string name="sign_up_url">
+ https://join.secondlife.com/
+ </panel.string>
+ <layout_stack name="logo_stack">
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_container">
+ <combo_box label="Nome de usuário" name="username_combo" tool_tip="O nome de usuário que você escolheu ao fazer seu cadastro, como zecazc12 ou Magia Solar"/>
+ <line_editor label="Senha" name="password_edit"/>
+ <button label="Login" name="connect_btn"/>
+ <check_box label="Lembrar-me" name="remember_check"/>
+ <text name="forgot_password_text">
+ Senha esquecida
+ </text>
+ <text name="sign_up_text">
+ Cadastre-se
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_container">
+ <text name="image_caption_left">
+ Sua primeira parada é a Ilha da Educação. Encontre o portal de saída!
+ </text>
+ <text name="image_caption_right">
+ Em seguida, explore a Ilha Social e encontre novos residentes!
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_login_first.xml b/indra/newview/skins/default/xui/ru/panel_login_first.xml
new file mode 100644
index 0000000000..5db81ea7ca
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/panel_login_first.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<panel name="panel_login">
+ <panel.string name="forgot_password_url">
+ http://secondlife.com/account/request.php
+ </panel.string>
+ <panel.string name="sign_up_url">
+ https://join.secondlife.com/
+ </panel.string>
+ <layout_stack name="logo_stack">
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_container">
+ <combo_box label="Имя пользователя" name="username_combo" tool_tip="Имя пользователя, которое вы выбрали при регистрации, например, «bobsmith12» или «Steller Sunshine»"/>
+ <line_editor label="Пароль" name="password_edit"/>
+ <button label="Войти" name="connect_btn"/>
+ <check_box label="Запомнить меня" name="remember_check"/>
+ <text name="forgot_password_text">
+ Забытый пароль
+ </text>
+ <text name="sign_up_text">
+ Регистрация
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_container">
+ <text name="image_caption_left">
+ Ваш первый шаг – Учебный остров. Найдите портал выхода!
+ </text>
+ <text name="image_caption_right">
+ Затем исследуйте Социальный остров и познакомьтесь с другими новичками!
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_login_first.xml b/indra/newview/skins/default/xui/tr/panel_login_first.xml
new file mode 100644
index 0000000000..1fc80c2b97
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/panel_login_first.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<panel name="panel_login">
+ <panel.string name="forgot_password_url">
+ http://secondlife.com/account/request.php
+ </panel.string>
+ <panel.string name="sign_up_url">
+ https://join.secondlife.com/
+ </panel.string>
+ <layout_stack name="logo_stack">
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_container">
+ <combo_box label="Kullanıcı Adı" name="username_combo" tool_tip="Kaydolduğunuzda seçtiğiniz kullanıcı adı, örn. mustafayalcin12 veya Faruk Gungoren"/>
+ <line_editor label="Parola" name="password_edit"/>
+ <button label="Oturum Aç" name="connect_btn"/>
+ <check_box label="Beni hatırla" name="remember_check"/>
+ <text name="forgot_password_text">
+ Parolamı unuttum
+ </text>
+ <text name="sign_up_text">
+ Kaydol
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_container">
+ <text name="image_caption_left">
+ Başlangıç yeriniz Eğitim Adası. Haydi çıkış portalını bulun!
+ </text>
+ <text name="image_caption_right">
+ Sonra da Sosyal Ada&apos;yı keşfe çıkın ve diğer LS sakinleriyle tanışın!
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_login_first.xml b/indra/newview/skins/default/xui/zh/panel_login_first.xml
new file mode 100644
index 0000000000..4d72fcdd03
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_login_first.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<panel name="panel_login">
+ <panel.string name="forgot_password_url">
+ http://secondlife.com/account/request.php
+ </panel.string>
+ <panel.string name="sign_up_url">
+ http://join.secondlife.com/
+ </panel.string>
+ <layout_stack name="logo_stack">
+ <layout_panel name="parent_panel2">
+ <layout_stack name="widget_stack">
+ <layout_panel name="widget_container">
+ <combo_box label="使用者名稱" name="username_combo" tool_tip="使用者名稱是你註冊時所挑選的,例如 bobsmith12 或 Steller Sunshine"/>
+ <line_editor label="密碼" name="password_edit"/>
+ <button label="登入" name="connect_btn"/>
+ <check_box label="記得我" name="remember_check"/>
+ <text name="forgot_password_text">
+ 忘記密碼
+ </text>
+ <text name="sign_up_text">
+ 註冊
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="parent_panel3">
+ <layout_stack name="images_stack">
+ <layout_panel name="images_container">
+ <text name="image_caption_left">
+ 你在「學習島」的第一步。 找到離開的傳送門!
+ </text>
+ <text name="image_caption_right">
+ 接著,到「社交島」探索,認識新的居民朋友!
+ </text>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 04c3fea93a..e1e0441df0 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -149,6 +149,7 @@ class ViewerManifest(LLManifest):
with self.prefix(src_dst="skins"):
# include the entire textures directory recursively
with self.prefix(src_dst="*/textures"):
+ self.path("*/*.jpg")
self.path("*/*.png")
self.path("*.tga")
self.path("*.j2c")