diff --git a/indra/newview/quickprefs.cpp b/indra/newview/quickprefs.cpp index bb4d071e90..6c714a3b4f 100644 --- a/indra/newview/quickprefs.cpp +++ b/indra/newview/quickprefs.cpp @@ -196,7 +196,7 @@ void FloaterQuickPrefs::initCallbacks() getChild("DCNextPreset")->setCommitCallback(boost::bind(&FloaterQuickPrefs::onClickDayCycleNext, this)); getChild("ResetToRegionDefault")->setCommitCallback(boost::bind(&FloaterQuickPrefs::onClickResetToRegionDefault, this)); getChild("time_offset")->setSliderMouseUpCallback(boost::bind(&FloaterQuickPrefs::onDayOffset, this)); - getChild("sun_rotation")->setCommitCallback([this](LLUICtrl *, const LLSD &) { onSunMoved(); }); + getChild("sun_rotation")->setCommitCallback([this](LLUICtrl *, const LLSD &) { onSunMoved(); }); // Phototools additions if (getIsPhototools()) @@ -506,7 +506,7 @@ void FloaterQuickPrefs::setSelectedEnvironment() break; } - updateDayOffset(); + updateDayOffset(); } BOOL FloaterQuickPrefs::postBuild() @@ -559,10 +559,9 @@ BOOL FloaterQuickPrefs::postBuild() mWaterPresetsCombo = getChild("WaterPresetsCombo"); mWLPresetsCombo = getChild("WLPresetsCombo"); mDayCyclePresetsCombo = getChild("DCPresetsCombo"); - mWLSunRot = getChild("sun_rotation"); + mWLSunRot = getChild("sun_rotation"); mWLDayOffset = getChild("time_offset"); - mWLDayOffset->addSlider(0); - + mWLDayOffset->addSlider(0); initCallbacks(); loadPresets(); @@ -743,10 +742,7 @@ void FloaterQuickPrefs::stepComboBox(LLComboBox* ctrl, bool forward) S32 lastitem = ctrl->getItemCount() - 1; S32 curid = ctrl->getCurrentIndex(); S32 startid = curid; - // std::string preset_name; - // std::string start_preset_name; - // start_preset_name = ctrl->getSelectedValue().asString(); do { curid += increment; @@ -759,10 +755,8 @@ void FloaterQuickPrefs::stepComboBox(LLComboBox* ctrl, bool forward) curid = 0; } ctrl->setCurrentByIndex(curid); - // preset_name = ctrl->getSelectedValue().asString(); } while (!isValidPreset(ctrl->getSelectedValue()) && curid != startid); - // while (!isValidPreset(ctrl->getSelectedValue()) && preset_name != start_preset_name); } void FloaterQuickPrefs::selectSkyPreset(const LLSD& preset) @@ -792,7 +786,15 @@ void FloaterQuickPrefs::onChangeWaterPreset() { stepComboBox(mWaterPresetsCombo, true); } - selectWaterPreset(mWaterPresetsCombo->getSelectedValue()); + + if (isValidPreset(mWaterPresetsCombo->getSelectedValue())) + { + selectWaterPreset(mWaterPresetsCombo->getSelectedValue()); + } + else + { + LLNotificationsUtil::add("NoValidEnvSettingFound"); + } } void FloaterQuickPrefs::onChangeSkyPreset() @@ -801,7 +803,15 @@ void FloaterQuickPrefs::onChangeSkyPreset() { stepComboBox(mWLPresetsCombo, true); } - selectSkyPreset(mWLPresetsCombo->getSelectedValue()); + + if (isValidPreset(mWLPresetsCombo->getSelectedValue())) + { + selectSkyPreset(mWLPresetsCombo->getSelectedValue()); + } + else + { + LLNotificationsUtil::add("NoValidEnvSettingFound"); + } } void FloaterQuickPrefs::onChangeDayCyclePreset() @@ -810,7 +820,15 @@ void FloaterQuickPrefs::onChangeDayCyclePreset() { stepComboBox(mDayCyclePresetsCombo, true); } - selectDayCyclePreset(mDayCyclePresetsCombo->getSelectedValue()); + + if (isValidPreset(mDayCyclePresetsCombo->getSelectedValue())) + { + selectDayCyclePreset(mDayCyclePresetsCombo->getSelectedValue()); + } + else + { + LLNotificationsUtil::add("NoValidEnvSettingFound"); + } } void FloaterQuickPrefs::onClickWaterPrev() @@ -851,68 +869,68 @@ void FloaterQuickPrefs::onClickDayCycleNext() void FloaterQuickPrefs::draw() { - updateSun(); - LLTransientDockableFloater::draw(); + updateSun(); + LLTransientDockableFloater::draw(); } void FloaterQuickPrefs::updateDayOffset() { - // KC: Limit day cycle offset max to day length if less than a full real day - LLSettingsDay::Seconds day_length = LLEnvironment::instance().getDayLength(); - if (day_length > LLSettingsDay::MINIMUM_DAYOFFSET) - { - if (day_length < LLSettingsDay::MAXIMUM_DAYOFFSET) - { - mWLDayOffset->setMaxValue(day_length); - } - else - { - mWLDayOffset->setMaxValue(LLSettingsDay::MAXIMUM_DAYOFFSET); - } - mWLDayOffset->setCurSliderValue(LLEnvironment::instance().getDayOffsetOverride()); - } - else - { - mWLDayOffset->setCurSliderValue(0); - } + // KC: Limit day cycle offset max to day length if less than a full real day + LLSettingsDay::Seconds day_length = LLEnvironment::instance().getDayLength(); + if (day_length > LLSettingsDay::MINIMUM_DAYOFFSET) + { + if (day_length < LLSettingsDay::MAXIMUM_DAYOFFSET) + { + mWLDayOffset->setMaxValue(day_length); + } + else + { + mWLDayOffset->setMaxValue(LLSettingsDay::MAXIMUM_DAYOFFSET); + } + mWLDayOffset->setCurSliderValue(LLEnvironment::instance().getDayOffsetOverride()); + } + else + { + mWLDayOffset->setCurSliderValue(0); + } } const F32 SUN_ROTATION_PRECISION = 0.1f; void FloaterQuickPrefs::updateSun() { - LLSettingsSky::ptr_t psky = LLEnvironment::instance().getCurrentSky(); - mWLSunRot->setRotation(psky->getSunRotation()); + LLSettingsSky::ptr_t psky = LLEnvironment::instance().getCurrentSky(); + mWLSunRot->setRotation(psky->getSunRotation()); } void FloaterQuickPrefs::onDayOffset() { - //KC: Forces the environment time by an additional offset - if (LLEnvironment::instance().getDayOffset() > LLSettingsDay::INVALID_DAYOFFSET) - { - LLSettingsDay::Seconds day_offset(mWLDayOffset->getCurSliderValue()); - LLEnvironment::instance().setDayOffsetOverride(day_offset); - LLEnvironment::instance().updateEnvironment(); - } + //KC: Forces the environment time by an additional offset + if (LLEnvironment::instance().getDayOffset() > LLSettingsDay::INVALID_DAYOFFSET) + { + LLSettingsDay::Seconds day_offset(mWLDayOffset->getCurSliderValue()); + LLEnvironment::instance().setDayOffsetOverride(day_offset); + LLEnvironment::instance().updateEnvironment(); + } } void FloaterQuickPrefs::onSunMoved() { - LLSettingsSky::ptr_t psky = LLEnvironment::instance().getCurrentSky(); - psky->setSunRotation(mWLSunRot->getRotation()); - psky->updateSettings(); + LLSettingsSky::ptr_t psky = LLEnvironment::instance().getCurrentSky(); + psky->setSunRotation(mWLSunRot->getRotation()); + psky->updateSettings(); } void FloaterQuickPrefs::onClickResetToRegionDefault() { - mWLPresetsCombo->setValue(LLSD(PRESET_NAME_REGION_DEFAULT)); + mWLPresetsCombo->setValue(LLSD(PRESET_NAME_REGION_DEFAULT)); mWaterPresetsCombo->setValue(LLSD(PRESET_NAME_REGION_DEFAULT)); - LLEnvironment::instance().setDayOffsetOverride(LLSettingsDay::MINIMUM_DAYOFFSET); - mWLDayOffset->setCurSliderValue(0); + LLEnvironment::instance().setDayOffsetOverride(LLSettingsDay::MINIMUM_DAYOFFSET); + mWLDayOffset->setCurSliderValue(0); LLEnvironment::instance().clearEnvironment(LLEnvironment::ENV_LOCAL); - LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL); - LLEnvironment::instance().updateEnvironment(); + LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL); + LLEnvironment::instance().updateEnvironment(); } void FloaterQuickPrefs::setSelectedSky(const std::string& preset_name) @@ -936,19 +954,15 @@ void FloaterQuickPrefs::setSelectedDayCycle(const std::string& preset_name) // Phototools additions void FloaterQuickPrefs::refreshSettings() { - BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable") - && gGLManager.mHasCubeMap - && LLCubeMap::sUseCubeMaps; + BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable") && gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps; mCtrlReflectionDetail->setEnabled(reflections); bool fCtrlShaderEnable = LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"); - mCtrlShaderEnable->setEnabled( - fCtrlShaderEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("VertexShaderEnable"))) ); + mCtrlShaderEnable->setEnabled(fCtrlShaderEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("VertexShaderEnable"))) ); BOOL shaders = mCtrlShaderEnable->get(); bool fCtrlWindLightEnable = fCtrlShaderEnable && shaders; - mCtrlWindLight->setEnabled( - fCtrlWindLightEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders"))) ); + mCtrlWindLight->setEnabled(fCtrlWindLightEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders"))) ); LLTextBox* sky_label = getChild("T_Sky_Detail"); LLSlider* sky_slider = getChild("SB_Sky_Detail"); @@ -970,7 +984,7 @@ void FloaterQuickPrefs::refreshSettings() mCtrlDeferred->setEnabled(enabled); enabled = enabled && LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferredSSAO") && (mCtrlDeferred->get() ? TRUE : FALSE); - + mCtrlUseSSAO->setEnabled(enabled); mCtrlUseDoF->setEnabled(enabled); @@ -985,7 +999,7 @@ void FloaterQuickPrefs::refreshSettings() { mCtrlShaderEnable->setEnabled(FALSE); mCtrlShaderEnable->setValue(FALSE); - + mCtrlWindLight->setEnabled(FALSE); mCtrlWindLight->setValue(FALSE); @@ -993,7 +1007,7 @@ void FloaterQuickPrefs::refreshSettings() sky_slider->setEnabled(FALSE); sky_spinner->setEnabled(FALSE); sky_default_button->setEnabled(FALSE); - + mCtrlReflectionDetail->setEnabled(FALSE); mCtrlReflectionDetail->setValue(0); @@ -1012,7 +1026,7 @@ void FloaterQuickPrefs::refreshSettings() mCtrlDeferred->setEnabled(FALSE); mCtrlDeferred->setValue(FALSE); } - + // disabled windlight if (!LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders")) { @@ -1060,14 +1074,14 @@ void FloaterQuickPrefs::refreshSettings() mCtrlDeferred->setEnabled(FALSE); mCtrlDeferred->setValue(FALSE); } - + // disabled deferred SSAO if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferredSSAO")) { mCtrlUseSSAO->setEnabled(FALSE); mCtrlUseSSAO->setValue(FALSE); } - + // disabled deferred shadows if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderShadowDetail")) { @@ -1105,7 +1119,7 @@ void FloaterQuickPrefs::refreshSettings() mCtrlDeferred->setEnabled(FALSE); mCtrlDeferred->setValue(FALSE); } - + // FIRE-9630 - Vignette UI controls if (getIsPhototools()) { diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 8f6cae55a2..aedac6c22f 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -13262,5 +13262,16 @@ Unable to load the track into [TRACK]. Unable to load the track from [TRACK1] into [TRACK2]. fail + + +No valid environment setting selected. + +Please note that "Region default" and "Day cycle based" cannot be selected! + fail +