diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 7b6187f3bb..44f32c1c5d 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -12,14 +12,10 @@ jobs:
strategy:
matrix:
runner: [windows-large, macos-12-xl]
- configuration: [Release, ReleaseOS]
- python-version: ["3.11"]
+ configuration: [Release]
include:
- runner: macos-12-xl
developer_dir: "/Applications/Xcode_14.0.1.app/Contents/Developer"
- exclude:
- - runner: macos-12-xl
- configuration: ReleaseOS
runs-on: ${{ matrix.runner }}
outputs:
viewer_channel: ${{ steps.build.outputs.viewer_channel }}
@@ -67,7 +63,7 @@ jobs:
- name: Setup python
uses: actions/setup-python@v5
with:
- python-version: ${{ matrix.python-version }}
+ python-version: "3.11"
- name: Checkout build variables
uses: actions/checkout@v4
@@ -101,7 +97,7 @@ jobs:
- name: Determine source branch
id: which-branch
- uses: secondlife/viewer-build-util/which-branch@v1
+ uses: secondlife/viewer-build-util/which-branch@v2
with:
token: ${{ github.token }}
@@ -271,7 +267,7 @@ jobs:
steps:
- name: Sign and package Windows viewer
if: env.AZURE_KEY_VAULT_URI && env.AZURE_CERT_NAME && env.AZURE_CLIENT_ID && env.AZURE_CLIENT_SECRET && env.AZURE_TENANT_ID
- uses: secondlife/viewer-build-util/sign-pkg-windows@v1
+ uses: secondlife/viewer-build-util/sign-pkg-windows@v2
with:
vault_uri: "${{ env.AZURE_KEY_VAULT_URI }}"
cert_name: "${{ env.AZURE_CERT_NAME }}"
@@ -310,7 +306,7 @@ jobs:
- name: Sign and package Mac viewer
if: env.SIGNING_CERT_MACOS && env.SIGNING_CERT_MACOS_IDENTITY && env.SIGNING_CERT_MACOS_PASSWORD && steps.note-creds.outputs.note_user && steps.note-creds.outputs.note_pass && steps.note-creds.outputs.note_team
- uses: secondlife/viewer-build-util/sign-pkg-mac@v1
+ uses: secondlife/viewer-build-util/sign-pkg-mac@v2
with:
channel: ${{ needs.build.outputs.viewer_channel }}
imagename: ${{ needs.build.outputs.imagename }}
@@ -330,7 +326,7 @@ jobs:
steps:
- name: Post Windows symbols
if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
- uses: secondlife/viewer-build-util/post-bugsplat-windows@v1
+ uses: secondlife/viewer-build-util/post-bugsplat-windows@v2
with:
username: ${{ env.BUGSPLAT_USER }}
password: ${{ env.BUGSPLAT_PASS }}
@@ -347,7 +343,7 @@ jobs:
steps:
- name: Post Mac symbols
if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
- uses: secondlife/viewer-build-util/post-bugsplat-mac@v1
+ uses: secondlife/viewer-build-util/post-bugsplat-mac@v2
with:
username: ${{ env.BUGSPLAT_USER }}
password: ${{ env.BUGSPLAT_PASS }}
@@ -360,31 +356,20 @@ jobs:
runs-on: ubuntu-latest
if: github.ref_type == 'tag' && startsWith(github.ref_name, 'Second_Life_')
steps:
- - uses: actions/download-artifact@v3
+ - uses: actions/download-artifact@v4
with:
- name: Windows-installer
+ pattern: "*-installer"
- - uses: actions/download-artifact@v3
+ - uses: actions/download-artifact@v4
with:
- name: macOS-installer
-
- - uses: actions/download-artifact@v3
- with:
- name: Windows-metadata
-
- - name: Rename windows metadata
+ pattern: "*-metadata"
+
+ - name: Rename metadata
run: |
- mv autobuild-package.xml Windows-autobuild-package.xml
- mv newview/viewer_version.txt Windows-viewer_version.txt
-
- - uses: actions/download-artifact@v3
- with:
- name: macOS-metadata
-
- - name: Rename macOS metadata
- run: |
- mv autobuild-package.xml macOS-autobuild-package.xml
- mv newview/viewer_version.txt macOS-viewer_version.txt
+ cp Windows-metadata/autobuild-package.xml Windows-autobuild-package.xml
+ cp Windows-metadata/newview/viewer_version.txt Windows-viewer_version.txt
+ cp macOS-metadata/autobuild-package.xml macOS-autobuild-package.xml
+ cp macOS-metadata/newview/viewer_version.txt macOS-viewer_version.txt
# forked from softprops/action-gh-release
- name: Create GitHub release
@@ -407,8 +392,8 @@ jobs:
append_body: true
fail_on_unmatched_files: true
files: |
- *.dmg
- *.exe
+ macOS-installer/*.dmg
+ Windows-installer/*.exe
*-autobuild-package.xml
*-viewer_version.txt
diff --git a/.github/workflows/cla.yaml b/.github/workflows/cla.yaml
index b4b2565889..3f4bf21864 100644
--- a/.github/workflows/cla.yaml
+++ b/.github/workflows/cla.yaml
@@ -19,7 +19,7 @@ jobs:
PERSONAL_ACCESS_TOKEN: ${{ secrets.SHARED_CLA_TOKEN }}
with:
branch: main
- path-to-document: https://github.com/secondlife/cla/blob/master/CLA.md
+ path-to-document: https://github.com/secondlife/cla/blob/main/CLA.md
path-to-signatures: signatures.json
remote-organization-name: secondlife
remote-repository-name: cla-signatures
diff --git a/BuildParams b/BuildParams
deleted file mode 100644
index dda25e3e63..0000000000
--- a/BuildParams
+++ /dev/null
@@ -1,73 +0,0 @@
-# BuildParams
-#
-# Please refer to:
-# https://wiki.secondlife.com/wiki/Automated_Build_System
-
-# Variants (NOTE: 'Release' must be last for uploads to work correctly)
-variants = "RelWithDebInfo Release"
-
-# Use Public Upload Locations
-public_build = true
-build_docs = true
-
-# enable Doxygen building on Linux for TeamCity (it can be done manually on any platform)
-build_Linux_Doxygen = true
-
-# Need viewer-build-variables as well as other shared repositories
-buildscripts_shared_more_NAMEs="build_secrets build_variables git_hooks"
-
-# Python 3 / SL-15742
-BUILDSCRIPTS_PY3 = "true"
-
-################################################################
-#### Examples of how to set the viewer_channel ####
-#
-# To build a Release or Release candidate in build bingo:
-# bingo.viewer_channel = "Second Life Release"
-#
-# To build a Beta for the 'Bingo' project in build bingo:
-# bingo.viewer_channel = "Second Life Beta Bingo"
-#
-# To build a Project viewer for the 'Bingo' project in build bingo:
-# bingo.viewer_channel = "Second Life Project Bingo"
-#
-# If left unset, viewer_channel defaults to 'Second Life Test',
-# which is appropriate for individual developer builds.
-#
-# All Linden Lab builds (and only Linden Lab builds)
-# should use a viewer_channel that begins with "Second Life"
-################################################################
-viewer_channel = "Second Life Test"
-
-
-################################################################
-# Special packaging parameters.
-# These parameters can be used to create additional packages
-# which identify themselves in a distinct way with either
-# a sourceid (sent to web services) or a channel name (sent to login)
-# the default sourceid should always be a null string:
-sourceid = ""
-# the additional_packages variable is a blank separated list of package prefixes:
-# additional_packages = ""
-# to set the special values for a package, create variables using each prefix:
-# additional_packages = "Foo Bar"
-# Foo_sourceid = "bingo"
-# Foo_viewer_channel_suffix = "Foo"
-# Bar_sourceid = "bongo"
-# Bar_viewer_channel_suffix = "Bar"
-# the viewer_channel_suffix is prefixed by a blank and then appended to the viewer_channel
-# for the package in a setting that overrides the compiled-in value
-################################################################
-additional_packages = "EDU"
-Linux.additional_packages = ""
-
-# The EDU package allows us to create a separate release channel whose expirations
-# are synchronized as much as possible with the academic year
-EDU_sourceid = ""
-EDU_viewer_channel_suffix = "edu"
-
-# Notifications - to configure email notices use the TeamCity parameter
-# setting screen for your project or build configuration to set the
-# environment variable 'email' to a space-separated list of email addresses
-email=""
-
diff --git a/build.sh b/build.sh
index c55179f423..05f6e038e3 100755
--- a/build.sh
+++ b/build.sh
@@ -6,9 +6,6 @@
# it relies on the environment that sets up, functions it provides, and
# the build result post-processing it does.
#
-# The shared buildscript build.sh invokes this because it is named 'build.sh',
-# which is the default custom build script name in buildscripts/hg/BuildParams
-#
# PLEASE NOTE:
#
# * This script is interpreted on three platforms, including windows and cygwin
@@ -85,7 +82,7 @@ installer_Linux()
{
local package_name="$1"
local package_dir="$(build_dir_Linux)/newview/"
- local pattern=".*$(viewer_channel_suffix ${package_name})_[0-9]+_[0-9]+_[0-9]+_[0-9]+_i686\\.tar\\.bz2\$"
+ local pattern=".*$(viewer_channel_suffix ${package_name})_[0-9]+_[0-9]+_[0-9]+_[0-9]+_i686\\.tar\\.xz\$"
# since the additional packages are built after the base package,
# sorting oldest first ensures that the unqualified package is returned
# even if someone makes a qualified name that duplicates the last word of the base name
@@ -173,7 +170,7 @@ pre_build()
# This name is consumed by indra/newview/CMakeLists.txt. Make it
# absolute because we've had troubles with relative pathnames.
abs_build_dir="$(cd "$build_dir"; pwd)"
- VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/newview/$variant/secondlife-symbols-$symplat-${AUTOBUILD_ADDRSIZE}.tar.bz2")"
+ VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/newview/$variant/secondlife-symbols-$symplat-${AUTOBUILD_ADDRSIZE}.tar.xz")"
fi
# honor autobuild_configure_parameters same as sling-buildscripts
@@ -417,10 +414,10 @@ do
fi
if [ -d "$build_dir/doxygen/html" ]
then
- tar -c -f "$build_dir/viewer-doxygen.tar.bz2" --strip-components 3 "$build_dir/doxygen/html"
- python_cmd "$helpers/codeticket.py" addoutput "Doxygen Tarball" "$build_dir/viewer-doxygen.tar.bz2" \
+ tar -cJf "$build_dir/viewer-doxygen.tar.xz" --strip-components 3 "$build_dir/doxygen/html"
+ python_cmd "$helpers/codeticket.py" addoutput "Doxygen Tarball" "$build_dir/viewer-doxygen.tar.xz" \
|| fatal "Upload of doxygen tarball failed"
- metadata+=("$build_dir/viewer-doxygen.tar.bz2")
+ metadata+=("$build_dir/viewer-doxygen.tar.xz")
fi
;;
*)
diff --git a/indra/fix-incredibuild.py b/indra/fix-incredibuild.py
deleted file mode 100755
index 8da2a168a1..0000000000
--- a/indra/fix-incredibuild.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python3
-##
-## $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$
-
-import sys
-import os
-import glob
-
-def delete_file_types(path, filetypes):
- if os.path.exists(path):
- print('Cleaning: ' + path)
- orig_dir = os.getcwd();
- os.chdir(path)
- filelist = []
- for type in filetypes:
- filelist.extend(glob.glob(type))
- for file in filelist:
- os.remove(file)
- os.chdir(orig_dir)
-
-def main():
- build_types = ['*.exp','*.exe','*.pdb','*.idb',
- '*.ilk','*.lib','*.obj','*.ib_pdb_index']
- pch_types = ['*.pch']
- delete_file_types("build-vc80/newview/Release", build_types)
- delete_file_types("build-vc80/newview/firestorm-bin.dir/Release/",
- pch_types)
- delete_file_types("build-vc80/newview/RelWithDebInfo", build_types)
- delete_file_types("build-vc80/newview/firestorm-bin.dir/RelWithDebInfo/",
- pch_types)
- delete_file_types("build-vc80/newview/Debug", build_types)
- delete_file_types("build-vc80/newview/firestorm-bin.dir/Debug/",
- pch_types)
-
-
- delete_file_types("build-vc80/test/RelWithDebInfo", build_types)
- delete_file_types("build-vc80/test/test.dir/RelWithDebInfo/",
- pch_types)
-
-
-if __name__ == "__main__":
- main()
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index b3b28045b8..c0e38766e1 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -2262,7 +2262,7 @@ if (WINDOWS)
if (PACKAGE)
add_custom_command(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.xz
COMMAND ${PYTHON_EXECUTABLE}
ARGS
${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py
@@ -2307,7 +2307,7 @@ if (WINDOWS)
)
# temporarily disable packaging of event_host until hg subrepos get
# sorted out on the parabuild cluster...
- #${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2)
+ #${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.xz)
endif (PACKAGE)
elseif (DARWIN)
@@ -2460,7 +2460,7 @@ if (LINUX)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer10 media_plugin_cef linux-crash-logger)
add_custom_command(
- OUTPUT ${product}.tar.bz2
+ OUTPUT ${product}.tar.xz
COMMAND ${PYTHON_EXECUTABLE}
ARGS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
@@ -2513,7 +2513,7 @@ if (LINUX)
add_custom_target(copy_l_viewer_manifest ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.copy_touched)
if (PACKAGE)
- add_custom_target(llpackage ALL DEPENDS ${product}.tar.bz2)
+ add_custom_target(llpackage ALL DEPENDS ${product}.tar.xz)
# Make sure we don't run two instances of viewer_manifest.py at the same time.
add_dependencies(llpackage copy_l_viewer_manifest)
check_message_template(llpackage)
@@ -2662,7 +2662,7 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE
# OUTPUT_VARIABLE PARENT_DIRECTORY_CYGWIN
# OUTPUT_STRIP_TRAILING_WHITESPACE)
# add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}"
- # # Use of 'tar ...j' here assumes VIEWER_SYMBOL_FILE endswith .tar.bz2;
+ # # Use of 'tar ...j' here assumes VIEWER_SYMBOL_FILE endswith .tar.xz;
# # testing a string suffix is painful enough in CMake language that
# # we'll continue assuming it until forced to generalize.
# COMMAND "tar"
diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt
index 14627a7c8c..2380dcfd47 100644
--- a/indra/newview/VIEWER_VERSION.txt
+++ b/indra/newview/VIEWER_VERSION.txt
@@ -1 +1 @@
-7.1.6
+7.1.7
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 243b17cf73..ed9a8240e4 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -2023,7 +2023,7 @@
value_min="-1"
value_max="1">
-
+
-
-
@@ -2043,7 +2044,7 @@
name="mFaceEyeAltRight"
scale="0 0 0"
offset="-.005 0 0" />
-
+
-
@@ -2063,17 +2064,17 @@
name="mFaceEyeLidUpperLeft"
scale="0 0.3 0.7"
offset=" 0 0 0" />
-
+
-
+
-
+
diff --git a/indra/newview/llscrollingpanelparam.cpp b/indra/newview/llscrollingpanelparam.cpp
index 8087614d34..87c1330f8d 100644
--- a/indra/newview/llscrollingpanelparam.cpp
+++ b/indra/newview/llscrollingpanelparam.cpp
@@ -259,17 +259,21 @@ void LLScrollingPanelParam::onHintHeldDown( LLVisualParamHint* hint )
// Make sure we're not taking the slider out of bounds
// (this is where some simple UI limits are stored)
- F32 new_percent = weightToSlider(new_weight);
- if (mSlider->getMinValue() < new_percent
- && new_percent < mSlider->getMaxValue())
+ F32 new_percent = weightToPercent(new_weight);
+ LLSliderCtrl* slider = getChild("param slider");
+ if (slider)
{
- // [Legacy Bake]
- //mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight);
- mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight, FALSE);
- mWearable->writeToAvatar(gAgentAvatarp);
- gAgentAvatarp->updateVisualParams();
+ if (slider->getMinValue() < new_percent
+ && new_percent < slider->getMaxValue())
+ {
+ // [Legacy Bake]
+ //mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight);
+ mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight, FALSE);
+ mWearable->writeToAvatar(gAgentAvatarp);
+ gAgentAvatarp->updateVisualParams();
- mSlider->setValue( weightToSlider( new_weight ) );
+ slider->setValue( weightToPercent( new_weight ) );
+ }
}
}
}
@@ -290,15 +294,19 @@ void LLScrollingPanelParam::onHintMinMouseUp( void* userdata )
F32 range = self->mHintMax->getVisualParamWeight() - self->mHintMin->getVisualParamWeight();
// step a fraction in the negative directiona
F32 new_weight = current_weight - (range / 10.f);
- F32 new_percent = self->weightToSlider(new_weight);
- if (self->mSlider->getMinValue() < new_percent
- && new_percent < self->mSlider->getMaxValue())
+ F32 new_percent = self->weightToPercent(new_weight);
+ LLSliderCtrl* slider = self->getChild("param slider");
+ if (slider)
{
- // [Legacy Bake]
- //self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight);
- self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
- self->mWearable->writeToAvatar(gAgentAvatarp);
- self->mSlider->setValue( self->weightToSlider( new_weight ) );
+ if (slider->getMinValue() < new_percent
+ && new_percent < slider->getMaxValue())
+ {
+ // [Legacy Bake]
+ //self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight);
+ self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
+ self->mWearable->writeToAvatar(gAgentAvatarp);
+ slider->setValue( self->weightToPercent( new_weight ) );
+ }
}
}
@@ -322,18 +330,35 @@ void LLScrollingPanelParam::onHintMaxMouseUp( void* userdata )
F32 range = self->mHintMax->getVisualParamWeight() - self->mHintMin->getVisualParamWeight();
// step a fraction in the negative direction
F32 new_weight = current_weight + (range / 10.f);
- F32 new_percent = self->weightToSlider(new_weight);
- if (self->mSlider->getMinValue() < new_percent
- && new_percent < self->mSlider->getMaxValue())
+ F32 new_percent = self->weightToPercent(new_weight);
+ LLSliderCtrl* slider = self->getChild("param slider");
+ if (slider)
{
- // [Legacy Bake]
- //self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight);
- self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
- self->mWearable->writeToAvatar(gAgentAvatarp);
- self->mSlider->setValue( self->weightToSlider( new_weight ) );
+ if (slider->getMinValue() < new_percent
+ && new_percent < slider->getMaxValue())
+ {
+ // [Legacy Bake]
+ //self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight);
+ self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
+ self->mWearable->writeToAvatar(gAgentAvatarp);
+ slider->setValue( self->weightToPercent( new_weight ) );
+ }
}
}
}
LLVisualParamHint::requestHintUpdates( self->mHintMin, self->mHintMax );
}
+
+
+F32 LLScrollingPanelParam::weightToPercent( F32 weight )
+{
+ LLViewerVisualParam* param = mParam;
+ return (weight - param->getMinWeight()) / (param->getMaxWeight() - param->getMinWeight()) * 100.f;
+}
+
+F32 LLScrollingPanelParam::percentToWeight( F32 percent )
+{
+ LLViewerVisualParam* param = mParam;
+ return percent / 100.f * (param->getMaxWeight() - param->getMinWeight()) + param->getMinWeight();
+}
diff --git a/indra/newview/llscrollingpanelparam.h b/indra/newview/llscrollingpanelparam.h
index dc344486fc..c7a47d5c7a 100644
--- a/indra/newview/llscrollingpanelparam.h
+++ b/indra/newview/llscrollingpanelparam.h
@@ -61,6 +61,9 @@ public:
void onHintMouseDown( LLVisualParamHint* hint );
void onHintHeldDown( LLVisualParamHint* hint );
+ F32 weightToPercent( F32 weight );
+ F32 percentToWeight( F32 percent );
+
public:
// Constants for LLPanelVisualParam
const static F32 PARAM_STEP_TIME_THRESHOLD;
diff --git a/indra/newview/llscrollingpanelparambase.cpp b/indra/newview/llscrollingpanelparambase.cpp
index 3c066cb590..97ef946b56 100644
--- a/indra/newview/llscrollingpanelparambase.cpp
+++ b/indra/newview/llscrollingpanelparambase.cpp
@@ -43,7 +43,6 @@ LLScrollingPanelParamBase::LLScrollingPanelParamBase( const LLPanel::Params& pan
LLViewerJointMesh* mesh, LLViewerVisualParam* param, BOOL allow_modify, LLWearable* wearable, LLJoint* jointp, BOOL use_hints)
: LLScrollingPanel( panel_params ),
mParam(param),
- mSlider(nullptr),
mAllowModify(allow_modify),
mWearable(wearable)
{
@@ -51,15 +50,13 @@ LLScrollingPanelParamBase::LLScrollingPanelParamBase( const LLPanel::Params& pan
buildFromFile( "panel_scrolling_param.xml");
else
buildFromFile( "panel_scrolling_param_base.xml");
-
- mSlider = getChild("param slider");
- mSlider->setMaxValue(100.f * (mParam->getMaxWeight() - mParam->getMinWeight()));
- mSlider->setValue(weightToSlider(param->getWeight()));
+
+ getChild("param slider")->setValue(weightToPercent(param->getWeight()));
std::string display_name = LLTrans::getString(param->getDisplayName());
- mSlider->setLabelArg("[DESC]", display_name);
- mSlider->setEnabled(mAllowModify);
- mSlider->setCommitCallback(boost::bind(LLScrollingPanelParamBase::onSliderMoved, mSlider, this));
+ getChild("param slider")->setLabelArg("[DESC]", display_name);
+ getChildView("param slider")->setEnabled(mAllowModify);
+ childSetCommitCallback("param slider", LLScrollingPanelParamBase::onSliderMoved, this);
setVisible(FALSE);
setBorderVisible( FALSE );
@@ -80,9 +77,9 @@ void LLScrollingPanelParamBase::updatePanel(BOOL allow_modify)
}
F32 current_weight = mWearable->getVisualParamWeight( param->getID() );
- mSlider->setValue(weightToSlider( current_weight ) );
+ getChild("param slider")->setValue(weightToPercent( current_weight ) );
mAllowModify = allow_modify;
- mSlider->setEnabled(mAllowModify);
+ getChildView("param slider")->setEnabled(mAllowModify);
}
// static
@@ -93,7 +90,7 @@ void LLScrollingPanelParamBase::onSliderMoved(LLUICtrl* ctrl, void* userdata)
LLViewerVisualParam* param = self->mParam;
F32 current_weight = self->mWearable->getVisualParamWeight( param->getID() );
- F32 new_weight = self->sliderToWeight( (F32)slider->getValue().asReal() );
+ F32 new_weight = self->percentToWeight( (F32)slider->getValue().asReal() );
if (current_weight != new_weight )
{
// [Legacy Bake]
@@ -104,12 +101,14 @@ void LLScrollingPanelParamBase::onSliderMoved(LLUICtrl* ctrl, void* userdata)
}
}
-F32 LLScrollingPanelParamBase::weightToSlider(F32 weight)
+F32 LLScrollingPanelParamBase::weightToPercent( F32 weight )
{
- return (weight - mParam->getMinWeight()) * 100.f;
+ LLViewerVisualParam* param = mParam;
+ return (weight - param->getMinWeight()) / (param->getMaxWeight() - param->getMinWeight()) * 100.f;
}
-F32 LLScrollingPanelParamBase::sliderToWeight(F32 slider)
+F32 LLScrollingPanelParamBase::percentToWeight( F32 percent )
{
- return slider / 100.f + mParam->getMinWeight();
+ LLViewerVisualParam* param = mParam;
+ return percent / 100.f * (param->getMaxWeight() - param->getMinWeight()) + param->getMinWeight();
}
diff --git a/indra/newview/llscrollingpanelparambase.h b/indra/newview/llscrollingpanelparambase.h
index e7f88a21bd..9538826251 100644
--- a/indra/newview/llscrollingpanelparambase.h
+++ b/indra/newview/llscrollingpanelparambase.h
@@ -36,7 +36,6 @@ class LLViewerVisualParam;
class LLWearable;
class LLVisualParamHint;
class LLViewerVisualParam;
-class LLSliderCtrl;
class LLJoint;
class LLScrollingPanelParamBase : public LLScrollingPanel
@@ -50,13 +49,11 @@ public:
static void onSliderMoved(LLUICtrl* ctrl, void* userdata);
- F32 weightToSlider(F32 weight);
- F32 sliderToWeight(F32 slider);
+ F32 weightToPercent( F32 weight );
+ F32 percentToWeight( F32 percent );
public:
LLViewerVisualParam* mParam;
- LLSliderCtrl* mSlider;
-
protected:
BOOL mAllowModify;
LLWearable *mWearable;
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 824754c410..7c383a0d66 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -629,7 +629,7 @@ class Windows_x86_64_Manifest(ViewerManifest):
# 'secondlife-bin.*',
# '*_Setup.exe',
# '*.bat',
- # '*.tar.bz2')))
+ # '*.tar.xz')))
#
# Remove VMP