From d8db0ff30cd1775a66694bd0f1e02795c85722be Mon Sep 17 00:00:00 2001 From: Callum Prentice Date: Tue, 3 Jun 2025 17:50:15 -0700 Subject: First commit - bare bones of it working - pointing to test page on S3 --- indra/newview/llfloateravatarwelcomepack.cpp | 58 ++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 indra/newview/llfloateravatarwelcomepack.cpp (limited to 'indra/newview/llfloateravatarwelcomepack.cpp') diff --git a/indra/newview/llfloateravatarwelcomepack.cpp b/indra/newview/llfloateravatarwelcomepack.cpp new file mode 100644 index 0000000000..82e44d1398 --- /dev/null +++ b/indra/newview/llfloateravatarwelcomepack.cpp @@ -0,0 +1,58 @@ +/** + * @file llfloateravatarwelcomepack.cpp + * @author Callum Prentice (callum@lindenlab.com) + * @brief Floater container for the Avatar Welcome Pack we app + * + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2011, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llfloateravatarwelcomepack.h" +#include "lluictrlfactory.h" +#include "llmediactrl.h" + +LLFloaterAvatarWelcomePack::LLFloaterAvatarWelcomePack(const LLSD& key) + : LLFloater(key) +{ +} + +LLFloaterAvatarWelcomePack::~LLFloaterAvatarWelcomePack() +{ + if (mAvatarPicker) + { + mAvatarPicker->navigateStop(); + mAvatarPicker->clearCache(); //images are reloading each time already + mAvatarPicker->unloadMediaSource(); + } +} + +bool LLFloaterAvatarWelcomePack::postBuild() +{ + mAvatarPicker = findChild("avatar_picker_contents"); + if (mAvatarPicker) + { + mAvatarPicker->clearCache(); + } + + return true; +} -- cgit v1.3 From ddbcf74a8f171adabf3b61a8ce3419eea0d1e018 Mon Sep 17 00:00:00 2001 From: Callum Prentice Date: Thu, 5 Jun 2025 22:31:43 -0700 Subject: Open Avatar Welcome Pack floater on first login (or cleared settings) and move it to the center of the screen. Adjust the size of the floater (height) slightly. --- indra/newview/llfloateravatarwelcomepack.cpp | 1 + indra/newview/llstartup.cpp | 20 +++++++++++++++++--- .../default/xui/en/floater_avatar_welcome_pack.xml | 12 ++++++------ 3 files changed, 24 insertions(+), 9 deletions(-) (limited to 'indra/newview/llfloateravatarwelcomepack.cpp') diff --git a/indra/newview/llfloateravatarwelcomepack.cpp b/indra/newview/llfloateravatarwelcomepack.cpp index 82e44d1398..06b6de0cbf 100644 --- a/indra/newview/llfloateravatarwelcomepack.cpp +++ b/indra/newview/llfloateravatarwelcomepack.cpp @@ -48,6 +48,7 @@ LLFloaterAvatarWelcomePack::~LLFloaterAvatarWelcomePack() bool LLFloaterAvatarWelcomePack::postBuild() { + center(); mAvatarPicker = findChild("avatar_picker_contents"); if (mAvatarPicker) { diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index cc4f49c0b4..f065d286c8 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -2103,9 +2103,6 @@ bool idle_startup() do_startup_frame(); - // We're successfully logged in. - gSavedSettings.setBOOL("FirstLoginThisInstall", false); - LLFloaterReg::showInitialVisibleInstances(); LLFloaterGridStatus::getInstance()->startGridStatusTimer(); @@ -2451,6 +2448,23 @@ bool idle_startup() LLPerfStats::StatsRecorder::setAutotuneInit(); + // Display Avatar Welcome Pack the first time a user logs in + // (or clears their settings....) + if (gSavedSettings.getBOOL("FirstLoginThisInstall")) + { + LLFloater* avatar_welcome_pack_floater = LLFloaterReg::findInstance("avatar_welcome_pack"); + if (avatar_welcome_pack_floater != nullptr) + { + avatar_welcome_pack_floater->center(); + avatar_welcome_pack_floater->setVisible(true); + } + } + + //// We're successfully logged in. + // 2025-06 Moved lower down in the state machine so the Avatar Welcome Pack + // floater display can be triggered correctly. + gSavedSettings.setBOOL("FirstLoginThisInstall", false); + return true; } diff --git a/indra/newview/skins/default/xui/en/floater_avatar_welcome_pack.xml b/indra/newview/skins/default/xui/en/floater_avatar_welcome_pack.xml index 86aaf2a5c4..1b0f91c7ea 100644 --- a/indra/newview/skins/default/xui/en/floater_avatar_welcome_pack.xml +++ b/indra/newview/skins/default/xui/en/floater_avatar_welcome_pack.xml @@ -5,20 +5,20 @@ can_minimize="true" can_close="true" can_resize="false" - min_height="660" - min_width="800" - height="660" + min_height="420" + min_width="500" + height="420" layout="topleft" name="Avatar Welcome Pack" single_instance="true" save_rect="true" save_visibility="true" title="AVATAR WELCOME PACK" - width="800"> + width="500"> -- cgit v1.3 From a366a49daff63af865aa5e3bda9186d8b0db4814 Mon Sep 17 00:00:00 2001 From: Callum Prentice Date: Fri, 6 Jun 2025 17:21:19 -0700 Subject: tweak the size of the AWP floater to take account of new image sizes. Do not center floater anymore because it obscures the avatar. --- indra/newview/llfloateravatarwelcomepack.cpp | 1 - indra/newview/llstartup.cpp | 6 +++++- .../skins/default/xui/en/floater_avatar_welcome_pack.xml | 12 ++++++------ 3 files changed, 11 insertions(+), 8 deletions(-) (limited to 'indra/newview/llfloateravatarwelcomepack.cpp') diff --git a/indra/newview/llfloateravatarwelcomepack.cpp b/indra/newview/llfloateravatarwelcomepack.cpp index 06b6de0cbf..82e44d1398 100644 --- a/indra/newview/llfloateravatarwelcomepack.cpp +++ b/indra/newview/llfloateravatarwelcomepack.cpp @@ -48,7 +48,6 @@ LLFloaterAvatarWelcomePack::~LLFloaterAvatarWelcomePack() bool LLFloaterAvatarWelcomePack::postBuild() { - center(); mAvatarPicker = findChild("avatar_picker_contents"); if (mAvatarPicker) { diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index f065d286c8..6bf0a50d1c 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -2455,7 +2455,11 @@ bool idle_startup() LLFloater* avatar_welcome_pack_floater = LLFloaterReg::findInstance("avatar_welcome_pack"); if (avatar_welcome_pack_floater != nullptr) { - avatar_welcome_pack_floater->center(); + // There is a (very - 1 in ~50 times) hard to repro bug where the login + // page is not hidden when the AWP floater is presented. This (agressive) + // approach to always close it seems like the best fix for now. + LLPanelLogin::closePanel(); + avatar_welcome_pack_floater->setVisible(true); } } diff --git a/indra/newview/skins/default/xui/en/floater_avatar_welcome_pack.xml b/indra/newview/skins/default/xui/en/floater_avatar_welcome_pack.xml index 1b0f91c7ea..795d642755 100644 --- a/indra/newview/skins/default/xui/en/floater_avatar_welcome_pack.xml +++ b/indra/newview/skins/default/xui/en/floater_avatar_welcome_pack.xml @@ -5,20 +5,20 @@ can_minimize="true" can_close="true" can_resize="false" - min_height="420" - min_width="500" - height="420" + min_height="438" + min_width="530" + height="438" layout="topleft" name="Avatar Welcome Pack" single_instance="true" save_rect="true" save_visibility="true" title="AVATAR WELCOME PACK" - width="500"> + width="530"> -- cgit v1.3