diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 8838ce46c6..827b77c859 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -133,6 +133,7 @@ set(viewer_SOURCE_FILES fsfloaterprotectedfolders.cpp fsfloaterradar.cpp fsfloatersearch.cpp + fsfloatersplashscreensettings.cpp fsfloaterstatistics.cpp fsfloaterstreamtitle.cpp fsfloaterteleporthistory.cpp @@ -974,6 +975,7 @@ set(viewer_HEADER_FILES fsfloaterprotectedfolders.h fsfloaterradar.h fsfloatersearch.h + fsfloatersplashscreensettings.h fsfloaterstatistics.h fsfloaterstreamtitle.h fsfloaterteleporthistory.h diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 0dfddef18c..2a55e81449 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -25399,6 +25399,94 @@ Change of this parameter will affect the layout of buttons in notification toast HideFromEditor 1 + FSSplashScreenHideTopBar + + Comment + Hide the top bar section on the splash screen + Persist + 1 + Type + Boolean + Value + 0 + + FSSplashScreenHideBlogs + + Comment + Hide the blogs section on the splash screen + Persist + 1 + Type + Boolean + Value + 0 + + FSSplashScreenHideDestinations + + Comment + Hide the destinations section on the splash screen + Persist + 1 + Type + Boolean + Value + 0 + + FSSplashScreenUseGrayMode + + Comment + Enable grayscale mode on the splash screen + Persist + 1 + Type + Boolean + Value + 0 + + FSSplashScreenUseHighContrast + + Comment + Enable high contrast mode on the splash screen + Persist + 1 + Type + Boolean + Value + 0 + + FSSplashScreenUseAllCaps + + Comment + Enable all caps mode on the splash screen + Persist + 1 + Type + Boolean + Value + 0 + + FSSplashScreenUseLargerFonts + + Comment + Use larger fonts on the splash screen + Persist + 1 + Type + Boolean + Value + 0 + + FSSplashScreenNoTransparency + + Comment + Disable transparency effects on the splash screen + Persist + 1 + Type + Boolean + Value + 0 + FSllOwnerSayToScriptDebugWindowRouting Comment diff --git a/indra/newview/fsfloatersplashscreensettings.cpp b/indra/newview/fsfloatersplashscreensettings.cpp new file mode 100644 index 0000000000..13e281e23a --- /dev/null +++ b/indra/newview/fsfloatersplashscreensettings.cpp @@ -0,0 +1,109 @@ +/** + * @file fsfloatersplashscreensettings.cpp + * @brief Splash screen settings floater + * + * $LicenseInfo:firstyear=2025&license=viewerlgpl$ + * Copyright (c) 2025 The Phoenix Firestorm Project, 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 + * + * The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA + * http://www.firestormviewer.org + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "fsfloatersplashscreensettings.h" +#include "llcheckboxctrl.h" +#include "llviewercontrol.h" + +FSFloaterSplashScreenSettings::FSFloaterSplashScreenSettings(const LLSD& key) : + LLFloater(key), + mHideTopBarCheck(nullptr), + mHideBlogsCheck(nullptr), + mHideDestinationsCheck(nullptr), + mUseGrayModeCheck(nullptr), + mUseHighContrastCheck(nullptr), + mUseAllCapsCheck(nullptr), + mUseLargerFontsCheck(nullptr), + mNoTransparencyCheck(nullptr) +{ +} + +FSFloaterSplashScreenSettings::~FSFloaterSplashScreenSettings() +{ +} + +bool FSFloaterSplashScreenSettings::postBuild() +{ + mHideTopBarCheck = getChild("hide_top_bar"); + mHideBlogsCheck = getChild("hide_blogs"); + mHideDestinationsCheck = getChild("hide_destinations"); + mUseGrayModeCheck = getChild("use_gray_mode"); + mUseHighContrastCheck = getChild("use_high_contrast"); + mUseAllCapsCheck = getChild("use_all_caps"); + mUseLargerFontsCheck = getChild("use_larger_fonts"); + mNoTransparencyCheck = getChild("no_transparency"); + + mHideTopBarCheck->setCommitCallback(boost::bind(&FSFloaterSplashScreenSettings::onSettingChanged, this)); + mHideBlogsCheck->setCommitCallback(boost::bind(&FSFloaterSplashScreenSettings::onSettingChanged, this)); + mHideDestinationsCheck->setCommitCallback(boost::bind(&FSFloaterSplashScreenSettings::onSettingChanged, this)); + mUseGrayModeCheck->setCommitCallback(boost::bind(&FSFloaterSplashScreenSettings::onSettingChanged, this)); + mUseHighContrastCheck->setCommitCallback(boost::bind(&FSFloaterSplashScreenSettings::onSettingChanged, this)); + mUseAllCapsCheck->setCommitCallback(boost::bind(&FSFloaterSplashScreenSettings::onSettingChanged, this)); + mUseLargerFontsCheck->setCommitCallback(boost::bind(&FSFloaterSplashScreenSettings::onSettingChanged, this)); + mNoTransparencyCheck->setCommitCallback(boost::bind(&FSFloaterSplashScreenSettings::onSettingChanged, this)); + + loadSettings(); + + return true; +} + +void FSFloaterSplashScreenSettings::onOpen(const LLSD& key) +{ + LLFloater::onOpen(key); + loadSettings(); +} + +void FSFloaterSplashScreenSettings::loadSettings() +{ + mHideTopBarCheck->setValue(gSavedSettings.getBOOL("FSSplashScreenHideTopBar")); + mHideBlogsCheck->setValue(gSavedSettings.getBOOL("FSSplashScreenHideBlogs")); + mHideDestinationsCheck->setValue(gSavedSettings.getBOOL("FSSplashScreenHideDestinations")); + mUseGrayModeCheck->setValue(gSavedSettings.getBOOL("FSSplashScreenUseGrayMode")); + mUseHighContrastCheck->setValue(gSavedSettings.getBOOL("FSSplashScreenUseHighContrast")); + mUseAllCapsCheck->setValue(gSavedSettings.getBOOL("FSSplashScreenUseAllCaps")); + mUseLargerFontsCheck->setValue(gSavedSettings.getBOOL("FSSplashScreenUseLargerFonts")); + mNoTransparencyCheck->setValue(gSavedSettings.getBOOL("FSSplashScreenNoTransparency")); +} + +void FSFloaterSplashScreenSettings::saveSettings() +{ + gSavedSettings.setBOOL("FSSplashScreenHideTopBar", mHideTopBarCheck->getValue().asBoolean()); + gSavedSettings.setBOOL("FSSplashScreenHideBlogs", mHideBlogsCheck->getValue().asBoolean()); + gSavedSettings.setBOOL("FSSplashScreenHideDestinations", mHideDestinationsCheck->getValue().asBoolean()); + gSavedSettings.setBOOL("FSSplashScreenUseGrayMode", mUseGrayModeCheck->getValue().asBoolean()); + gSavedSettings.setBOOL("FSSplashScreenUseHighContrast", mUseHighContrastCheck->getValue().asBoolean()); + gSavedSettings.setBOOL("FSSplashScreenUseAllCaps", mUseAllCapsCheck->getValue().asBoolean()); + gSavedSettings.setBOOL("FSSplashScreenUseLargerFonts", mUseLargerFontsCheck->getValue().asBoolean()); + gSavedSettings.setBOOL("FSSplashScreenNoTransparency", mNoTransparencyCheck->getValue().asBoolean()); +} + +void FSFloaterSplashScreenSettings::onSettingChanged() +{ + saveSettings(); +} + diff --git a/indra/newview/fsfloatersplashscreensettings.h b/indra/newview/fsfloatersplashscreensettings.h new file mode 100644 index 0000000000..9e0f9bcc8f --- /dev/null +++ b/indra/newview/fsfloatersplashscreensettings.h @@ -0,0 +1,59 @@ +/** + * @file fsfloatersplashscreensettings.h + * @brief Splash screen settings floater + * + * $LicenseInfo:firstyear=2025&license=viewerlgpl$ + * Copyright (c) 2025 The Phoenix Firestorm Project, 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 + * + * The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA + * http://www.firestormviewer.org + * $/LicenseInfo$ + */ + +#ifndef FS_FLOATERSPLASHSCREENSETTINGS_H +#define FS_FLOATERSPLASHSCREENSETTINGS_H + +#include "llfloater.h" + +class LLCheckBoxCtrl; + +class FSFloaterSplashScreenSettings : public LLFloater +{ +public: + FSFloaterSplashScreenSettings(const LLSD& key); + virtual ~FSFloaterSplashScreenSettings(); + + /*virtual*/ bool postBuild(); + /*virtual*/ void onOpen(const LLSD& key); + +private: + void onSettingChanged(); + void loadSettings(); + void saveSettings(); + + LLCheckBoxCtrl* mHideTopBarCheck; + LLCheckBoxCtrl* mHideBlogsCheck; + LLCheckBoxCtrl* mHideDestinationsCheck; + LLCheckBoxCtrl* mUseGrayModeCheck; + LLCheckBoxCtrl* mUseHighContrastCheck; + LLCheckBoxCtrl* mUseAllCapsCheck; + LLCheckBoxCtrl* mUseLargerFontsCheck; + LLCheckBoxCtrl* mNoTransparencyCheck; +}; + +#endif // FS_FLOATERSPLASHSCREENSETTINGS_H + diff --git a/indra/newview/fspanellogin.cpp b/indra/newview/fspanellogin.cpp index 595b47dc47..04bf085f95 100644 --- a/indra/newview/fspanellogin.cpp +++ b/indra/newview/fspanellogin.cpp @@ -929,6 +929,23 @@ void FSPanelLogin::loadLoginPage() params["noversionpopup"] = "true"; } + // Splash screen settings + static const std::pair mappings[] = { + {"FSSplashScreenHideTopBar", "hidetopbar"}, + {"FSSplashScreenHideBlogs", "hideblogs"}, + {"FSSplashScreenHideDestinations", "hidedestinations"}, + {"FSSplashScreenUseGrayMode", "usegraymode"}, + {"FSSplashScreenUseHighContrast", "usehighcontrast"}, + {"FSSplashScreenUseAllCaps", "useallcaps"}, + {"FSSplashScreenUseLargerFonts", "uselargerfonts"}, + {"FSSplashScreenNoTransparency", "notransparency"}, + }; + + for (const auto &m : mappings) + { + params[m.second] = gSavedSettings.getBOOL(m.first) ? "1" : "0"; + } + // Make an LLURI with this augmented info std::string url = login_page.scheme().empty()? login_page.authority() : login_page.scheme() + "://" + login_page.authority(); LLURI login_uri(LLURI::buildHTTP(url, diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index e4a7c1398c..c07019f4af 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -216,6 +216,7 @@ #include "fsfloaterprotectedfolders.h" #include "fsfloaterradar.h" #include "fsfloatersearch.h" +#include "fsfloatersplashscreensettings.h" #include "fsfloaterstatistics.h" #include "fsfloaterstreamtitle.h" #include "fsfloaterteleporthistory.h" @@ -654,6 +655,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("fs_poser", "floater_fs_poser.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); // [FIRE-30873]: Poser LLFloaterReg::add("fs_protectedfolders", "floater_fs_protectedfolders.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("fs_radar", "floater_fs_radar.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); + LLFloaterReg::add("fs_splash_screen_settings", "floater_fs_splash_screen_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("fs_streamtitle", "floater_fs_streamtitle.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("fs_streamtitlehistory", "floater_fs_streamtitlehistory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("fs_teleporthistory", "floater_fs_teleporthistory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); diff --git a/indra/newview/skins/default/xui/az/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/az/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..ede5880759 --- /dev/null +++ b/indra/newview/skins/default/xui/az/floater_fs_splash_screen_settings.xml @@ -0,0 +1,20 @@ + + + + Giriş ekranının göstərilmə seçimlərini burada tənzimləyin. Bu seçimlər baxış proqramını növbəti dəfə yenidən başlatdığınız zaman qüvvəyə minəcək. + + + Bölmənin Görünürlüyü: + + + + + + Əlçatanlıq Seçimləri: + + + + + + + diff --git a/indra/newview/skins/default/xui/de/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/de/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..375bd484df --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_fs_splash_screen_settings.xml @@ -0,0 +1,20 @@ + + + + Konfigurieren Sie hier die Anzeigeoptionen für den Splash Screen. Diese Einstellungen werden beim nächsten Neustart des Viewers wirksam. + + + Sichtbarkeit des Bereichs: + + + + + + Barrierefreiheitsoptionen: + + + + + + + diff --git a/indra/newview/skins/default/xui/en/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/en/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..810e56ebb1 --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_fs_splash_screen_settings.xml @@ -0,0 +1,132 @@ + + + + + Configure splash screen display options here. These settings will take effect after the next viewer restart. + + + + Section Visibility: + + + + + + + + + + Accessibility Options: + + + + + + + + + + + + + diff --git a/indra/newview/skins/default/xui/es/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/es/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..693a66d09c --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_fs_splash_screen_settings.xml @@ -0,0 +1,20 @@ + + + + Configure aquí las opciones de visualización de la pantalla de inicio. Estos ajustes tendrán efecto después del próximo reinicio del visor. + + + Visibilidad de la sección: + + + + + + Opciones de Accesibilidad: + + + + + + + diff --git a/indra/newview/skins/default/xui/fr/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/fr/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..d2ad961afe --- /dev/null +++ b/indra/newview/skins/default/xui/fr/floater_fs_splash_screen_settings.xml @@ -0,0 +1,20 @@ + + + + Configurez ici les options d'affichage de l'écran d'accueil. Ces réglages prendront effet après le prochain redémarrage du client. + + + Visibilité des sections : + + + + + + Options d'accessibilité : + + + + + + + diff --git a/indra/newview/skins/default/xui/it/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/it/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..eca83723e3 --- /dev/null +++ b/indra/newview/skins/default/xui/it/floater_fs_splash_screen_settings.xml @@ -0,0 +1,20 @@ + + + + Configura qui le opzioni di visualizzazione della schermata iniziale. Queste impostazioni avranno effetto dopo il prossimo riavvio del visualizzatore. + + + Visibilità sezione: + + + + + + Opzioni di Accessibilità: + + + + + + + diff --git a/indra/newview/skins/default/xui/ja/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/ja/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..8df330845e --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_fs_splash_screen_settings.xml @@ -0,0 +1,20 @@ + + + + ログイン画面の表示オプションをここで設定してください。これらの設定は、ビューアを次回再起動したときに有効になります。 + + + セクションの表示: + + + + + + アクセシビリティ オプション: + + + + + + + diff --git a/indra/newview/skins/default/xui/pl/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/pl/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..64831b68f8 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_fs_splash_screen_settings.xml @@ -0,0 +1,20 @@ + + + + Skonfiguruj tutaj opcje wyświetlania strony logowania. Te ustawienia zaczną obowiązywać po następnym restarcie przeglądarki. + + + Widoczność sekcji: + + + + + + Opcje dostępności: + + + + + + + \ No newline at end of file diff --git a/indra/newview/skins/default/xui/ru/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/ru/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..cc42fca25e --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_fs_splash_screen_settings.xml @@ -0,0 +1,20 @@ + + + + Здесь настраиваются параметры отображения экрана приветствия. Эти настройки вступят в силу при следующем перезапуске вьюера. + + + Видимость раздела: + + + + + + Параметры Доступности: + + + + + + + diff --git a/indra/newview/skins/default/xui/zh/floater_fs_splash_screen_settings.xml b/indra/newview/skins/default/xui/zh/floater_fs_splash_screen_settings.xml new file mode 100644 index 0000000000..4e1c232a27 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/floater_fs_splash_screen_settings.xml @@ -0,0 +1,20 @@ + + + + 在這裡配置登入啟動畫面的顯示選項。這些設定將在您下次重新啟動查看器時生效。 + + + 區域可見性: + + + + + + 輔助使用選項: + + + + + + +