From cf17c0f579c2c68db6f5f74e9faa9a8111a27862 Mon Sep 17 00:00:00 2001 From: nobody Date: Fri, 7 Feb 2025 09:15:50 +0300 Subject: [PATCH 01/40] Implement substantial UI overhaul and feature expansion for Phototools 2.0 This commit introduces a significant update to the Phototools floater, bringing a redesigned user interface and expanding the available rendering control options for Phototools 2.0. This is the initial implementation of the Phototools 2.0 feature set and includes substantial changes to the user interface and underlying logic. Key UI Changes: * **Tab Restructuring and Renaming:** The Phototools floater tabs have been reorganized and relabeled for better clarity and logical grouping of settings. * "Environment" tab now focuses on core environment presets and settings. * "Light" tab renamed to "Shd" (Shadows) focusing on light and shadow related controls. * "DoF/Glow" tab renamed to "VFX" (Visual Effects) to encompass Depth of Field, Glow, and now Tone Mapping settings. * Tab labels shortened for better fit within the floater. * **Environment Tab Redesign:** The "Environment" tab has been significantly restructured for improved usability. * Sky, Water, and Day Cycle presets are now more compactly arranged at the top. * "Personal Lighting," "Shared Environment Reset," and "Pause Clouds" controls are grouped in a new dedicated panel for easier access to core environment functions. * "Quick Env." and "Env. Presets" panels are now present and side-by-side, optimizing space within the tab. * **Reflection Settings Panel:** The "Reflection Settings" panel (within "Env" tab) has been added with new controls for advanced reflection features: * Added checkboxes to enable "Screen Space Reflections" and "Mirrors," providing user control over these rendering techniques. * Introduced combo boxes for "Reflection Detail," "Reflection Coverage," "Mirror Resolution," and "Mirror Update Rate," allowing fine-grained control over reflection quality and performance. * Water reflection resolution control is relabeled for clarity as "Water Reflection Res." * **Shadow Settings Panel Enhancements ("Shd" Tab):** The "Shadows" tab ("Shd") includes reorganized and expanded shadow controls. * Added a "Point Lighting (Restart)" combo box to control the level of point light rendering, requiring viewer restart for mode changes. * Introduced a "Local Lights" slider and spinner to directly control the number of local lights rendered, offering performance optimization options. * **VFX Tab Expansion (formerly "DoF/Glow"):** The "VFX" tab now incorporates HDR Tone Mapping settings, providing more control over the final image tonality. * Added a "HDR Tone Mapping Settings" panel with controls to enable HDR and Emissive rendering and select the "HDR Tonemap Type" (Khronos Neutral or ACES). * Introduced a "Tone Mix" slider and spinner to adjust the blending of the tone mapping effect. * **General Render Settings Updates ("Gen" Tab):** The "General Render Settings" tab includes new post-processing controls. * Added "Sharpening" and "Exposure" sliders/spinners to the "General" tab, allowing users to adjust image sharpness and exposure directly within Phototools. * **Anti-aliasing and Texture Settings Panel Updates:** The "Anti-aliasing" panel is enhanced with new control over antialiasing and texture settings. * Added "Antialiasing Type (Restart)" combo box to select between different antialiasing algorithms (Disabled, FXAA, SMAA). * "Antialiasing Quality" combo box now offers more descriptive labels (Low, Medium, High, Ultra). * Introduced "Max Texture Resolution" and "Avatar Display" combo boxes to control texture resolution limits and avatar display complexity. * **Removed Items (UI Elements):** * Removed the "P_Vignetting" panel from the "General" tab as vignetting controls have been deemed less frequently used and can be accessed through "Debug Settings" if needed. * **Removed non-functional Glow Settings (due to PBR changes):** * Removed the "Luminance," "Warmth," and "Alpha (Max Extract Alpha)" settings from the "Glow Settings" panel. * This includes the removal of their associated UI elements: text labels, sliders, spinners, and reset buttons. * These settings are no longer effective after Linden Lab's Physically Based Rendering (PBR) updates. Codebase Improvements: * **Typo Correction in Floater Registration:** Fixed a likely typo in `llviewerfloaterreg.cpp` where the Phototools floater registration was incorrectly using the `PHOTOTOOLS_FLOATER` constant (likely intended to be a string literal "phototools"), ensuring consistency and code correctness. File Changes: This commit includes the following new and modified files to implement these changes: * **New Files (UI Elements):** * `indra/newview/skins/default/xui/en/floater_fs_fixedenvironment.xml` (New floater for Fixed Environment settings) * `indra/newview/skins/default/xui/en/panel_fs_settings_sky_atmos.xml` (New panel for Sky Atmosphere settings) * `indra/newview/skins/default/xui/en/panel_fs_settings_sky_clouds.xml` (New panel for Sky Clouds settings) * `indra/newview/skins/default/xui/en/panel_fs_settings_sky_sunmoon.xml` (New panel for Sky Sun/Moon settings) * `indra/newview/skins/default/xui/en/panel_fs_settings_water.xml` (New panel for Water settings) * **Modified Files (UI and Logic Integration):** * `indra/newview/llfloaterfixedenvironment.cpp` (Modified to handle new Fixed Environment floater logic) * `indra/newview/llviewerfloaterreg.cpp` (Modified for floater registration) * `indra/newview/skins/default/xui/en/floater_phototools.xml` (Updated to integrate new panels and UI elements within the Phototools floater) These UI and feature additions represent a significant step forward for Phototools 2.0, offering users a more refined and powerful set of tools for visual customization and rendering control within the Firestorm Viewer. This commit lays the foundation for further Phototools 2.0 development and feature enhancements. --- indra/newview/llfloaterfixedenvironment.cpp | 21 +- indra/newview/llviewerfloaterreg.cpp | 14 +- .../xui/en/floater_fs_fixedenvironment.xml | 206 +++ .../default/xui/en/floater_phototools.xml | 1531 ++++++++++++++--- .../xui/en/panel_fs_settings_sky_atmos.xml | 442 +++++ .../xui/en/panel_fs_settings_sky_clouds.xml | 418 +++++ .../xui/en/panel_fs_settings_sky_sunmoon.xml | 525 ++++++ .../xui/en/panel_fs_settings_water.xml | 549 ++++++ 8 files changed, 3470 insertions(+), 236 deletions(-) create mode 100644 indra/newview/skins/default/xui/en/floater_fs_fixedenvironment.xml create mode 100644 indra/newview/skins/default/xui/en/panel_fs_settings_sky_atmos.xml create mode 100644 indra/newview/skins/default/xui/en/panel_fs_settings_sky_clouds.xml create mode 100644 indra/newview/skins/default/xui/en/panel_fs_settings_sky_sunmoon.xml create mode 100644 indra/newview/skins/default/xui/en/panel_fs_settings_water.xml diff --git a/indra/newview/llfloaterfixedenvironment.cpp b/indra/newview/llfloaterfixedenvironment.cpp index d28c987414..1fc3b29d00 100644 --- a/indra/newview/llfloaterfixedenvironment.cpp +++ b/indra/newview/llfloaterfixedenvironment.cpp @@ -419,7 +419,10 @@ bool LLFloaterFixedEnvironmentWater::postBuild() LLPanelSettingsWater * panel; panel = new LLPanelSettingsWaterMainTab; - panel->buildFromFile("panel_settings_water.xml"); + // [PhotoTools] Use FS specific panel XML for Water Settings + // panel->buildFromFile("panel_settings_water.xml"); // Original LL line - using default panel XML + panel->buildFromFile("panel_fs_settings_water.xml"); // Using FS specific panel XML + // panel->setWater(std::static_pointer_cast(mSettings)); panel->setOnDirtyFlagChanged( [this] (LLPanel *, bool value) { onPanelDirtyFlagChanged(value); }); mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(true)); @@ -479,6 +482,7 @@ LLFloaterFixedEnvironmentSky::LLFloaterFixedEnvironmentSky(const LLSD &key) : LLFloaterFixedEnvironment(key) {} +bool LLFloaterFixedEnvironmentSky::postBuild() bool LLFloaterFixedEnvironmentSky::postBuild() { if (!LLFloaterFixedEnvironment::postBuild()) @@ -486,19 +490,28 @@ bool LLFloaterFixedEnvironmentSky::postBuild() LLPanelSettingsSky * panel; panel = new LLPanelSettingsSkyAtmosTab; - panel->buildFromFile("panel_settings_sky_atmos.xml"); + // [PhotoTools] Use FS specific panel XML for Sky Atmosphere Settings + // panel->buildFromFile("panel_settings_sky_atmos.xml"); // Original LL line - using default panel XML + panel->buildFromFile("panel_fs_settings_sky_atmos.xml"); // Using FS specific panel XML + // panel->setSky(std::static_pointer_cast(mSettings)); panel->setOnDirtyFlagChanged([this](LLPanel *, bool value) { onPanelDirtyFlagChanged(value); }); mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(true)); panel = new LLPanelSettingsSkyCloudTab; - panel->buildFromFile("panel_settings_sky_clouds.xml"); + // [PhotoTools] Use FS specific panel XML for Sky Cloud Settings + // panel->buildFromFile("panel_settings_sky_clouds.xml"); // Original LL line - using default panel XML + panel->buildFromFile("panel_fs_settings_sky_clouds.xml"); // Using FS specific panel XML + // panel->setSky(std::static_pointer_cast(mSettings)); panel->setOnDirtyFlagChanged([this](LLPanel *, bool value) { onPanelDirtyFlagChanged(value); }); mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(false)); panel = new LLPanelSettingsSkySunMoonTab; - panel->buildFromFile("panel_settings_sky_sunmoon.xml"); + // [PhotoTools] Use FS specific panel XML for Sky Sun Moon Settings + // panel->buildFromFile("panel_settings_sky_sunmoon.xml"); // Original LL line - using default panel XML + panel->buildFromFile("panel_fs_settings_sky_sunmoon.xml"); // Using FS specific panel XML + // panel->setSky(std::static_pointer_cast(mSettings)); panel->setOnDirtyFlagChanged([this](LLPanel *, bool value) { onPanelDirtyFlagChanged(value); }); mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(false)); diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 3041eda05a..ec7a57712c 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -435,9 +435,13 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("emoji_picker", "floater_emoji_picker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("emoji_complete", "floater_emoji_complete.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("env_post_process", "floater_post_process.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); - - LLFloaterReg::add("env_fixed_environmentent_water", "floater_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); - LLFloaterReg::add("env_fixed_environmentent_sky", "floater_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); + + // [PhotoTools] Use FS specific XML for Fixed Environment Floater + //LLFloaterReg::add("env_fixed_environmentent_water", "floater_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); // Commenting out original LL line + LLFloaterReg::add("env_fixed_environmentent_water", "floater_fs_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); // Using FS specific floater XML + // [PhotoTools] Use FS specific XML for Fixed Environment Floater + //LLFloaterReg::add("env_fixed_environmentent_sky", "floater_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); // Commenting out original LL line + LLFloaterReg::add("env_fixed_environmentent_sky", "floater_fs_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); // Using FS specific floater XML LLFloaterReg::add("env_adjust_snapshot", "floater_adjust_environment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); @@ -652,7 +656,9 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("money_tracker", "floater_fs_money_tracker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("particle_editor","floater_particle_editor.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("performance", "floater_fs_performance.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); - LLFloaterReg::add(PHOTOTOOLS_FLOATER, "floater_phototools.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); + // [PhotoTools] Corrected typo in Phototools floater registration - using string literal instead of PHOTOTOOLS_FLOATER constant (likely intended). + // LLFloaterReg::add(PHOTOTOOLS_FLOATER, "floater_phototools.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); // Original line with likely typo + LLFloaterReg::add("phototools", "floater_phototools.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); // Corrected line - using string literal "phototools" LLFloaterReg::add("phototools_camera", "floater_phototools_camera.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("quickprefs", "floater_quickprefs.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("region_tracker", "floater_region_tracker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); diff --git a/indra/newview/skins/default/xui/en/floater_fs_fixedenvironment.xml b/indra/newview/skins/default/xui/en/floater_fs_fixedenvironment.xml new file mode 100644 index 0000000000..88c7973950 --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_fs_fixedenvironment.xml @@ -0,0 +1,206 @@ + + + Edit Sky: + Edit Water: + + + + Name: + + + + + + + + + + + + + Shd. Res @@ -677,11 +1126,11 @@ control_name="RenderShadowResolutionScale" follows="left|right" height="16" - increment="0.01" + increment="0.5" layout="topleft" left_pad="-20" min_val="0" - max_val="4" + max_val="8" top_delta="-2" width="127"/> + increment="0.5"/> + + Spot Offset + + + + + + width="107"/> + width="73" + increment="0.000001" + border_visible="false"/> + + Irrad Max + + + + + + + Irrad Scale + + + + + @@ -1245,6 +1856,7 @@ width="20" tool_tip="Reset to the default value."/> + View angle @@ -1724,12 +2336,152 @@ parameter="CameraDoFResScale"/> - + + + HDR Tone Mapping Settings + + + + + + + + + + + + + HDR Tonemap Type + + + + + + + + Tone Mix + + + + + - + top_pad="5" + width="110"/> + + + + + + + + Quality - + width="127" /> - - - + Iterations @@ -1929,7 +2693,7 @@ parameter="RenderGlowStrength"/> - - + - - + @@ -2165,7 +2929,7 @@ top_pad="3" left="4" width="275" - height="250" + height="287" border_visible="true" background_visible="true"> Draw Dist. @@ -2314,7 +3078,97 @@ function="ResetControl" parameter="RenderAvatarLODFactor"/> + + + + increment=".01"/> + + Sharpening + + + + + + Exposure + + + + - - + @@ -2877,7 +3825,7 @@ height="16" label="Enable Draw Distance" layout="topleft" - top_pad="10" + top_pad="5" left="5" name="UseFarClip" tool_tip="Enable Draw Distance, if you disable this feature the Viewer will render past your set draw distance." @@ -2891,7 +3839,7 @@ left="5" name="RednerLod1" tool_tip="This enables the feature that allows the viewer to dynamically adjust the level of detail in scene as you move further away from objects. It helps improve performance, it also can reduce the quality of the objects in the scene." - top_pad="2" + top_pad="0" width="240"/> + + + + + + + + + + + + + Color: + + + + + + + + + + + Cover: + + + + + + Scale: + + + + + + Variance: + + + + + + + + + + Cloud XY/Density + + + + + + + + + + + + + + Cloud XY/Detail + + + + + + + + + + + + + + + Scroll: + + + + Image: + + + + + + + + + + + + + + diff --git a/indra/newview/skins/default/xui/en/panel_fs_settings_sky_sunmoon.xml b/indra/newview/skins/default/xui/en/panel_fs_settings_sky_sunmoon.xml new file mode 100644 index 0000000000..3d65e677dd --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_fs_settings_sky_sunmoon.xml @@ -0,0 +1,525 @@ + + + + + + + + + + + + + + + Color: + + + + + + + + + + + + + + + + + Image: + + + + + + + + + + + + Focus: + + + + + + Size: + + + + + + Azimuth: + + + + + + Elevation: + + + + + + Star Brt: + + + + + + + + + + + + + + + + + + + + Image: + + + + + + + + + + + Bright: + + + + + + + Azimuth: + + + + + Elevation: + + + + + + + + diff --git a/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml b/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml new file mode 100644 index 0000000000..f08d4d1fd4 --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml @@ -0,0 +1,549 @@ + + + + + + + + + + + + + + + + + Water Fog Color + + + + Normal Map + + + + + + + + + + + + + Density: + + + + + + + Modifier: + + + + + + + Fres. Scale: + + + + + + + + + Fres. Offset: + + + + + + + + + + + + + + + + + + + Large Wave Speed + + + + Small Wave Speed + + + + + + + + Reflection Wavelet Scale + + + + + + + + + + + + + + + + + + + + Refract Above: + + + + + + + + Refract Below: + + + + + + + + + Blur Multiplier + + + + + + + + + + + + From 4178a368092c0bd9a1b0f28ed08012e033e9dfec Mon Sep 17 00:00:00 2001 From: chanayane Date: Thu, 9 Jan 2025 16:53:41 +0100 Subject: [PATCH 02/40] Added preview buttons in profile panel to preview the About section, Picks and First Life introduction like others would see it, useful to preview links for example --- indra/llui/lltexteditor.cpp | 14 +++ indra/llui/lltexteditor.h | 5 ++ indra/newview/llpanelprofile.cpp | 86 +++++++++++++++++++ indra/newview/llpanelprofile.h | 15 ++++ indra/newview/llpanelprofilepicks.cpp | 41 +++++++++ indra/newview/llpanelprofilepicks.h | 15 ++++ .../xui/en/panel_profile_firstlife.xml | 28 +++++- .../default/xui/en/panel_profile_pick.xml | 15 ++++ .../xui/en/panel_profile_secondlife.xml | 26 +++++- 9 files changed, 243 insertions(+), 2 deletions(-) diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 65d7712761..18da564754 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -345,6 +345,20 @@ void LLTextEditor::setText(const LLStringExplicit &utf8str, const LLStyle::Param resetDirty(); } +// Preview button +void LLTextEditor::reparseText(const LLStringExplicit &utf8str, const LLStyle::Params& input_params) +{ + mParseOnTheFly = false; + LLTextBase::setText(utf8str, input_params); + mParseOnTheFly = true; +} + +void LLTextEditor::reparseValue(const LLSD& value) +{ + reparseText(value.asString()); +} +// + // [SL:KB] - Patch: UI-FloaterSearchReplace | Checked: 2013-12-30 (Catznip-3.6) std::string LLTextEditor::getSelectionString() const { diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h index ccc902e58e..5a4790acd8 100644 --- a/indra/llui/lltexteditor.h +++ b/indra/llui/lltexteditor.h @@ -187,6 +187,11 @@ public: // Non-undoable void setText(const LLStringExplicit &utf8str, const LLStyle::Params& input_params = LLStyle::Params()); + // Preview button + void reparseText(const LLStringExplicit &utf8str, const LLStyle::Params& input_params = LLStyle::Params()); + void reparseValue(const LLSD& value); + // + // Removes text from the end of document // Does not change highlight or cursor position. diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 1790bb0984..57352bef64 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -717,6 +717,7 @@ LLPanelProfileSecondLife::LLPanelProfileSecondLife() , mAllowPublish(false) , mHideAge(false) , mRlvBehaviorCallbackConnection() // RLVa support + , mPreview(false) // Preview button { } @@ -785,6 +786,7 @@ bool LLPanelProfileSecondLife::postBuild() mIMButton = getChild("im"); mOverflowButton = getChild("overflow_btn"); // + mPreviewButton = getChild("btn_preview"); // Preview button // Fix LL UI/UX design accident //mShowInSearchCombo->setCommitCallback([this](LLUICtrl*, void*) { onShowInSearchCallback(); }, nullptr); @@ -802,6 +804,9 @@ bool LLPanelProfileSecondLife::postBuild() mPayButton->setCommitCallback([this](LLUICtrl*, void*) { onCommitMenu(LLSD("pay")); }, nullptr); mIMButton->setCommitCallback([this](LLUICtrl*, void*) { onCommitMenu(LLSD("im")); }, nullptr); // + // Preview button + mPreviewButton->setCommitCallback([this](LLUICtrl*, void*) { onCommitMenu(LLSD("preview")); }, nullptr); + // mGroupList->setDoubleClickCallback([this](LLUICtrl*, S32 x, S32 y, MASK mask) { LLPanelProfileSecondLife::openGroupProfile(); }); mGroupList->setReturnCallback([this](LLUICtrl*, const LLSD&) { LLPanelProfileSecondLife::openGroupProfile(); }); mSaveDescriptionChanges->setCommitCallback([this](LLUICtrl*, void*) { onSaveDescriptionChanges(); }, nullptr); @@ -856,6 +861,7 @@ void LLPanelProfileSecondLife::onOpen(const LLSD& key) mDiscardDescriptionChanges->setVisible(own_profile); mShowInSearchCheckbox->setVisible(own_profile); // + mPreviewButton->setVisible(own_profile); // Preview button if (own_profile) { @@ -1785,6 +1791,7 @@ void LLPanelProfileSecondLife::setLoaded() //{ // mHideAgeCombo->setEnabled(true); mShowInSearchCheckbox->setEnabled(true); + mPreviewButton->setEnabled(true); // Preview button if (mHideAgeCheckbox->getVisible()) { mHideAgeCheckbox->setEnabled(true); @@ -1801,6 +1808,10 @@ void LLPanelProfileSecondLife::updateButtons() { mShowInSearchCheckbox->setVisible(true); mShowInSearchCheckbox->setEnabled(true); +// Preview button + mPreviewButton->setVisible(true); + mPreviewButton->setEnabled(true); +// mDescriptionEdit->setEnabled(true); } else @@ -2104,6 +2115,32 @@ void LLPanelProfileSecondLife::onCommitMenu(const LLSD& userdata) LLAvatarActions::report(agent_id); } // + // Preview button + else if (item_name == "preview") + { + mPreview = !mPreview; + + mDescriptionEdit->setEnabled(!mPreview); + mDescriptionEdit->setParseHTML(mPreview); + + if (mPreview) { + mPreviewButton->setImageOverlay("Profile_Group_Visibility_Off"); + if (mHasUnsavedDescriptionChanges) { + mSaveDescriptionChanges->setEnabled(false); + mDiscardDescriptionChanges->setEnabled(false); + } + mOriginalDescriptionText = mDescriptionEdit->getValue().asString(); + reparseDescriptionText(mOriginalDescriptionText); + } else { + mPreviewButton->setImageOverlay("Profile_Group_Visibility_On"); + if (mHasUnsavedDescriptionChanges) { + mSaveDescriptionChanges->setEnabled(true); + mDiscardDescriptionChanges->setEnabled(true); + } + reparseDescriptionText(mOriginalDescriptionText); + } + } + // } bool LLPanelProfileSecondLife::onEnableMenu(const LLSD& userdata) @@ -2222,6 +2259,13 @@ void LLPanelProfileSecondLife::setDescriptionText(const std::string &text) mDescriptionEdit->setValue(mDescriptionText); } +// Preview button +void LLPanelProfileSecondLife::reparseDescriptionText(const std::string &text) +{ + mDescriptionEdit->reparseValue(text); +} +// + void LLPanelProfileSecondLife::onSetDescriptionDirty() { mSaveDescriptionChanges->setEnabled(true); @@ -2679,6 +2723,7 @@ void LLPanelProfileWeb::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent e LLPanelProfileFirstLife::LLPanelProfileFirstLife() : LLPanelProfilePropertiesProcessorTab() , mHasUnsavedChanges(false) + , mPreview(false) // Preview button { } @@ -2699,12 +2744,16 @@ bool LLPanelProfileFirstLife::postBuild() mRemovePhoto = getChild("fl_remove_image"); mSaveChanges = getChild("fl_save_changes"); mDiscardChanges = getChild("fl_discard_changes"); + mPreviewButton = getChild("btn_preview"); // Preview button mUploadPhoto->setCommitCallback([this](LLUICtrl*, void*) { onUploadPhoto(); }, nullptr); mChangePhoto->setCommitCallback([this](LLUICtrl*, void*) { onChangePhoto(); }, nullptr); mRemovePhoto->setCommitCallback([this](LLUICtrl*, void*) { onRemovePhoto(); }, nullptr); mSaveChanges->setCommitCallback([this](LLUICtrl*, void*) { onSaveDescriptionChanges(); }, nullptr); mDiscardChanges->setCommitCallback([this](LLUICtrl*, void*) { onDiscardDescriptionChanges(); }, nullptr); + // Preview button + mPreviewButton->setCommitCallback([this](LLUICtrl*, void*) { onClickPreview(); }, nullptr); + // mDescriptionEdit->setKeystrokeCallback([this](LLTextEditor* caller) { onSetDescriptionDirty(); }); mPicture->setCommitCallback(boost::bind(&LLPanelProfileFirstLife::onFirstLifePicChanged, this)); // Allow proper texture swatch handling @@ -2720,6 +2769,7 @@ void LLPanelProfileFirstLife::onOpen(const LLSD& key) // Otherwise as the only focusable element it will be selected mDescriptionEdit->setTabStop(false); } + mPreviewButton->setVisible(getSelfProfile()); // Preview button // Allow proper texture swatch handling mPicture->setEnabled(getSelfProfile()); @@ -2893,6 +2943,13 @@ void LLPanelProfileFirstLife::setDescriptionText(const std::string &text) mDescriptionEdit->setValue(mCurrentDescription); } +// Preview button +void LLPanelProfileFirstLife::reparseDescriptionText(const std::string &text) +{ + mDescriptionEdit->reparseValue(text); +} +// + void LLPanelProfileFirstLife::onSetDescriptionDirty() { mSaveChanges->setEnabled(true); @@ -2949,6 +3006,33 @@ void LLPanelProfileFirstLife::onDiscardDescriptionChanges() setDescriptionText(mCurrentDescription); } +// Preview button +void LLPanelProfileFirstLife::onClickPreview() +{ + mPreview = !mPreview; + + mDescriptionEdit->setEnabled(!mPreview); + mDescriptionEdit->setParseHTML(mPreview); + + if (mPreview) { + mPreviewButton->setImageOverlay("Profile_Group_Visibility_Off"); + if (mHasUnsavedChanges) { + mSaveChanges->setEnabled(false); + mDiscardChanges->setEnabled(false); + } + mOriginalDescription = mDescriptionEdit->getValue().asString(); + reparseDescriptionText(mOriginalDescription); + } else { + mPreviewButton->setImageOverlay("Profile_Group_Visibility_On"); + if (mHasUnsavedChanges) { + mSaveChanges->setEnabled(true); + mDiscardChanges->setEnabled(true); + } + reparseDescriptionText(mOriginalDescription); + } +} +// + void LLPanelProfileFirstLife::processProperties(void * data, EAvatarProcessorType type) { if (APT_PROPERTIES == type) @@ -3025,6 +3109,7 @@ void LLPanelProfileFirstLife::resetData() // mSaveChanges->setVisible(getSelfProfile()); mDiscardChanges->setVisible(getSelfProfile()); + mPreviewButton->setVisible(getSelfProfile()); // Preview button } void LLPanelProfileFirstLife::setLoaded() @@ -3036,6 +3121,7 @@ void LLPanelProfileFirstLife::setLoaded() mDescriptionEdit->setEnabled(true); mPicture->setEnabled(true); mRemovePhoto->setEnabled(mImageId.notNull()); + mPreviewButton->setEnabled(true); } } diff --git a/indra/newview/llpanelprofile.h b/indra/newview/llpanelprofile.h index d348da069a..4e7bd51dce 100644 --- a/indra/newview/llpanelprofile.h +++ b/indra/newview/llpanelprofile.h @@ -203,6 +203,9 @@ private: void onAvatarNameCacheSetName(const LLUUID& id, const LLAvatarName& av_name); void setDescriptionText(const std::string &text); + // Preview button + void reparseDescriptionText(const std::string& text); + // void onSetDescriptionDirty(); void onShowInSearchCallback(); void onHideAgeCallback(); @@ -266,6 +269,7 @@ private: LLButton* mIMButton; LLMenuButton* mOverflowButton; // + LLButton* mPreviewButton; // Preview button LLHandle mFloaterPermissionsHandle; LLHandle mFloaterProfileTextureHandle; @@ -275,8 +279,10 @@ private: bool mVoiceStatus; bool mWaitingForImageUpload; bool mAllowPublish; + bool mPreview; // Preview button bool mHideAge; std::string mDescriptionText; + std::string mOriginalDescriptionText; // Preview button LLUUID mImageId; boost::signals2::connection mAvatarNameCacheConnection; @@ -366,9 +372,13 @@ protected: void onFirstLifePicChanged(); // Allow proper texture swatch handling void onCommitPhoto(const LLUUID& id); void setDescriptionText(const std::string &text); + // Preview button + void reparseDescriptionText(const std::string& text); + // void onSetDescriptionDirty(); void onSaveDescriptionChanges(); void onDiscardDescriptionChanges(); + void onClickPreview(); // Preview button LLTextEditor* mDescriptionEdit; // Allow proper texture swatch handling @@ -380,12 +390,17 @@ protected: LLButton* mRemovePhoto; LLButton* mSaveChanges; LLButton* mDiscardChanges; + LLButton* mPreviewButton; // Preview button LLHandle mFloaterTexturePickerHandle; std::string mCurrentDescription; LLUUID mImageId; bool mHasUnsavedChanges; +// Preview button + bool mPreview; + std::string mOriginalDescription; +// }; /** diff --git a/indra/newview/llpanelprofilepicks.cpp b/indra/newview/llpanelprofilepicks.cpp index 574995c4fe..ec9a85d6b4 100644 --- a/indra/newview/llpanelprofilepicks.cpp +++ b/indra/newview/llpanelprofilepicks.cpp @@ -543,6 +543,9 @@ LLPanelProfilePick::LLPanelProfilePick() , mIsEditing(false) , mRegionCallbackConnection() , mParcelCallbackConnection() +// Preview button + , mPreview(false) +// { } @@ -622,6 +625,11 @@ void LLPanelProfilePick::setAvatarId(const LLUUID& avatar_id) resetDirty(); +// Preview button + mPreviewButton->setVisible(getSelfProfile()); + mPreviewButton->setEnabled(getSelfProfile()); +// + if (getSelfProfile()) { mPickName->setEnabled(true); @@ -645,6 +653,7 @@ bool LLPanelProfilePick::postBuild() mCreateButton = getChild("create_changes_btn"); mCancelButton = getChild("cancel_changes_btn"); mSetCurrentLocationButton = getChild("set_to_curr_location_btn"); // Keep set location button + mPreviewButton = getChild("btn_preview"); // Preview button mSnapshotCtrl = getChild("pick_snapshot"); mSnapshotCtrl->setCommitCallback(boost::bind(&LLPanelProfilePick::onSnapshotChanged, this)); @@ -658,6 +667,9 @@ bool LLPanelProfilePick::postBuild() mCreateButton->setCommitCallback(boost::bind(&LLPanelProfilePick::onClickSave, this)); mCancelButton->setCommitCallback(boost::bind(&LLPanelProfilePick::onClickCancel, this)); mSetCurrentLocationButton->setCommitCallback(boost::bind(&LLPanelProfilePick::onClickSetLocation, this)); // Keep set location button + // Preview button + mPreviewButton->setCommitCallback(boost::bind(&LLPanelProfilePick::onClickPreview, this)); + // mPickName->setKeystrokeCallback(boost::bind(&LLPanelProfilePick::onPickChanged, this, _1), NULL); mPickName->setEnabled(false); @@ -752,6 +764,13 @@ void LLPanelProfilePick::setPickDesc(const std::string& desc) mPickDescription->setValue(desc); } +// Preview button +void LLPanelProfilePick::reparseDescription(const std::string& desc) +{ + mPickDescription->reparseValue(desc); +} +// + void LLPanelProfilePick::setPickLocation(const std::string& location) { getChild("pick_location")->setValue(location); @@ -848,6 +867,28 @@ void LLPanelProfilePick::onClickSetLocation() } // +// Preview button +void LLPanelProfilePick::onClickPreview() +{ + mPreview = !mPreview; + + if (mPreview) { // Then we switch to preview mode + mPreviewButton->setImageOverlay("Profile_Group_Visibility_Off"); + mOriginalPickText = mPickDescription->getValue().asString(); + mPickDescription->setEnabled(!mPreview); + mPickDescription->setParseHTML(mPreview); + reparseDescription(mOriginalPickText); + enableSaveButton(false); + } else { // we switch to edit mode, restoring the dirty state if necessary + mPreviewButton->setImageOverlay("Profile_Group_Visibility_On"); + mPickDescription->setEnabled(!mPreview); + mPickDescription->setParseHTML(mPreview); + reparseDescription(mOriginalPickText); + enableSaveButton(isDirty()); // re-check if whole pick is dirty + } +} +// + void LLPanelProfilePick::onClickSave() { if (mRegionCallbackConnection.connected()) diff --git a/indra/newview/llpanelprofilepicks.h b/indra/newview/llpanelprofilepicks.h index ed39fa6e9a..d1962e489e 100644 --- a/indra/newview/llpanelprofilepicks.h +++ b/indra/newview/llpanelprofilepicks.h @@ -173,6 +173,9 @@ public: */ virtual void setSnapshotId(const LLUUID& id); virtual void setPickDesc(const std::string& desc); + // Preview button + virtual void reparseDescription(const std::string& desc); + // virtual void setPickLocation(const std::string& location); virtual void setPosGlobal(const LLVector3d& pos) { mPosGlobal = pos; } @@ -215,6 +218,13 @@ public: void onClickSetLocation(); // + // Preview button + /** + * Callback for "Preview" button click + */ + void onClickPreview(); + // + /** * Callback for "Save" and "Create" button click */ @@ -241,6 +251,7 @@ protected: LLButton* mSaveButton; LLButton* mCreateButton; LLButton* mCancelButton; + LLButton* mPreviewButton; // Preview button LLVector3d mPosGlobal; LLUUID mParcelId; @@ -254,6 +265,10 @@ protected: bool mLocationChanged; bool mNewPick; bool mIsEditing; +// Preview button + bool mPreview; + std::string mOriginalPickText; +// void onDescriptionFocusReceived(); }; diff --git a/indra/newview/skins/default/xui/en/panel_profile_firstlife.xml b/indra/newview/skins/default/xui/en/panel_profile_firstlife.xml index 02966a149d..0ddc9668d9 100644 --- a/indra/newview/skins/default/xui/en/panel_profile_firstlife.xml +++ b/indra/newview/skins/default/xui/en/panel_profile_firstlife.xml @@ -43,7 +43,17 @@ follows="top|left" layout="topleft" visible="false"/> + - - + + width="130"/> - @@ -467,9 +500,9 @@ name="P_W_Reflections" follows="top|left" layout="topleft" - top_pad="4" + top_pad="1" left="0" - width="285" + right="-1" height="22" bg_alpha_color="Phototools_Header" border_visible="true" @@ -479,10 +512,10 @@ name="T_W_Reflections" follows="left|top" layout="topleft" - left="10" + left="5" font="SansSerif" height="17" - width="230"> + width="280"> Reflection Settings @@ -491,10 +524,10 @@ name="P_R_Res" follows="top|left" layout="topleft" - top_pad="3" - left="5" - width="275" - height="60" + top_pad="1" + left="3" + right="-5" + height="77" border_visible="true" background_visible="true"> + + + - - Water Reflection Res. - - - - - - - - - - - + + tool_tip="Determines the level of detail in reflections. 'Static Only' reflects non-moving objects, while higher settings include dynamic objects and real-time reflections." + top_pad="9" + width="162"> Reflection Detail + right="-5"> + width="162"> Reflection Coverage + right="-5"> + width="162"> Mirror Resolution + right="-5"> + width="162"> Mirror Update Rate + right="-5"> + width="162"> Probe Resolution (Restart) + name="Probe_Resolution_Combo"> - - + + @@ -909,17 +872,14 @@ name="P_Lighting" follows="all" layout="topleft" - width="267" - top="0" - label="Shd" - left="0"> + label="Shdw"> + width="280"> Lights and Shadows Settings @@ -941,50 +901,22 @@ name="P_L_S_Settings" follows="top|left" layout="topleft" - top_pad="5" - left="4" - width="275" - height="65" + top_pad="1" + left="3" + right="-3" + height="68" border_visible="true" background_visible="true"> - - - - - - - - + tool_tip="Controls the types of shadows rendered from light sources. Point lights without projection features create lighting effects but do not cast shadows. Projected light textures remain visible regardless of this setting."> Shadow Types + right="-5"> + tool_tip="Defines how many local light sources are rendered simultaneously. Setting this to 0 turns off all local lights. Higher values may impact performance in complex scenes."> Point Lighting (Restart) + right="-5"> - + + + + @@ -1066,21 +1013,21 @@ left="5" top_pad="10" tool_tip="Number of local lights to render." - width="80"> + width="70"> Loc Lights + tool_tip="Adjusts the quality and sharpness of shadows. Higher values produce more detailed shadows but can significantly impact performance, especially in complex scenes. For general use, keep this setting low to maintain smooth performance. When preparing for high-quality snapshots, set it around 1.0, then gradually increase while monitoring your framerate. Using the Statistics Bar (found under 'Aids' in 'Interface Aids') can help you find the optimal balance for your system. Caution: Increasing this setting too quickly or setting it too high may cause viewer instability or crashes." + width="70"> Shd. Res + name="SB_Shadow_Res" + control_name="RenderShadowResolutionScale" + follows="left|right" + height="16" + increment="0.5" + layout="topleft" + left_pad="0" + min_val="0" + max_val="5" + top_delta="-2" + width="127"> + + + increment="0.5"> + + + tool_tip="Adjusts the level of detail (LOD) for avatars. Higher values improve visual quality, making legacy avatars appear more detailed even at greater distances. Lower values reduce detail to improve performance, which is useful in high-density areas or on lower-end systems. This setting primarily affects legacy (system) avatars. Mesh avatars are less affected by this setting as their detail levels are controlled by their own LOD settings within the mesh and further influenced by the Avatar Complexity settings found in the Graphics panel of the Preferences floater." + width="70"> Avi Detail - - + tool_tip="Controls the level of detail for avatar physics effects, such as breast physics and other mesh deformation behaviors. Higher values provide smoother, more realistic motion at the cost of performance. Lower values reduce the complexity of physics calculations, improving performance in crowded areas." + width="70"> Avi Physics + tool_tip="Sets the maximum number of particles the viewer will render at once. This affects effects like smoke, fire, magic spells, ropes, chains and particle-based animations. Higher values allow more particles for detailed visual effects but may reduce performance in particle-heavy environments." + width="70"> Particle Cnt. - Terr. Scale + tool_tip="Determines the scaling factor for the default ground (terrain) texture, affecting how stretched or detailed the terrain appears. Higher values create finer, more detailed textures, while lower values reduce detail but can improve performance." + width="70"> + Terrain Scale - Terrain Qal + tool_tip="Controls the level of detail (LOD) factor for terrain rendering. Higher values provide more detailed terrain, especially at greater distances, enhancing realism. Lower values simplify terrain detail for better performance in large regions." + width="70"> + Terrain Qual. - Obj. Detail + tool_tip="Adjusts the level of detail (LOD) for in-world objects. Higher values maintain high-quality object details even at greater distances but may reduce performance, especially in complex environments. Lower values trigger simpler object models (LODs) sooner, improving FPS but potentially reducing visual fidelity. A value of 4 provides a good balance between performance and visual quality, maintaining detailed objects without excessive resource usage. Values below 4, such as 2, will cause mesh objects to deform noticeably, making them unsuitable for photography or situations where visual accuracy is important." + width="70"> + Object Detail + tool_tip="Controls the level of detail for flexible (flexi) objects like flowing hair, flags, and ropes. Higher values produce smoother, more realistic motion but may affect performance. Lower values simplify movement calculations for faster rendering." + width="70"> Flexiprims @@ -3469,8 +3334,8 @@ layout="topleft" left="5" top_pad="5" - tool_tip="Controls level of detail of vegetation. Higher numbers produce greater detail." - width="80"> + tool_tip="Sets the level of detail (LOD) for trees and other vegetation. Higher values result in more complex, detailed foliage, while lower values simplify tree geometry for improved performance, especially in densely vegetated regions. This setting applies specifically to system (legacy) trees and does not affect non-system or mesh-based trees, which manage their detail through their own LOD settings." + width="70"> Tree Detail + tool_tip="Controls the vertex detail of the Enviroment sky, affecting the smoothness of gradients, cloud shapes, and atmospheric effects. Higher values enhance sky realism but may reduce performance. Lower values improve FPS but may make the sky appear blocky or less detailed." + width="70"> Sky Detail + width="70"> Sharpening + width="70"> Exposure @@ -3858,19 +3725,19 @@ height="16" label="Anisotropic Filtering (texture crispness)" layout="topleft" - left="5" - tool_tip="This enables higher texture crispness." + left="3" + tool_tip="Improves the sharpness and clarity of textures viewed at angles, making surfaces like floors, roads, and walls appear crisper. While enhancing visual quality, enabling anisotropic filtering may slightly impact performance, especially on lower-end graphics hardware." name="Anisotropic" top_pad="0" width="240"/> + width="185" + tool_tip="Selects the type of antialiasing used to smooth jagged edges on objects. FXAA (Fast Approximate Antialiasing) is a fast method with moderate quality. SMAA (Subpixel Morphological Antialiasing) offers better edge smoothing with slightly higher performance cost. Changes to this setting may require a viewer restart to take effect on some hardware."> Antialiasing Type (Restart) + right="-5"> + tool_tip="Determines the quality of antialiasing, which smooths the edges of objects. Higher settings reduce jagged edges, providing a cleaner look. On high-end graphics cards, higher values have minimal performance impact. On lower-end systems, higher settings can reduce performance."> Antialiasing Quality + tool_tip="Controls the strength and resolution of normal and bump maps, which add texture detail to surfaces without increasing polygon count. Higher settings enhance surface detail, while lower settings improve performance by reducing visual complexity."> Texture Bumpiness + tool_tip="Sets the maximum resolution for textures displayed in-world. Higher resolutions (like 2048 px) provide sharper, more detailed images but use more video memory, which can affect performance. Lower settings help conserve memory, reducing the chance of blurry textures due to memory limits."> Max Texture Resolution @@ -4057,22 +3924,18 @@ top_delta="-5" name="MaxTextureResolutionSelection" width="85"> - - - - @@ -4082,9 +3945,9 @@ height="15" left="5" top_pad="5" - width="135" + width="140" layout="topleft" - tool_tip="Controls how avatars are displayed based on complexity and friendship status."> + tool_tip="Controls how avatars are displayed based on complexity and friendship status. 'Limit by Complexity' restricts rendering of avatars above a certain complexity to improve performance. 'Always Show Friends' ensures friends are fully rendered regardless of their complexity. 'Only Show Friends' renders only your friends, hiding other avatars to optimize performance in crowded areas."> Avatar Display @@ -4125,16 +3988,14 @@ name="P_Aids" follows="left|top" layout="topleft" - top_pad="0" - label="Aids" - left="0"> + label="Aids"> + width="280"> Interface Aids - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + top_pad="1" + left="3" + right="-3" + height="302" + border_visible="true" + background_visible="true"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tool_tip="Displays real-time system performance statistics to help you gauge the viewer's efficiency. You can expand or collapse individual metrics by clicking their labels." + width="270"> Quick Stats + right="-4"> + width="265"> @@ -4497,16 +4382,14 @@ name="P_Cam" follows="left|top" layout="topleft" - top_pad="0" - label="Cam" - left="0"> + label="Cam"> + width="280"> 3D Mouse (Joystick) Settings @@ -4528,9 +4411,9 @@ name="P_Cam_Settings" follows="top|left" layout="topleft" - top_pad="5" - left="4" - width="275" + top_pad="1" + left="3" + right="-3" height="184" border_visible="true" background_visible="true"> @@ -4539,9 +4422,9 @@ follows="top|left" layout="topleft" left="5" - tool_tip="Adjusts the sensitivity of the Left/Right movement. If you find it difficult to move with precision, use lower scale values." + tool_tip="Adjusts the sensitivity for horizontal camera movement. Lower values allow for finer control, while higher values increase movement speed." top_pad="10" - width="80"> + width="70"> Left/Right + width="70"> Up/Down + width="70"> In/Out + width="70"> Pitch + width="70"> Yaw + width="70"> Roll - Zoom Spd + width="70"> + Zoom + width="70"> Feathering @@ -4945,21 +4828,21 @@ label="Zoom Axis Mapping" label_width="200" layout="topleft" - left="10" + left="5" max_val="5" min_val="-1" name="JoystickAxis6" - tool_tip="Controls which mouse axis the zooming function is mapped to (set to work with)." + tool_tip="Determines which joystick or mouse axis controls the zoom function. Set this to '4' to enable zoom via the joystick." top_pad="5" - width="255"/> + width="269"/> @@ -5033,9 +4917,9 @@ name="P_Viewer_Cam_Menu" follows="top|left" layout="topleft" - top_pad="5" + top_pad="3" left="0" - width="285" + width="288" height="22" bg_alpha_color="Phototools_Header" border_visible="true" @@ -5045,10 +4929,10 @@ name="PT_Viewer_Cam_Menu" follows="left|top" layout="topleft" - left="10" + left="7" font="SansSerif" height="17" - width="230"> + width="270"> Viewer Camera Menu Settings @@ -5057,10 +4941,10 @@ name="P_Viewer_Cam_Menu_Settings" follows="left|top" layout="topleft" - top_pad="5" - left="4" - width="275" - height="120" + top_pad="3" + left="3" + right="-3" + height="131" border_visible="true" background_visible="true"> @@ -5088,7 +4972,7 @@ name="P_Cam2" follows="left|top" layout="topleft" - top_pad="0" + top_pad="3" left="0" width="275" height="110" @@ -5097,7 +4981,7 @@ @@ -5111,11 +4995,11 @@ height="16" increment="0.002" layout="topleft" - left_delta="100" + left_pad="0" min_val="0.08" max_val="3.06" top_delta="-2" - width="135"/> + width="147"/> - +help_topic="fs_skies" +name="panel_fs_settings_sky_clouds" +top="0"> name="P_Atmos_Settings" follows="left|top" layout="topleft" - top_pad="5" - left="0" - width="250" + top_pad="1" + left="3" + width="280" height="35" border_visible="true" - bevel_style="in" background_visible="true"> layout="topleft" left="5" top_pad="10" - width="50"> - Color: + width="105"> + Cloud Color: height="25" label_height="0" layout="topleft" - left_delta="55" + left_pad="0" name="cloud_color" top_delta="-5" - width="185" /> + width="166" /> @@ -91,12 +72,11 @@ height="75"--> name="P_Cloud_Density" follows="left|top" layout="topleft" - top_pad="5" - left="0" - width="250" - height="60" + top_pad="1" + left="3" + width="280" + height="63" border_visible="true" - bevel_style="in" background_visible="true"> @@ -106,8 +86,9 @@ height="75"--> height="15" layout="topleft" left="5" - width="55"> - Cover: + top_pad="7" + width="100"> + Cloud Cover: increment="0.01" initial_value="0" layout="topleft" - left="55" min_val="0" max_val="1" name="cloud_coverage" - left_pad="50" - width="190" + left_pad="0" + width="171" can_edit_text="true"/> height="15" layout="topleft" left="5" - width="50"> - Scale: + width="100"> + Cloud Scale: increment="0.01" initial_value="0" layout="topleft" - left="55" min_val="0" max_val="3" name="cloud_scale" - left_pad="50" - width="190" + left_pad="0" + width="171" can_edit_text="true"/> height="15" layout="topleft" left="5" - width="50"> - Variance: + width="100"> + Cloud Variance: increment="0.01" initial_value="0" layout="topleft" - left="55" min_val="0" max_val="1.0" name="cloud_variance" - left_pad="50" - width="190" + left_pad="0" + width="171" can_edit_text="true"/> @@ -181,75 +159,97 @@ height="75"--> name="P_Cloud_Density" follows="left|top" layout="topleft" - top_pad="5" - left="0" - width="250" - height="80" + top_pad="1" + left="3" + width="280" + height="77" border_visible="true" - bevel_style="in" background_visible="true"> - Cloud XY/Density + tool_tip="Cloud XY/Density - Use the X and Y sliders to change the horizontal position of all clouds in the sky. The D slider affects the overall density of the individual clouds; at low settings you will see thin, wispy clouds, and at higher settings you will see thicker, more solid clouds."> + Cloud Density: + + + + X: + + + Y: + + + D: + + @@ -258,76 +258,98 @@ height="75"--> name="P_Cloud_Detail" follows="left|top" layout="topleft" - top_pad="5" - left="0" - width="250" - height="80" + top_pad="1" + left="3" + width="280" + height="77" border_visible="true" - bevel_style="in" background_visible="true"> - Cloud XY/Detail + Cloud Detail: - + + X: + + + + + Y: + + + + D: + @@ -336,12 +358,11 @@ height="75"--> name="P_Cloud_Scroll" follows="left|top" layout="topleft" - top_pad="5" - left="0" - width="250" - height="105" + top_pad="1" + left="3" + width="280" + height="103" border_visible="true" - bevel_style="in" background_visible="true"> layout="topleft" left="5" top_pad="5" - width="40"> - Scroll: + width="134"> + Cloud Scroll: follows="left|top" height="10" layout="topleft" - left_pad="90" + left_pad="1" top_delta="0" - width="50"> - Image: + width="134"> + Cloud Image: + width="80"/> - - - - - - - - - - - - Color: - - - - - - - - - - - - - - - - - Image: - - - - - - - - - - - - Focus: - - - - - - Size: - - - - - - Azimuth: - - - +border="true" +follows="all" +height="390" +label="Sun & Moon" +layout="topleft" +left="0" +help_topic="fs_skies" +name="panel_fs_settings_sky_hbodies" +top="0"> + + + + + + + + + + Sun & Moon Color: + + + + + + + + + + + + + + + Image: + + + + + + + + Glow Focus: + + + + + + Glow Size: + + + + + + Star Brightness: + + + + + + Scale: + + + + + + Azimuth: + + + + + width="55"> + Elevation: + + + + + + + + + + + + + + + + Image: + + + + + + + + Scale: + + + + + + Brightness: + + + + + + Azimuth: + + + + + Elevation: - - - - Star Brt: - - - - - - - - - - - - - - - - - - - - Image: - - - + - - - - - - - Bright: - - - - - - - Azimuth: - - - - - Elevation: - - - - - - - + diff --git a/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml b/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml index f08d4d1fd4..5559a22831 100644 --- a/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml +++ b/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml @@ -1,256 +1,181 @@ - - - - - - - - - - - - - - - Water Fog Color - - - - Normal Map - - - - - - - - - - - - - Density: - - - +name="panel_fs_settings_water" +top="0"> - - - Modifier: - - - - - - - Fres. Scale: - + + - - + - - - Fres. Offset: - + + Water Fog Color + - - - + + Normal Map + + + + + + Density Exponent: + + + + + + + Underwater Modifier: + + + + + + Fresel Scale: + + + + + + Fresnel Offset: + + + + + layout="topleft" top_pad="0" left="0" - width="250" - height="210" + width="280" + height="180" border_visible="true" - bevel_style="in" background_visible="true"> - - + + Large Wave Speed + + + Small Wave Speed + + - - Large Wave Speed - - - - Small Wave Speed - - - - - - - - Reflection Wavelet Scale - - - - - - - + + + Reflection Wavelet Scale + + + + @@ -426,124 +304,86 @@ tab_position="top"--> layout="topleft" top_pad="0" left="0" - width="250" - height="70" + width="280" + height="60" border_visible="true" - bevel_style="in" + background_visible="true"> - - - - - - - - Refract Above: - - - - + + Refract Above Scale (Above): + - - - Refract Below: - + - - - - - - - Blur Multiplier - - + + Refract Scale (Below): + - - + + + + Blur Multiplier: + + + - - - From 50e888790de0a8b8c98ed7e2d1f3ccec6a1ce8eb Mon Sep 17 00:00:00 2001 From: nobody Date: Sat, 15 Feb 2025 20:09:49 +0300 Subject: [PATCH 04/40] Fix: Corrected typo in 'Reflection Distance' tooltip in phototools.xml --- indra/newview/skins/default/xui/en/floater_phototools.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/default/xui/en/floater_phototools.xml b/indra/newview/skins/default/xui/en/floater_phototools.xml index 55a5a43d50..dfddd0608c 100644 --- a/indra/newview/skins/default/xui/en/floater_phototools.xml +++ b/indra/newview/skins/default/xui/en/floater_phototools.xml @@ -821,7 +821,7 @@ layout="topleft" left="5" top_pad="10" - tool_tip="Controls how far reflection probes "see" when updating, affecting reflection detail and performance. Higher values = further view distance, more detail, higher cost." + tool_tip="Controls the visibility range for reflections, affecting reflection detail and performance across reflection probes, mirrors, and screen space reflections. Higher values increase the distance at which reflections are visible, enhancing detail but increasing performance cost." width="70"> Reflect. Dist. From 58b606676a53285c405d8eea3ef8bd93679715b6 Mon Sep 17 00:00:00 2001 From: PanteraPolnocy Date: Sun, 16 Feb 2025 14:22:01 +0100 Subject: [PATCH 05/40] FIRE-35154, FIRE-35162: French (Laurent Bechir) and Italian (Spartaco Zemenis) translation updates --- .../ansastorm/xui/it/panel_main_inventory.xml | 4 +++- .../xui/fr/floater_inventory_view_finder.xml | 1 + .../default/xui/fr/panel_main_inventory.xml | 2 ++ indra/newview/skins/default/xui/fr/strings.xml | 2 ++ .../skins/default/xui/it/floater_fs_poser.xml | 9 +++++---- .../xui/it/floater_inventory_view_finder.xml | 8 +++++++- .../skins/default/xui/it/floater_snapshot.xml | 2 ++ .../default/xui/it/menu_fs_poser_poses_btn.xml | 11 ++++------- .../skins/default/xui/it/panel_flickr_photo.xml | 2 ++ .../default/xui/it/panel_main_inventory.xml | 7 ++++++- .../default/xui/it/panel_preferences_UI.xml | 16 ++++++++++++++-- .../default/xui/it/panel_preferences_colors.xml | 7 ++++--- indra/newview/skins/default/xui/it/strings.xml | 12 +++++++++--- .../vintage/xui/it/panel_main_inventory.xml | 4 +++- 14 files changed, 64 insertions(+), 23 deletions(-) diff --git a/indra/newview/skins/ansastorm/xui/it/panel_main_inventory.xml b/indra/newview/skins/ansastorm/xui/it/panel_main_inventory.xml index 1f9ce25adf..ed914da369 100644 --- a/indra/newview/skins/ansastorm/xui/it/panel_main_inventory.xml +++ b/indra/newview/skins/ansastorm/xui/it/panel_main_inventory.xml @@ -109,10 +109,12 @@ - + + + diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml index 481d3b065b..e2e3427f31 100644 --- a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml @@ -5,6 +5,7 @@ + diff --git a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml index 8f186f2c34..8f2b1212f8 100644 --- a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml @@ -34,7 +34,9 @@ + + diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index 5f05cca6c1..9b83381759 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -1860,6 +1860,7 @@ Si vous continuez à recevoir ce message, veuillez contacter l'assistance de Sec + @@ -1867,6 +1868,7 @@ Si vous continuez à recevoir ce message, veuillez contacter l'assistance de Sec + diff --git a/indra/newview/skins/default/xui/it/floater_fs_poser.xml b/indra/newview/skins/default/xui/it/floater_fs_poser.xml index 27d90fe643..6eeeb7e882 100644 --- a/indra/newview/skins/default/xui/it/floater_fs_poser.xml +++ b/indra/newview/skins/default/xui/it/floater_fs_poser.xml @@ -215,6 +215,7 @@ + @@ -227,7 +228,7 @@ - - - + - - - - - + @@ -813,15 +768,15 @@ right="-5" height="46" border_visible="true" - background_visible="true"> - - + + Reflect. Dist. @@ -864,8 +819,6 @@ parameter="RenderReflectionProbeDrawDistance"/> - - - + width="256"/> - + - + - + - + background_visible="true"> + - + - + - - + - - - - @@ -3033,7 +2837,7 @@ function="ResetControl" parameter="RenderAvatarLODFactor"/> - + - - - - - - - - - @@ -4012,7 +3641,7 @@ Interface Aids - + + background_visible="true"> bg_alpha_color="EmphasisColor" border_visible="true" background_visible="true"> - left="5" font="SansSerif" value="Atmospheric Colors"/> - width="105"> Ambient Color: - + name="ambient_light" top_delta="-5" width="166" /> - + width="105"> Blue Horizon: - + name="blue_horizon" top_delta="-5" width="166" /> - + width="105"> Blue Density: - + bg_alpha_color="EmphasisColor" border_visible="true" background_visible="true"> - + left="5" font="SansSerif" value="Atmosphere Settings"/> - left_pad="0" width="171" can_edit_text="true"/> - + width="100"> Haze Density: - + width="100"> Density Multiplier: - + name="density_multip" width="171" can_edit_text="true"/> - + width="100"> Distance Multiplier: - + left_pad="0" width="171" can_edit_text="true"/> - + width="100"> Maximum Altitide: - + name="max_alt" width="171" can_edit_text="true"/> - + width="100"> Brightness: - + left_pad="0" width="171" can_edit_text="true"/> - + word_wrap="true"> Reflection Probe Ambiance (HDR): - + left_pad="0" width="171" can_edit_text="true"/> - - border_visible="true" border_thickness="1" background_visible="true"> - + font="SansSerif" value="Rainbow and Halo Settings" width="250"/> - - height="63" border_visible="true" background_visible="true"> - + width="100"> Moisture Level: - + name="moisture_level" width="171" can_edit_text="true"/> - + width="100"> Droplet Radius: - + name="droplet_radius" width="171" can_edit_text="true"/> - + width="100"> Ice Level: - + border_visible="true" border_thickness="1" background_visible="true"> - left="5" font="SansSerif" value="Cloud Settings"/> - - + height="35" border_visible="true" background_visible="true"> - left_pad="0" name="cloud_color" top_delta="-5" - width="166" /> - + width="166" /> height="63" border_visible="true" background_visible="true"> - - width="100"> Cloud Cover: - + left_pad="0" width="171" can_edit_text="true"/> - + left_pad="0" width="171" can_edit_text="true"/> - height="15" layout="topleft" left="5" - top_pad="0" + top_pad="0" width="15"> X: @@ -203,7 +196,7 @@ top="0"> name="cloud_density_x" width="255" can_edit_text="true"/> - + width="15"> D: - + name="cloud_density_d" width="255" can_edit_text="true"/> - height="77" border_visible="true" background_visible="true"> - left="3" name="cloud_detail_label" top_pad="5" - tool_tip="Cloud Density - Use the X and Y sliders to change the horizontal position of all clouds in the sky. The D slider affects the overall density of the individual clouds; at low settings you will see thin, wispy clouds, and at higher settings you will see thicker, more solid clouds." width="240"> Cloud Detail: @@ -289,7 +279,7 @@ top="0"> width="15"> X: - + name="cloud_detail_x" width="255" can_edit_text="true"/> - + name="cloud_detail_y" width="255" can_edit_text="true"/> - + max_val="1" name="cloud_detail_d" width="255" - can_edit_text="true"/> - + can_edit_text="true"/> - height="103" border_visible="true" background_visible="true"> - name="cloud_map" top_delta="0" width="80"/> - - - - - - - - + diff --git a/indra/newview/skins/default/xui/en/panel_fs_settings_sky_sunmoon.xml b/indra/newview/skins/default/xui/en/panel_fs_settings_sky_sunmoon.xml index ce16788c71..2b2eb4d77c 100644 --- a/indra/newview/skins/default/xui/en/panel_fs_settings_sky_sunmoon.xml +++ b/indra/newview/skins/default/xui/en/panel_fs_settings_sky_sunmoon.xml @@ -9,7 +9,6 @@ left="0" help_topic="fs_skies" name="panel_fs_settings_sky_hbodies" top="0"> - border_visible="true" border_thickness="1" background_visible="true"> - left="5" font="SansSerif" value="Sun & Moon Color"/> - - - + + height="35" border_visible="true" background_visible="true"> - - - Sun & Moon Color: - - - + + Sun & Moon Color: + + border_visible="true" border_thickness="1" background_visible="true"> - left="5" font="SansSerif" value="Sun & Stars Settings"/> - - + left="5" name="sun_image" top_pad="0" - width="60"/> - + top_delta="10" width="85"> Glow Focus: - + max_val="50000" name="star_brightness" width="120" - can_edit_text="true"/> - + can_edit_text="true"/> + left="5" width="55"> Scale: - + left_pad="0" width="215" can_edit_text="true"/> - border_visible="true" border_thickness="1" background_visible="true"> - left="5" font="SansSerif" value="Moon Settings"/> - - + width="280" height="125" border_visible="true" - background_visible="true"> - + background_visible="true"> + height="16" label="Show Beacon" layout="topleft" - name="moonbeacon" + name="moonbeacon" top_delta="0" - left_pad="0"/> + left_pad="0"/> left="5" name="moon_image" top_pad="0" - width="60"/> + width="60"/> name="moon_scale" width="145" can_edit_text="true"/> - + width="60"> Brightness: - + name="moon_brightness" left_pad="0" width="145" - can_edit_text="true"/> - + can_edit_text="true"/> + left="5" width="55"> Azimuth: - - + + name="moon_azimuth" width="215" can_edit_text="true"/> - + width="55"> Elevation: - + left_pad="0" width="215" can_edit_text="true"/> - - + diff --git a/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml b/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml index 5559a22831..75809cc7f0 100644 --- a/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml +++ b/indra/newview/skins/default/xui/en/panel_fs_settings_water.xml @@ -7,8 +7,7 @@ label="Water" layout="topleft" left="0" name="panel_fs_settings_water" -top="0"> - +top="0"> width="100"> Normal Map - - - width="280" height="80" border_visible="true" - background_visible="true"> width="155" can_edit_text="true"/> - Fresnel Offset: - width="280" height="180" border_visible="true" - background_visible="true"> + background_visible="true"> top_pad="5" label="Z:" width="270" - can_edit_text="true"/> - + can_edit_text="true"/> width="280" height="60" border_visible="true" - background_visible="true"> - left_pad="0" width="115" can_edit_text="true"/> - - - + diff --git a/indra/newview/skins/default/xui/en/panel_profile_firstlife.xml b/indra/newview/skins/default/xui/en/panel_profile_firstlife.xml index 0ddc9668d9..a2c947fa5d 100644 --- a/indra/newview/skins/default/xui/en/panel_profile_firstlife.xml +++ b/indra/newview/skins/default/xui/en/panel_profile_firstlife.xml @@ -43,7 +43,6 @@ follows="top|left" layout="topleft" visible="false"/> -