diff options
author | Rider Linden <rider@lindenlab.com> | 2018-09-11 14:04:43 -0700 |
---|---|---|
committer | Rider Linden <rider@lindenlab.com> | 2018-09-11 14:04:43 -0700 |
commit | a0b9c262185c00d15fb54d06ab2fdb1c6d6b95d9 (patch) | |
tree | 1d2653c569cf1a7142f6602254fd068be1f2745b | |
parent | fe28c3e886aa8a9d5c5b9bc582b532f1235bd76c (diff) |
SL-9620: Double check that commit actually passes back a day cycle from the editor.
Also hide the altitude setting interface for the moment.
-rw-r--r-- | indra/newview/llfloatereditextdaycycle.cpp | 38 | ||||
-rw-r--r-- | indra/newview/llfloatereditextdaycycle.h | 8 | ||||
-rw-r--r-- | indra/newview/llpanelenvironment.cpp | 10 |
3 files changed, 36 insertions, 20 deletions
diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp index 4cab1160c0..ad797c686a 100644 --- a/indra/newview/llfloatereditextdaycycle.cpp +++ b/indra/newview/llfloatereditextdaycycle.cpp @@ -484,24 +484,31 @@ BOOL LLFloaterEditExtDayCycle::handleKeyUp(KEY key, MASK mask, BOOL called_from_ void LLFloaterEditExtDayCycle::onButtonApply(LLUICtrl *ctrl, const LLSD &data) { std::string ctrl_action = ctrl->getName(); + LLSettingsDay::ptr_t dayclone = mEditDay->buildClone(); // create a compressed copy + + if (!dayclone) + { + LL_WARNS("ENVDAYEDIT") << "Unable to clone daycylce from editor." << LL_ENDL; + return; + } if (ctrl_action == ACTION_SAVE) { - doApplyUpdateInventory(); + doApplyUpdateInventory(dayclone); } else if (ctrl_action == ACTION_SAVEAS) { - doApplyCreateNewInventory(); + doApplyCreateNewInventory(dayclone); } else if ((ctrl_action == ACTION_APPLY_LOCAL) || (ctrl_action == ACTION_APPLY_PARCEL) || (ctrl_action == ACTION_APPLY_REGION)) { - doApplyEnvironment(ctrl_action); + doApplyEnvironment(ctrl_action, dayclone); } else if (ctrl_action == ACTION_COMMIT) { - doApplyCommit(); + doApplyCommit(dayclone); } else { @@ -1186,31 +1193,30 @@ void LLFloaterEditExtDayCycle::reblendSettings() mWaterBlender->setPosition(position); } -void LLFloaterEditExtDayCycle::doApplyCreateNewInventory() +void LLFloaterEditExtDayCycle::doApplyCreateNewInventory(const LLSettingsDay::ptr_t &day) { // This method knows what sort of settings object to create. LLUUID parent_id = mInventoryItem ? mInventoryItem->getParentUUID() : gInventory.findCategoryUUIDForType(LLFolderType::FT_SETTINGS); - // buildClone creates compressed copy - LLSettingsVOBase::createInventoryItem(mEditDay->buildClone(), parent_id, + LLSettingsVOBase::createInventoryItem(day, parent_id, [this](LLUUID asset_id, LLUUID inventory_id, LLUUID, LLSD results) { onInventoryCreated(asset_id, inventory_id, results); }); } -void LLFloaterEditExtDayCycle::doApplyUpdateInventory() +void LLFloaterEditExtDayCycle::doApplyUpdateInventory(const LLSettingsDay::ptr_t &day) { if (mInventoryId.isNull()) - LLSettingsVOBase::createInventoryItem(mEditDay->buildClone(), gInventory.findCategoryUUIDForType(LLFolderType::FT_SETTINGS), + LLSettingsVOBase::createInventoryItem(day, gInventory.findCategoryUUIDForType(LLFolderType::FT_SETTINGS), [this](LLUUID asset_id, LLUUID inventory_id, LLUUID, LLSD results) { onInventoryCreated(asset_id, inventory_id, results); }); else - LLSettingsVOBase::updateInventoryItem(mEditDay->buildClone(), mInventoryId, + LLSettingsVOBase::updateInventoryItem(day, mInventoryId, [this](LLUUID asset_id, LLUUID inventory_id, LLUUID, LLSD results) { onInventoryUpdated(asset_id, inventory_id, results); }); } -void LLFloaterEditExtDayCycle::doApplyEnvironment(const std::string &where) +void LLFloaterEditExtDayCycle::doApplyEnvironment(const std::string &where, const LLSettingsDay::ptr_t &day) { if (where == ACTION_APPLY_LOCAL) { - LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, mEditDay->buildClone()); + LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, day); } else if (where == ACTION_APPLY_PARCEL) { @@ -1229,11 +1235,11 @@ void LLFloaterEditExtDayCycle::doApplyEnvironment(const std::string &where) return; } - LLEnvironment::instance().updateParcel(parcel->getLocalID(), mEditDay->buildClone(), -1, -1); + LLEnvironment::instance().updateParcel(parcel->getLocalID(), day, -1, -1); } else if (where == ACTION_APPLY_REGION) { - LLEnvironment::instance().updateRegion(mEditDay->buildClone(), -1, -1); + LLEnvironment::instance().updateRegion(day, -1, -1); } else { @@ -1243,11 +1249,11 @@ void LLFloaterEditExtDayCycle::doApplyEnvironment(const std::string &where) } -void LLFloaterEditExtDayCycle::doApplyCommit() +void LLFloaterEditExtDayCycle::doApplyCommit(LLSettingsDay::ptr_t day) { if (!mCommitSignal.empty()) { - mCommitSignal(mEditDay->buildClone()); + mCommitSignal(day); closeFloater(); } diff --git a/indra/newview/llfloatereditextdaycycle.h b/indra/newview/llfloatereditextdaycycle.h index 76f7d705a2..f03a69c200 100644 --- a/indra/newview/llfloatereditextdaycycle.h +++ b/indra/newview/llfloatereditextdaycycle.h @@ -136,10 +136,10 @@ private: void onAssetLoaded(LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status); void doImportFromDisk(); - void doApplyCreateNewInventory(); - void doApplyUpdateInventory(); - void doApplyEnvironment(const std::string &where); - void doApplyCommit(); + void doApplyCreateNewInventory(const LLSettingsDay::ptr_t &day); + void doApplyUpdateInventory(const LLSettingsDay::ptr_t &day); + void doApplyEnvironment(const std::string &where, const LLSettingsDay::ptr_t &day); + void doApplyCommit(LLSettingsDay::ptr_t day); void onInventoryCreated(LLUUID asset_id, LLUUID inventory_id, LLSD results); void onInventoryUpdated(LLUUID asset_id, LLUUID inventory_id, LLSD results); diff --git a/indra/newview/llpanelenvironment.cpp b/indra/newview/llpanelenvironment.cpp index 825a38e8b2..d3325796fb 100644 --- a/indra/newview/llpanelenvironment.cpp +++ b/indra/newview/llpanelenvironment.cpp @@ -205,6 +205,10 @@ void LLPanelEnvironmentInfo::refresh() udpateApparentTimeOfDay(); +#if 1 + // hiding the controls until Rider can get the simulator code to adjust altitudes done. + getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(FALSE); +#else LLEnvironment::altitude_list_t altitudes = LLEnvironment::instance().getRegionAltitudes(); if (altitudes.size() > 0) { @@ -216,6 +220,7 @@ void LLPanelEnvironmentInfo::refresh() mAltitudes[alt_sliders[idx]] = AltitudeData(idx+1, idx, altitudes[idx+1]); } } +#endif } @@ -610,6 +615,11 @@ void LLPanelEnvironmentInfo::onPickerCommited(LLUUID asset_id) void LLPanelEnvironmentInfo::onEditCommited(LLSettingsDay::ptr_t newday) { + if (!newday) + { + LL_WARNS("ENVPANEL") << "Editor committed an empty day. Do nothing." << LL_ENDL; + return; + } size_t newhash(newday->getHash()); size_t oldhash((mCurrentEnvironment->mDayCycle) ? mCurrentEnvironment->mDayCycle->getHash() : 0); |