diff options
| author | Rider Linden <rider@lindenlab.com> | 2018-08-21 15:59:18 -0700 | 
|---|---|---|
| committer | Rider Linden <rider@lindenlab.com> | 2018-08-21 15:59:18 -0700 | 
| commit | 4859db1adabcf84b959ff0603f1bb8401232164c (patch) | |
| tree | 94772976ee3b8bae51eeb6510711da9e74b2a013 /indra | |
| parent | 477c66c890d5d87318705415315aaf9464bec2ff (diff) | |
MAINT-9026: Adding scale for sun and moon.  Also don't allow the user to directly set the radio buttons for inventory and custom.
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llinventory/llsettingsbase.cpp | 14 | ||||
| -rw-r--r-- | indra/llinventory/llsettingsbase.h | 1 | ||||
| -rw-r--r-- | indra/llinventory/llsettingssky.cpp | 29 | ||||
| -rw-r--r-- | indra/llinventory/llsettingssky.h | 8 | ||||
| -rw-r--r-- | indra/newview/llpaneleditsky.cpp | 19 | ||||
| -rw-r--r-- | indra/newview/llpaneleditsky.h | 2 | ||||
| -rw-r--r-- | indra/newview/llpanelenvironment.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml | 130 | 
8 files changed, 160 insertions, 47 deletions
diff --git a/indra/llinventory/llsettingsbase.cpp b/indra/llinventory/llsettingsbase.cpp index e00dd2199c..938f614fc9 100644 --- a/indra/llinventory/llsettingsbase.cpp +++ b/indra/llinventory/llsettingsbase.cpp @@ -306,7 +306,7 @@ bool LLSettingsBase::validate()  LLSD LLSettingsBase::settingValidation(LLSD &settings, validation_list_t &validations)  { -    static Validator  validateName(SETTING_NAME, false, LLSD::TypeString); +    static Validator  validateName(SETTING_NAME, false, LLSD::TypeString, boost::bind(&Validator::verifyStringLength, _1, 32));      static Validator  validateId(SETTING_ID, false, LLSD::TypeUUID);      static Validator  validateHash(SETTING_HASH, false, LLSD::TypeInteger);      static Validator  validateType(SETTING_TYPE, false, LLSD::TypeString); @@ -564,6 +564,18 @@ bool LLSettingsBase::Validator::verifyIntegerRange(LLSD &value, LLSD range)      return true;  } +bool LLSettingsBase::Validator::verifyStringLength(LLSD &value, S32 length) +{ +    std::string sval = value.asString(); + +    if (!sval.empty()) +    { +        sval = sval.substr(0, length); +        value = LLSD::String(sval); +    } +    return true; +} +  //=========================================================================  void LLSettingsBlender::update(const LLSettingsBase::BlendFactor& blendf)  { diff --git a/indra/llinventory/llsettingsbase.h b/indra/llinventory/llsettingsbase.h index 9757092794..7884240ae3 100644 --- a/indra/llinventory/llsettingsbase.h +++ b/indra/llinventory/llsettingsbase.h @@ -230,6 +230,7 @@ public:          static bool verifyQuaternionNormal(LLSD &value);          static bool verifyFloatRange(LLSD &value, LLSD range);          static bool verifyIntegerRange(LLSD &value, LLSD range); +        static bool verifyStringLength(LLSD &value, S32 length);      private:          std::string mName; diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp index 072dff4ce4..c0402f1fe4 100644 --- a/indra/llinventory/llsettingssky.cpp +++ b/indra/llinventory/llsettingssky.cpp @@ -93,10 +93,12 @@ const std::string LLSettingsSky::SETTING_GLOW("glow");  const std::string LLSettingsSky::SETTING_LIGHT_NORMAL("lightnorm");  const std::string LLSettingsSky::SETTING_MAX_Y("max_y");  const std::string LLSettingsSky::SETTING_MOON_ROTATION("moon_rotation"); +const std::string LLSettingsSky::SETTING_MOON_SCALE("moon_scale");  const std::string LLSettingsSky::SETTING_MOON_TEXTUREID("moon_id");  const std::string LLSettingsSky::SETTING_STAR_BRIGHTNESS("star_brightness");  const std::string LLSettingsSky::SETTING_SUNLIGHT_COLOR("sunlight_color");  const std::string LLSettingsSky::SETTING_SUN_ROTATION("sun_rotation"); +const std::string LLSettingsSky::SETTING_SUN_SCALE("sun_scale");  const std::string LLSettingsSky::SETTING_SUN_TEXTUREID("sun_id");  const std::string LLSettingsSky::SETTING_LEGACY_EAST_ANGLE("east_angle"); @@ -524,6 +526,8 @@ LLSettingsSky::validation_list_t LLSettingsSky::validationList()          validation.push_back(Validator(SETTING_MAX_Y,               true,  LLSD::TypeReal,                boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(4000.0f)))));          validation.push_back(Validator(SETTING_MOON_ROTATION,       true,  LLSD::TypeArray, &Validator::verifyQuaternionNormal)); +        validation.push_back(Validator(SETTING_MOON_SCALE,          false, LLSD::TypeReal, +                boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.25f)(20.0f))), LLSD::Real(1.0)));          validation.push_back(Validator(SETTING_MOON_TEXTUREID,      false, LLSD::TypeUUID));          validation.push_back(Validator(SETTING_STAR_BRIGHTNESS,     true,  LLSD::TypeReal,               boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(2.0f))))); @@ -532,7 +536,9 @@ LLSettingsSky::validation_list_t LLSettingsSky::validationList()                  LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")),                  LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*")))));          validation.push_back(Validator(SETTING_SUN_ROTATION,        true,  LLSD::TypeArray, &Validator::verifyQuaternionNormal)); -        validation.push_back(Validator(SETTING_SUN_TEXTUREID,      false, LLSD::TypeUUID)); +        validation.push_back(Validator(SETTING_SUN_SCALE,           false, LLSD::TypeReal, +            boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.25f)(20.0f))), LLSD::Real(1.0))); +        validation.push_back(Validator(SETTING_SUN_TEXTUREID, false, LLSD::TypeUUID));          validation.push_back(Validator(SETTING_PLANET_RADIUS,       true,  LLSD::TypeReal,                boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(1000.0f)(32768.0f))))); @@ -1310,6 +1316,16 @@ void LLSettingsSky::setMoonRotation(const LLQuaternion &val)      setValue(SETTING_MOON_ROTATION, val);  } +F32 LLSettingsSky::getMoonScale() const +{ +    return mSettings[SETTING_MOON_SCALE].asReal(); +} + +void LLSettingsSky::setMoonScale(F32 val) +{ +    setValue(SETTING_MOON_SCALE, val); +} +  LLUUID LLSettingsSky::getMoonTextureId() const  {      return mSettings[SETTING_MOON_TEXTUREID].asUUID(); @@ -1350,6 +1366,17 @@ void LLSettingsSky::setSunRotation(const LLQuaternion &val)      setValue(SETTING_SUN_ROTATION, val);  } + +F32 LLSettingsSky::getSunScale() const +{ +    return mSettings[SETTING_SUN_SCALE].asReal(); +} + +void LLSettingsSky::setSunScale(F32 val) +{ +    setValue(SETTING_SUN_SCALE, val); +} +  LLUUID LLSettingsSky::getSunTextureId() const  {      return mSettings[SETTING_SUN_TEXTUREID].asUUID(); diff --git a/indra/llinventory/llsettingssky.h b/indra/llinventory/llsettingssky.h index e0ad480c0a..20b8d01879 100644 --- a/indra/llinventory/llsettingssky.h +++ b/indra/llinventory/llsettingssky.h @@ -62,10 +62,12 @@ public:      static const std::string SETTING_LIGHT_NORMAL;      static const std::string SETTING_MAX_Y;      static const std::string SETTING_MOON_ROTATION; +    static const std::string SETTING_MOON_SCALE;      static const std::string SETTING_MOON_TEXTUREID;      static const std::string SETTING_STAR_BRIGHTNESS;      static const std::string SETTING_SUNLIGHT_COLOR;      static const std::string SETTING_SUN_ROTATION; +    static const std::string SETTING_SUN_SCALE;      static const std::string SETTING_SUN_TEXTUREID;      static const std::string SETTING_PLANET_RADIUS; @@ -165,6 +167,9 @@ public:      LLQuaternion getMoonRotation() const;      void setMoonRotation(const LLQuaternion &val); +    F32 getMoonScale() const; +    void setMoonScale(F32 val); +      LLUUID getMoonTextureId() const;      void setMoonTextureId(LLUUID id); @@ -177,6 +182,9 @@ public:      LLQuaternion getSunRotation() const;      void setSunRotation(const LLQuaternion &val) ; +    F32 getSunScale() const; +    void setSunScale(F32 val); +      LLUUID getSunTextureId() const;      void setSunTextureId(LLUUID id); diff --git a/indra/newview/llpaneleditsky.cpp b/indra/newview/llpaneleditsky.cpp index 73c92b0137..cb303b7ee2 100644 --- a/indra/newview/llpaneleditsky.cpp +++ b/indra/newview/llpaneleditsky.cpp @@ -65,8 +65,10 @@ namespace      const std::string   FIELD_SKY_STAR_BRIGHTNESS("star_brightness");      const std::string   FIELD_SKY_SUN_ROTATION("sun_rotation");      const std::string   FIELD_SKY_SUN_IMAGE("sun_image"); +    const std::string   FIELD_SKY_SUN_SCALE("sun_scale");      const std::string   FIELD_SKY_MOON_ROTATION("moon_rotation");      const std::string   FIELD_SKY_MOON_IMAGE("moon_image"); +    const std::string   FIELD_SKY_MOON_SCALE("moon_scale");      const F32 SLIDER_SCALE_SUN_AMBIENT(3.0f);      const F32 SLIDER_SCALE_BLUE_HORIZON_DENSITY(2.0f); @@ -334,6 +336,7 @@ BOOL LLPanelSettingsSkySunMoonTab::postBuild()      getChild<LLUICtrl>(FIELD_SKY_STAR_BRIGHTNESS)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onStarBrightnessChanged(); });      getChild<LLUICtrl>(FIELD_SKY_SUN_ROTATION)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onSunRotationChanged(); });      getChild<LLUICtrl>(FIELD_SKY_SUN_IMAGE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onSunImageChanged(); }); +    getChild<LLUICtrl>(FIELD_SKY_SUN_SCALE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onSunScaleChanged(); });      getChild<LLTextureCtrl>(FIELD_SKY_SUN_IMAGE)->setBlankImageAssetID(LLSettingsSky::GetBlankSunTextureId());      getChild<LLTextureCtrl>(FIELD_SKY_SUN_IMAGE)->setDefaultImageAssetID(LLSettingsSky::GetBlankSunTextureId());      getChild<LLTextureCtrl>(FIELD_SKY_SUN_IMAGE)->setAllowNoTexture(TRUE); @@ -344,7 +347,7 @@ BOOL LLPanelSettingsSkySunMoonTab::postBuild()      getChild<LLTextureCtrl>(FIELD_SKY_MOON_IMAGE)->setBlankImageAssetID(LLSettingsSky::GetBlankSunTextureId());      getChild<LLTextureCtrl>(FIELD_SKY_MOON_IMAGE)->setAllowNoTexture(TRUE);      getChild<LLTextureCtrl>(FIELD_SKY_MOON_IMAGE)->setAllowLocalTexture(FALSE); - +    getChild<LLUICtrl>(FIELD_SKY_MOON_SCALE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMoonScaleChanged(); });      refresh(); @@ -381,8 +384,10 @@ void LLPanelSettingsSkySunMoonTab::refresh()      getChild<LLUICtrl>(FIELD_SKY_STAR_BRIGHTNESS)->setValue(mSkySettings->getStarBrightness());      getChild<LLVirtualTrackball>(FIELD_SKY_SUN_ROTATION)->setRotation(mSkySettings->getSunRotation());      getChild<LLTextureCtrl>(FIELD_SKY_SUN_IMAGE)->setValue(mSkySettings->getSunTextureId()); +    getChild<LLUICtrl>(FIELD_SKY_SUN_SCALE)->setValue(mSkySettings->getSunScale());      getChild<LLVirtualTrackball>(FIELD_SKY_MOON_ROTATION)->setRotation(mSkySettings->getMoonRotation());      getChild<LLTextureCtrl>(FIELD_SKY_MOON_IMAGE)->setValue(mSkySettings->getMoonTextureId()); +    getChild<LLUICtrl>(FIELD_SKY_MOON_SCALE)->setValue(mSkySettings->getMoonScale());  }  //------------------------------------------------------------------------- @@ -418,6 +423,12 @@ void LLPanelSettingsSkySunMoonTab::onSunRotationChanged()      mSkySettings->update();  } +void LLPanelSettingsSkySunMoonTab::onSunScaleChanged() +{ +    mSkySettings->setSunScale((getChild<LLUICtrl>(FIELD_SKY_SUN_SCALE)->getValue().asReal())); +    mSkySettings->update(); +} +  void LLPanelSettingsSkySunMoonTab::onSunImageChanged()  {      mSkySettings->setSunTextureId(getChild<LLTextureCtrl>(FIELD_SKY_SUN_IMAGE)->getValue().asUUID()); @@ -435,3 +446,9 @@ void LLPanelSettingsSkySunMoonTab::onMoonImageChanged()      mSkySettings->setMoonTextureId(getChild<LLTextureCtrl>(FIELD_SKY_MOON_IMAGE)->getValue().asUUID());      mSkySettings->update();  } + +void LLPanelSettingsSkySunMoonTab::onMoonScaleChanged() +{ +    mSkySettings->setMoonScale((getChild<LLUICtrl>(FIELD_SKY_MOON_SCALE)->getValue().asReal())); +    mSkySettings->update(); +} diff --git a/indra/newview/llpaneleditsky.h b/indra/newview/llpaneleditsky.h index 7c49c839ec..f0cfc0dab7 100644 --- a/indra/newview/llpaneleditsky.h +++ b/indra/newview/llpaneleditsky.h @@ -120,8 +120,10 @@ private:      void                    onGlowChanged();      void                    onStarBrightnessChanged();      void                    onSunRotationChanged(); +    void                    onSunScaleChanged();      void                    onSunImageChanged();      void                    onMoonRotationChanged(); +    void                    onMoonScaleChanged();      void                    onMoonImageChanged();  };  #endif // LLPANEL_EDIT_SKY_H diff --git a/indra/newview/llpanelenvironment.cpp b/indra/newview/llpanelenvironment.cpp index 4425483989..d91f9110e0 100644 --- a/indra/newview/llpanelenvironment.cpp +++ b/indra/newview/llpanelenvironment.cpp @@ -243,8 +243,8 @@ void LLPanelEnvironmentInfo::setControlsEnabled(bool enabled)      getChild<LLUICtrl>(RDG_ENVIRONMENT_SELECT)->setEnabled(enabled);      getChild<LLUICtrl>(RDO_USEDEFAULT)->setEnabled(enabled && !is_legacy); -    getChild<LLUICtrl>(RDO_USEINV)->setEnabled(enabled && !is_legacy); -    getChild<LLUICtrl>(RDO_USECUSTOM)->setEnabled(enabled); +    getChild<LLUICtrl>(RDO_USEINV)->setEnabled(false);      // these two are selected automatically based on  +    getChild<LLUICtrl>(RDO_USECUSTOM)->setEnabled(false);      getChild<LLUICtrl>(EDT_INVNAME)->setEnabled(FALSE);      getChild<LLUICtrl>(BTN_SELECTINV)->setEnabled(enabled && !is_legacy);      getChild<LLUICtrl>(BTN_EDIT)->setEnabled(enabled); diff --git a/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml b/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml index 2b79a1056f..586aff4bb8 100644 --- a/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml +++ b/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml @@ -32,39 +32,39 @@                      width="120">                  Sun & Stars              </text> -                    <text -                            follows="left|top" -                            height="10" -                            layout="topleft" -                            left_delta="10" -                            top_delta="30" -                            width="100"> -                        Position: -                    </text> -                    <sun_moon_trackball -                        name="sun_rotation" -                        follows="left|top" -                        left_delta="0" -                        top_delta="20" -                        height="150" -                        width="150" -                        thumb_mode="sun" /> -                    <text -                            follows="left|top" -                            height="10" -                            layout="topleft" -                            left_delta="160" -                            top_delta="-20" -                            width="200"> -                        Image: -                    </text> -                    <texture_picker -                            height="123" -                            layout="topleft" -                            left_delta="5" -                            name="sun_image" -                            top_pad="10" -                            width="100"/> +            <text +                    follows="left|top" +                    height="10" +                    layout="topleft" +                    left_delta="10" +                    top_delta="30" +                    width="100"> +                Position: +            </text> +            <sun_moon_trackball +                    name="sun_rotation" +                    follows="left|top" +                    left_delta="0" +                    top_delta="20" +                    height="150" +                    width="150" +                    thumb_mode="sun" /> +            <text +                    follows="left|top" +                    height="10" +                    layout="topleft" +                    left_delta="160" +                    top_delta="-20" +                    width="200"> +                Image: +            </text> +            <texture_picker +                    height="123" +                    layout="topleft" +                    left_delta="5" +                    name="sun_image" +                    top_pad="10" +                    width="100"/>              <text                      follows="left|top"                      height="10" @@ -72,6 +72,29 @@                      left_delta="-5"                      top_delta="110"                      width="80"> +                Scale: +            </text> +            <slider +                    decimal_digits="2" +                    follows="left|top" +                    height="16" +                    increment="0.25" +                    initial_value="0" +                    layout="topleft" +                    left_delta="5" +                    min_val="0.25" +                    max_val="20" +                    name="sun_scale" +                    top_delta="15" +                    width="130" +                    can_edit_text="true"/> +            <text +                    follows="left|top" +                    height="10" +                    layout="topleft" +                    left_delta="-5" +                    top_delta="20" +                    width="80">                  Color:              </text>              <color_swatch @@ -89,7 +112,7 @@                      height="10"                      layout="topleft"                      left_delta="-160" -                    top_delta="47" +                    top_delta="27"                      width="200">                  Glow Focus:              </text> @@ -135,7 +158,7 @@                      height="10"                      layout="topleft"                      left_delta="-5" -                    top_delta="30" +                    top_delta="22"                      width="200">                  Star Brightness:              </text> @@ -195,13 +218,13 @@                          Position:                      </text>                      <sun_moon_trackball -                        name="moon_rotation" -                        follows="left|top" -                        left_delta="0" -                        top_delta="20" -                        height="150" -                        width="150" -                        thumb_mode="moon" /> +                            name="moon_rotation" +                            follows="left|top" +                            left_delta="0" +                            top_delta="20" +                            height="150" +                            width="150" +                            thumb_mode="moon" />                      <text                              follows="left|top"                              height="10" @@ -218,6 +241,29 @@                              name="moon_image"                              top_pad="10"                              width="100"/> +                    <text +                            follows="left|top" +                            height="10" +                            layout="topleft" +                            left_delta="-5" +                            top_delta="110" +                            width="80"> +                        Scale: +                    </text> +                    <slider +                            decimal_digits="2" +                            follows="left|top" +                            height="16" +                            increment="0.25" +                            initial_value="0" +                            layout="topleft" +                            left_delta="5" +                            min_val="0.25" +                            max_val="20" +                            name="sun_scale" +                            top_delta="15" +                            width="130" +                            can_edit_text="true"/>                  </layout_panel>              </layout_stack>          </layout_panel>  | 
