From e3b28fddff322e39d26f369712f7237854cabd5b Mon Sep 17 00:00:00 2001 From: Mnikolenko Productengine Date: Thu, 5 Mar 2026 20:24:30 +0200 Subject: #5462 Login form update --- indra/llui/llbutton.cpp | 14 + indra/llui/llbutton.h | 3 + indra/llui/lllineeditor.cpp | 4 +- indra/llui/lllineeditor.h | 4 +- indra/newview/llpanellogin.cpp | 28 +- indra/newview/llviewernetwork.cpp | 2 +- indra/newview/llviewernetwork.h | 1 + indra/newview/skins/default/colors.xml | 3 + indra/newview/skins/default/textures/textures.xml | 10 +- .../default/textures/widgets/Checkbox_Slim_Off.png | Bin 0 -> 18115 bytes .../default/textures/widgets/Checkbox_Slim_On.png | Bin 0 -> 17762 bytes .../default/textures/widgets/ComboButton_Arrow.png | Bin 0 -> 16236 bytes .../default/textures/widgets/ComboButton_white.png | Bin 0 -> 15808 bytes .../default/textures/widgets/PushButton_Sign.png | Bin 0 -> 18631 bytes .../textures/widgets/PushButton_Sign_Over.png | Bin 0 -> 18631 bytes .../textures/widgets/PushButton_Sign_Pressed.png | Bin 0 -> 18631 bytes .../textures/widgets/Text_Field_Cropped.png | Bin 0 -> 869 bytes .../textures/windows/login_sl_logo_horizontal.png | Bin 0 -> 4366 bytes indra/newview/skins/default/xui/en/panel_login.xml | 405 ++++++++++++--------- indra/newview/skins/default/xui/en/strings.xml | 2 + 20 files changed, 289 insertions(+), 187 deletions(-) create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_Slim_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_Slim_On.png create mode 100644 indra/newview/skins/default/textures/widgets/ComboButton_Arrow.png create mode 100644 indra/newview/skins/default/textures/widgets/ComboButton_white.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Sign.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Sign_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Sign_Pressed.png create mode 100644 indra/newview/skins/default/textures/widgets/Text_Field_Cropped.png create mode 100644 indra/newview/skins/default/textures/windows/login_sl_logo_horizontal.png diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index 3a3616c905..6ffc707b25 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -85,6 +85,7 @@ LLButton::Params::Params() image_top_pad("image_top_pad"), image_bottom_pad("image_bottom_pad"), imgoverlay_label_space("imgoverlay_label_space", 1), + image_overlay_right_delta("image_overlay_right_delta", 0), label_color("label_color"), label_color_selected("label_color_selected"), // requires is_toggle true label_color_disabled("label_color_disabled"), @@ -158,6 +159,7 @@ LLButton::LLButton(const LLButton::Params& p) mImageOverlayTopPad(p.image_top_pad), mImageOverlayBottomPad(p.image_bottom_pad), mImgOverlayLabelSpace(p.imgoverlay_label_space), + mImageOverlayRightDelta(p.image_overlay_right_delta), mIsToggle(p.is_toggle), mScaleImage(p.scale_image), mDropShadowedText(p.label_shadow), @@ -929,6 +931,17 @@ void LLButton::draw() } overlay_color.mV[VALPHA] *= alpha; + if (mImageOverlayRightDelta > 0) + { + mImageOverlay->draw(getRect().getWidth() - overlay_width - mImageOverlayRightDelta, + center_y - (overlay_height / 2), + overlay_width, + overlay_height, + overlay_color); + } + else + { + switch(mImageOverlayAlignment) { case LLFontGL::LEFT: @@ -963,6 +976,7 @@ void LLButton::draw() // draw nothing break; } + } } // Draw label diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h index f530eceb4b..ac301d5149 100644 --- a/indra/llui/llbutton.h +++ b/indra/llui/llbutton.h @@ -110,6 +110,7 @@ public: //image overlay paddings Optional image_top_pad; Optional image_bottom_pad; + Optional image_overlay_right_delta; /** * Space between image_overlay and label @@ -372,6 +373,8 @@ protected: */ S32 mImgOverlayLabelSpace; + S32 mImageOverlayRightDelta; + F32 mHoverGlowStrength; F32 mCurGlowStrength; diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp index 4956d93e1c..9a88083a5d 100644 --- a/indra/llui/lllineeditor.cpp +++ b/indra/llui/lllineeditor.cpp @@ -97,6 +97,7 @@ LLLineEditor::Params::Params() ignore_tab("ignore_tab", true), is_password("is_password", false), allow_emoji("allow_emoji", true), + draw_focus_border("draw_focus_border", true), cursor_color("cursor_color"), use_bg_color("use_bg_color", false), bg_color("bg_color"), @@ -147,6 +148,7 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p) mIgnoreTab( p.ignore_tab ), mDrawAsterixes( p.is_password ), mAllowEmoji( p.allow_emoji ), + mDrawFocusBorder(p.draw_focus_border), mSpellCheck( p.spellcheck ), mSpellCheckStart(-1), mSpellCheckEnd(-1), @@ -1795,7 +1797,7 @@ void LLLineEditor::drawBackground() if (!image) return; // optionally draw programmatic border - if (has_focus) + if (has_focus && mDrawFocusBorder) { LLColor4 tmp_color = gFocusMgr.getFocusColor(); tmp_color.setAlpha(alpha); diff --git a/indra/llui/lllineeditor.h b/indra/llui/lllineeditor.h index 6384bfdc5f..fd248edda3 100644 --- a/indra/llui/lllineeditor.h +++ b/indra/llui/lllineeditor.h @@ -95,7 +95,8 @@ public: show_label_focused, is_password, allow_emoji, - use_bg_color; + use_bg_color, + draw_focus_border; // colors Optional cursor_color, @@ -411,6 +412,7 @@ protected: bool mAllowEmoji; bool mUseBgColor; + bool mDrawFocusBorder; LLWString mPreeditWString; LLWString mPreeditOverwrittenWString; diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 868e02f28b..77de25c28e 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -174,6 +174,19 @@ public: }; LLLoginLocationAutoHandler gLoginLocationAutoHandler; +std::string getShortGridLabel(const std::string& slurl_grid) +{ + if (slurl_grid == MAINGRID) + { + return LLTrans::getString("AgniGridLabelShort"); + } + if (slurl_grid == BETAGRID) + { + return LLTrans::getString("AditiGridLabelShort"); + } + return LLGridManager::getInstance()->getGridLabel(slurl_grid); +} + //--------------------------------------------------------------------------- // Public methods //--------------------------------------------------------------------------- @@ -221,13 +234,13 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, password_edit->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnect, false)); childSetAction("connect_btn", onClickConnect, this); + childSetAction("sign_btn", onClickSignUp, this); mLoginBtn = getChild("connect_btn"); setDefaultBtn(mLoginBtn); // change z sort of clickable text to be behind buttons sendChildToBack(getChildView("forgot_password_text")); - sendChildToBack(getChildView("sign_up_text")); std::string current_grid = LLGridManager::getInstance()->getGrid(); if (!mFirstLoginThisInstall) @@ -251,13 +264,13 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, 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->add(getShortGridLabel(grid_choice->first), grid_choice->first); } } server_choice_combo->sortByName(); LL_DEBUGS("AppInit") << "adding current " << current_grid << LL_ENDL; - server_choice_combo->add(LLGridManager::getInstance()->getGridLabel(), + server_choice_combo->add(getShortGridLabel(current_grid), current_grid, ADD_TOP); server_choice_combo->selectFirstItem(); @@ -308,9 +321,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, LLTextBox* forgot_password_text = getChild("forgot_password_text"); forgot_password_text->setClickedCallback(onClickForgotPassword, NULL); - LLTextBox* sign_up_text = getChild("sign_up_text"); - sign_up_text->setClickedCallback(onClickSignUp, NULL); - // get the web browser control LLMediaCtrl* web_browser = getChild("login_html"); web_browser->addObserver(this); @@ -752,6 +762,10 @@ void LLPanelLogin::updateLocationSelectorsVisibility() { server_combo->setVisible(show_server); } + if (LLTextBox* grid_txt = sInstance->getChild("grid_text")) + { + grid_txt->setVisible(show_server); + } } } @@ -787,7 +801,7 @@ void LLPanelLogin::onUpdateStartSLURL(const LLSLURL& new_start_slurl) // update the grid selector to match the slurl LLComboBox* server_combo = sInstance->getChild("server_combo"); - std::string server_label(LLGridManager::getInstance()->getGridLabel(slurl_grid)); + std::string server_label(getShortGridLabel(slurl_grid)); server_combo->setSimple(server_label); updateServer(); // to change the links and splash screen diff --git a/indra/newview/llviewernetwork.cpp b/indra/newview/llviewernetwork.cpp index 890580ddff..4101828019 100644 --- a/indra/newview/llviewernetwork.cpp +++ b/indra/newview/llviewernetwork.cpp @@ -125,7 +125,7 @@ void LLGridManager::initialize(const std::string& grid_file) MAIN_GRID_WEB_PROFILE_URL, "Agni"); addSystemGrid(LLTrans::getString("AditiGridLabel"), - "util.aditi.lindenlab.com", + BETAGRID, "https://login.aditi.lindenlab.com/cgi-bin/login.cgi", "https://secondlife.aditi.lindenlab.com/helpers/", DEFAULT_LOGIN_PAGE, diff --git a/indra/newview/llviewernetwork.h b/indra/newview/llviewernetwork.h index 2ed663e038..0937425a18 100644 --- a/indra/newview/llviewernetwork.h +++ b/indra/newview/llviewernetwork.h @@ -30,6 +30,7 @@ // @TODO this really should be private, but is used in llslurl #define MAINGRID "util.agni.lindenlab.com" +#define BETAGRID "util.aditi.lindenlab.com" /// Exception thrown when a grid is not valid class LLInvalidGridName diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index a686a3f20e..8752e3fe3d 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -1003,6 +1003,9 @@ + diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 6c0a3e3d0d..20507fe106 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -124,7 +124,9 @@ with the same filename but different name + + @@ -172,6 +174,8 @@ with the same filename but different name + + @@ -567,7 +571,9 @@ with the same filename but different name - + + + @@ -658,6 +664,7 @@ with the same filename but different name + @@ -715,6 +722,7 @@ with the same filename but different name + diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Slim_Off.png b/indra/newview/skins/default/textures/widgets/Checkbox_Slim_Off.png new file mode 100644 index 0000000000..99af0397d5 Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/Checkbox_Slim_Off.png differ diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Slim_On.png b/indra/newview/skins/default/textures/widgets/Checkbox_Slim_On.png new file mode 100644 index 0000000000..cabecf1467 Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/Checkbox_Slim_On.png differ diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Arrow.png b/indra/newview/skins/default/textures/widgets/ComboButton_Arrow.png new file mode 100644 index 0000000000..7961967458 Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ComboButton_Arrow.png differ diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_white.png b/indra/newview/skins/default/textures/widgets/ComboButton_white.png new file mode 100644 index 0000000000..5c93700186 Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ComboButton_white.png differ diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Sign.png b/indra/newview/skins/default/textures/widgets/PushButton_Sign.png new file mode 100644 index 0000000000..f1c27f8c9b Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/PushButton_Sign.png differ diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Sign_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_Sign_Over.png new file mode 100644 index 0000000000..efef8bebad Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/PushButton_Sign_Over.png differ diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Sign_Pressed.png b/indra/newview/skins/default/textures/widgets/PushButton_Sign_Pressed.png new file mode 100644 index 0000000000..ec3409e8b8 Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/PushButton_Sign_Pressed.png differ diff --git a/indra/newview/skins/default/textures/widgets/Text_Field_Cropped.png b/indra/newview/skins/default/textures/widgets/Text_Field_Cropped.png new file mode 100644 index 0000000000..e5de6474f4 Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/Text_Field_Cropped.png differ diff --git a/indra/newview/skins/default/textures/windows/login_sl_logo_horizontal.png b/indra/newview/skins/default/textures/windows/login_sl_logo_horizontal.png new file mode 100644 index 0000000000..f56d0bd542 Binary files /dev/null and b/indra/newview/skins/default/textures/windows/login_sl_logo_horizontal.png differ diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index e2219f6d5c..d33464e158 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -6,7 +6,7 @@ name="panel_login" focus_root="true" background_visible="true" - bg_opaque_color="0.16 0.16 0.16 1" + bg_opaque_color="PanelDark" background_opaque="true" width="1024"> https://join.secondlife.com/ - - - - - - - - - - - - - -