FIRE-19422: Newly created Windlight presets don't appear in Quickprefs until relog
parent
b9e0662cb5
commit
67b2092cc2
|
|
@ -187,7 +187,7 @@ bool LLEnvManagerNew::useRegionSettings()
|
|||
bool LLEnvManagerNew::useWaterPreset(const std::string& name)
|
||||
{
|
||||
// <FS:Ansariel> Quickprefs integration
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_WATER, LLSD(name));
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_WATER, name);
|
||||
|
||||
LL_DEBUGS("Windlight") << "Displaying water preset " << name << LL_ENDL;
|
||||
LLWaterParamManager& water_mgr = LLWaterParamManager::instance();
|
||||
|
|
@ -215,7 +215,7 @@ bool LLEnvManagerNew::useSkyPreset(const std::string& name, bool interpolate /*=
|
|||
}
|
||||
|
||||
// <FS:Ansariel> Quickprefs integration
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_SKY, LLSD(name));
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_SKY, name);
|
||||
|
||||
LL_DEBUGS("Windlight") << "Displaying sky preset " << name << LL_ENDL;
|
||||
sky_mgr.applySkyParams(param_set.getAll(), interpolate);
|
||||
|
|
@ -239,7 +239,7 @@ bool LLEnvManagerNew::useDayCycle(const std::string& name, LLEnvKey::EScope scop
|
|||
params = getRegionSettings().getWLDayCycle();
|
||||
|
||||
// <FS:Ansariel> Quickprefs integration
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_DAYCYCLE, LLSD(PRESET_NAME_REGION_DEFAULT));
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_DAYCYCLE, PRESET_NAME_REGION_DEFAULT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -252,7 +252,7 @@ bool LLEnvManagerNew::useDayCycle(const std::string& name, LLEnvKey::EScope scop
|
|||
}
|
||||
|
||||
// <FS:Ansariel> Quickprefs integration
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_DAYCYCLE, LLSD(name));
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_DAYCYCLE, name);
|
||||
}
|
||||
|
||||
bool rslt = LLWLParamManager::instance().applyDayCycleParams(params, scope);
|
||||
|
|
@ -597,7 +597,7 @@ void LLEnvManagerNew::updateWaterFromPrefs(bool interpolate)
|
|||
target_water_params = default_water.getAll();
|
||||
|
||||
// <FS:Ansariel> Quickprefs integration
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_WATER, LLSD("Default"));
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_WATER, "Default");
|
||||
}
|
||||
|
||||
if (getUseRegionSettings())
|
||||
|
|
@ -610,7 +610,7 @@ void LLEnvManagerNew::updateWaterFromPrefs(bool interpolate)
|
|||
target_water_params = region_water_params;
|
||||
|
||||
// <FS:Ansariel> Quickprefs integration
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_WATER, LLSD(PRESET_NAME_REGION_DEFAULT));
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_WATER, PRESET_NAME_REGION_DEFAULT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -632,7 +632,7 @@ void LLEnvManagerNew::updateWaterFromPrefs(bool interpolate)
|
|||
// <FS:Ansariel> Quickprefs integration
|
||||
else
|
||||
{
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_WATER, LLSD(water));
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_WATER, water);
|
||||
}
|
||||
// </FS:Ansariel> Quickprefs integration
|
||||
|
||||
|
|
@ -675,7 +675,7 @@ bool LLEnvManagerNew::useRegionSky()
|
|||
// *TODO: Support fixed sky from region.
|
||||
|
||||
// <FS:Ansariel> Quickprefs integration
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_SKY, LLSD(PRESET_NAME_REGION_DEFAULT));
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_SKY, PRESET_NAME_REGION_DEFAULT);
|
||||
|
||||
// Otherwise apply region day cycle.
|
||||
LL_DEBUGS("Windlight") << "Applying region sky" << LL_ENDL;
|
||||
|
|
|
|||
|
|
@ -247,113 +247,124 @@ void FloaterQuickPrefs::initCallbacks()
|
|||
|
||||
mRlvBehaviorCallbackConnection = gRlvHandler.setBehaviourCallback(boost::bind(&FloaterQuickPrefs::updateRlvRestrictions, this, _1, _2));
|
||||
gSavedSettings.getControl("IndirectMaxNonImpostors")->getCommitSignal()->connect(boost::bind(&FloaterQuickPrefs::updateMaxNonImpostors, this, _2));
|
||||
|
||||
LLWLParamManager::instance().setPresetListChangeCallback(boost::bind(&FloaterQuickPrefs::reloadPresetsAndSelect, QP_PARAM_SKY));
|
||||
LLWaterParamManager::instance().setPresetListChangeCallback(boost::bind(&FloaterQuickPrefs::reloadPresetsAndSelect, QP_PARAM_WATER));
|
||||
LLDayCycleManager::instance().setModifyCallback(boost::bind(&FloaterQuickPrefs::reloadPresetsAndSelect, QP_PARAM_DAYCYCLE));
|
||||
}
|
||||
|
||||
void FloaterQuickPrefs::loadDayCyclePresets()
|
||||
{
|
||||
LLDayCycleManager::preset_name_list_t user_presets, sys_presets;
|
||||
LLDayCycleManager::instance().getPresetNames(user_presets, sys_presets);
|
||||
|
||||
mDayCyclePresetsCombo->operateOnAll(LLComboBox::OP_DELETE);
|
||||
mDayCyclePresetsCombo->add(LLTrans::getString("QP_WL_Region_Default"), LLSD(PRESET_NAME_REGION_DEFAULT));
|
||||
mDayCyclePresetsCombo->add(LLTrans::getString("QP_WL_None"), LLSD(PRESET_NAME_NONE));
|
||||
mDayCyclePresetsCombo->addSeparator();
|
||||
|
||||
// Add user presets.
|
||||
for (LLDayCycleManager::preset_name_list_t::const_iterator it = user_presets.begin(); it != user_presets.end(); ++it)
|
||||
{
|
||||
std::string preset_name = *it;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mDayCyclePresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
|
||||
if (!user_presets.empty() && !sys_presets.empty())
|
||||
{
|
||||
mDayCyclePresetsCombo->addSeparator();
|
||||
}
|
||||
|
||||
// Add system presets.
|
||||
for (LLDayCycleManager::preset_name_list_t::const_iterator it = sys_presets.begin(); it != sys_presets.end(); ++it)
|
||||
{
|
||||
std::string preset_name = *it;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mDayCyclePresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FloaterQuickPrefs::loadSkyPresets()
|
||||
{
|
||||
LLWLParamManager::preset_name_list_t user_presets, sys_presets, region_presets;
|
||||
LLWLParamManager::instance().getPresetNames(region_presets, user_presets, sys_presets);
|
||||
|
||||
mWLPresetsCombo->operateOnAll(LLComboBox::OP_DELETE);
|
||||
mWLPresetsCombo->add(LLTrans::getString("QP_WL_Region_Default"), LLSD(PRESET_NAME_REGION_DEFAULT));
|
||||
mWLPresetsCombo->add(LLTrans::getString("QP_WL_Day_Cycle_Based"), LLSD(PRESET_NAME_SKY_DAY_CYCLE));
|
||||
mWLPresetsCombo->addSeparator();
|
||||
|
||||
// Add user presets.
|
||||
for (LLWLParamManager::preset_name_list_t::const_iterator it = user_presets.begin(); it != user_presets.end(); ++it)
|
||||
{
|
||||
std::string preset_name = *it;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mWLPresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
|
||||
if (!user_presets.empty() && !sys_presets.empty())
|
||||
{
|
||||
mWLPresetsCombo->addSeparator();
|
||||
}
|
||||
|
||||
// Add system presets.
|
||||
for (LLWLParamManager::preset_name_list_t::const_iterator it = sys_presets.begin(); it != sys_presets.end(); ++it)
|
||||
{
|
||||
std::string preset_name = *it;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mWLPresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FloaterQuickPrefs::loadWaterPresets()
|
||||
{
|
||||
std::list<std::string> user_presets, system_presets;
|
||||
LLWaterParamManager::instance().getPresetNames(user_presets, system_presets);
|
||||
|
||||
mWaterPresetsCombo->operateOnAll(LLComboBox::OP_DELETE);
|
||||
mWaterPresetsCombo->add(LLTrans::getString("QP_WL_Region_Default"), LLSD(PRESET_NAME_REGION_DEFAULT));
|
||||
mWaterPresetsCombo->addSeparator();
|
||||
|
||||
// Add user presets first.
|
||||
for (std::list<std::string>::const_iterator mIt = user_presets.begin(); mIt != user_presets.end(); ++mIt)
|
||||
{
|
||||
std::string preset_name = *mIt;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mWaterPresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
|
||||
if (!user_presets.empty() && !system_presets.empty())
|
||||
{
|
||||
mWaterPresetsCombo->addSeparator();
|
||||
}
|
||||
|
||||
// Add system presets.
|
||||
for (std::list<std::string>::const_iterator mIt = system_presets.begin(); mIt != system_presets.end(); ++mIt)
|
||||
{
|
||||
std::string preset_name = *mIt;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mWaterPresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FloaterQuickPrefs::loadPresets()
|
||||
{
|
||||
// WL Water combo box
|
||||
{
|
||||
std::list<std::string> user_presets, system_presets;
|
||||
LLWaterParamManager::instance().getPresetNames(user_presets, system_presets);
|
||||
|
||||
mWaterPresetsCombo->add(LLTrans::getString("QP_WL_Region_Default"), LLSD(PRESET_NAME_REGION_DEFAULT));
|
||||
mWaterPresetsCombo->addSeparator();
|
||||
|
||||
// Add user presets first.
|
||||
for (std::list<std::string>::const_iterator mIt = user_presets.begin(); mIt != user_presets.end(); ++mIt)
|
||||
{
|
||||
std::string preset_name = *mIt;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mWaterPresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
|
||||
if (!user_presets.empty() && !system_presets.empty())
|
||||
{
|
||||
mWaterPresetsCombo->addSeparator();
|
||||
}
|
||||
|
||||
// Add system presets.
|
||||
for (std::list<std::string>::const_iterator mIt = system_presets.begin(); mIt != system_presets.end(); ++mIt)
|
||||
{
|
||||
std::string preset_name = *mIt;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mWaterPresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// WL Sky combo box
|
||||
{
|
||||
LLWLParamManager::preset_name_list_t user_presets, sys_presets, region_presets;
|
||||
LLWLParamManager::instance().getPresetNames(region_presets, user_presets, sys_presets);
|
||||
|
||||
mWLPresetsCombo->add(LLTrans::getString("QP_WL_Region_Default"), LLSD(PRESET_NAME_REGION_DEFAULT));
|
||||
mWLPresetsCombo->add(LLTrans::getString("QP_WL_Day_Cycle_Based"), LLSD(PRESET_NAME_SKY_DAY_CYCLE));
|
||||
mWLPresetsCombo->addSeparator();
|
||||
|
||||
// Add user presets.
|
||||
for (LLWLParamManager::preset_name_list_t::const_iterator it = user_presets.begin(); it != user_presets.end(); ++it)
|
||||
{
|
||||
std::string preset_name = *it;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mWLPresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
|
||||
if (!user_presets.empty() && !sys_presets.empty())
|
||||
{
|
||||
mWLPresetsCombo->addSeparator();
|
||||
}
|
||||
|
||||
// Add system presets.
|
||||
for (LLWLParamManager::preset_name_list_t::const_iterator it = sys_presets.begin(); it != sys_presets.end(); ++it)
|
||||
{
|
||||
std::string preset_name = *it;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mWLPresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// WL Day Cycle combo box
|
||||
{
|
||||
LLDayCycleManager::preset_name_list_t user_presets, sys_presets;
|
||||
LLDayCycleManager::instance().getPresetNames(user_presets, sys_presets);
|
||||
|
||||
mDayCyclePresetsCombo->add(LLTrans::getString("QP_WL_Region_Default"), LLSD(PRESET_NAME_REGION_DEFAULT));
|
||||
mDayCyclePresetsCombo->add(LLTrans::getString("QP_WL_None"), LLSD(PRESET_NAME_NONE));
|
||||
mDayCyclePresetsCombo->addSeparator();
|
||||
|
||||
// Add user presets.
|
||||
for (LLDayCycleManager::preset_name_list_t::const_iterator it = user_presets.begin(); it != user_presets.end(); ++it)
|
||||
{
|
||||
std::string preset_name = *it;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mDayCyclePresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
|
||||
if (!user_presets.empty() && !sys_presets.empty())
|
||||
{
|
||||
mDayCyclePresetsCombo->addSeparator();
|
||||
}
|
||||
|
||||
// Add system presets.
|
||||
for (LLDayCycleManager::preset_name_list_t::const_iterator it = sys_presets.begin(); it != sys_presets.end(); ++it)
|
||||
{
|
||||
std::string preset_name = *it;
|
||||
if (!preset_name.empty())
|
||||
{
|
||||
mDayCyclePresetsCombo->add(preset_name, LLSD(preset_name));
|
||||
}
|
||||
}
|
||||
}
|
||||
loadWaterPresets();
|
||||
loadSkyPresets();
|
||||
loadDayCyclePresets();
|
||||
}
|
||||
|
||||
BOOL FloaterQuickPrefs::postBuild()
|
||||
|
|
@ -766,7 +777,7 @@ void FloaterQuickPrefs::onClickResetToRegionDefault()
|
|||
|
||||
// This method is invoked by LLEnvManagerNew when a particular preset is applied
|
||||
// static
|
||||
void FloaterQuickPrefs::updateParam(EQuickPrefUpdateParam param, const LLSD& value)
|
||||
void FloaterQuickPrefs::updateParam(EQuickPrefUpdateParam param, const std::string& preset_name)
|
||||
{
|
||||
FloaterQuickPrefs* qp_floater = LLFloaterReg::getTypedInstance<FloaterQuickPrefs>("quickprefs");
|
||||
FloaterQuickPrefs* pt_floater = LLFloaterReg::getTypedInstance<FloaterQuickPrefs>(PHOTOTOOLS_FLOATER);
|
||||
|
|
@ -774,22 +785,53 @@ void FloaterQuickPrefs::updateParam(EQuickPrefUpdateParam param, const LLSD& val
|
|||
switch (param)
|
||||
{
|
||||
case QP_PARAM_SKY:
|
||||
qp_floater->setSelectedSky(value.asString());
|
||||
pt_floater->setSelectedSky(value.asString());
|
||||
qp_floater->setSelectedSky(preset_name);
|
||||
pt_floater->setSelectedSky(preset_name);
|
||||
break;
|
||||
case QP_PARAM_WATER:
|
||||
qp_floater->setSelectedWater(value.asString());
|
||||
pt_floater->setSelectedWater(value.asString());
|
||||
qp_floater->setSelectedWater(preset_name);
|
||||
pt_floater->setSelectedWater(preset_name);
|
||||
break;
|
||||
case QP_PARAM_DAYCYCLE:
|
||||
qp_floater->setSelectedDayCycle(value.asString());
|
||||
pt_floater->setSelectedDayCycle(value.asString());
|
||||
qp_floater->setSelectedDayCycle(preset_name);
|
||||
pt_floater->setSelectedDayCycle(preset_name);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void FloaterQuickPrefs::reloadPresetsAndSelect(EQuickPrefUpdateParam param)
|
||||
{
|
||||
FloaterQuickPrefs* qp_floater = LLFloaterReg::getTypedInstance<FloaterQuickPrefs>("quickprefs");
|
||||
FloaterQuickPrefs* pt_floater = LLFloaterReg::getTypedInstance<FloaterQuickPrefs>(PHOTOTOOLS_FLOATER);
|
||||
|
||||
std::string preset_name;
|
||||
|
||||
switch (param)
|
||||
{
|
||||
case QP_PARAM_SKY:
|
||||
qp_floater->loadSkyPresets();
|
||||
pt_floater->loadSkyPresets();
|
||||
preset_name = LLEnvManagerNew::instance().getSkyPresetName();
|
||||
break;
|
||||
case QP_PARAM_WATER:
|
||||
qp_floater->loadWaterPresets();
|
||||
pt_floater->loadWaterPresets();
|
||||
preset_name = LLEnvManagerNew::instance().getWaterPresetName();
|
||||
break;
|
||||
case QP_PARAM_DAYCYCLE:
|
||||
qp_floater->loadDayCyclePresets();
|
||||
pt_floater->loadDayCyclePresets();
|
||||
preset_name = LLEnvManagerNew::instance().getDayCycleName();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
updateParam(param, preset_name);
|
||||
}
|
||||
|
||||
void FloaterQuickPrefs::setSelectedSky(const std::string& preset_name)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -78,6 +78,9 @@ private:
|
|||
|
||||
void initCallbacks();
|
||||
void loadPresets();
|
||||
void loadDayCyclePresets();
|
||||
void loadSkyPresets();
|
||||
void loadWaterPresets();
|
||||
|
||||
void onChangeUseRegionWindlight();
|
||||
void onChangeWaterPreset();
|
||||
|
|
@ -101,8 +104,8 @@ public:
|
|||
/*virtual*/ void draw();
|
||||
virtual void onOpen(const LLSD& key);
|
||||
|
||||
|
||||
static void updateParam(EQuickPrefUpdateParam param, const LLSD& value);
|
||||
static void updateParam(EQuickPrefUpdateParam param, const std::string& preset_name);
|
||||
static void reloadPresetsAndSelect(EQuickPrefUpdateParam param);
|
||||
void setSelectedSky(const std::string& preset_name);
|
||||
void setSelectedWater(const std::string& preset_name);
|
||||
void setSelectedDayCycle(const std::string& preset_name);
|
||||
|
|
|
|||
Loading…
Reference in New Issue