Merged in andreykproductengine/maint-eep (pull request #94)

SL-9670 and SL-9678

Approved-by: Maxim Nikolenko <maximnproductengine@lindenlab.com>
master
Rider Linden 2018-09-18 18:17:54 +00:00
commit c5283f63ab
2 changed files with 30 additions and 2 deletions

View File

@ -278,8 +278,6 @@ void LLFloaterEditExtDayCycle::onOpen(const LLSD& key)
}
else
{
mInventoryItem = nullptr;
mInventoryId.setNull();
mCanCopy = true;
mCanMod = true;
mMakeNoTrans = false;
@ -450,6 +448,8 @@ void LLFloaterEditExtDayCycle::setEditDayCycle(const LLSettingsDay::ptr_t &pday)
void LLFloaterEditExtDayCycle::setEditDefaultDayCycle()
{
mInventoryItem = nullptr;
mInventoryId.setNull();
LLSettingsVOBase::getSettingsAsset(LLSettingsDay::GetDefaultAssetId(),
[this](LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status, LLExtStat) { onAssetLoaded(asset_id, settings, status); });
}
@ -1066,6 +1066,13 @@ void LLFloaterEditExtDayCycle::loadInventoryItem(const LLUUID &inventoryId)
void LLFloaterEditExtDayCycle::onAssetLoaded(LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status)
{
if ((mInventoryItem && mInventoryItem->getAssetUUID() != asset_id)
|| (!mInventoryItem && LLSettingsDay::GetDefaultAssetId() != asset_id))
{
LL_WARNS("ENVDAYEDIT") << "Discarding obsolete asset callback" << LL_ENDL;
return;
}
if (!settings || status)
{
LLSD args;
@ -1085,6 +1092,9 @@ void LLFloaterEditExtDayCycle::onAssetLoaded(LLUUID asset_id, LLSettingsBase::pt
else
settings->setFlag(LLSettingsBase::FLAG_NOMOD);
if (mInventoryItem)
settings->setName(mInventoryItem->getName());
setEditDayCycle(std::dynamic_pointer_cast<LLSettingsDay>(settings));
}

View File

@ -292,12 +292,30 @@ void LLFloaterFixedEnvironment::checkAndConfirmSettingsLoss(LLFloaterFixedEnviro
void LLFloaterFixedEnvironment::onPickerCommitSetting(LLUUID asset_id)
{
mInventoryItem = NULL;
mInventoryId.setNull();
if (!mInventoryFloater.isDead())
{
LLFloaterSettingsPicker *picker = static_cast<LLFloaterSettingsPicker *>(mInventoryFloater.get());
if (picker)
{
mInventoryId = picker->findItemID(asset_id, false);
mInventoryItem = gInventory.getItem(mInventoryId);
}
}
LLSettingsVOBase::getSettingsAsset(asset_id,
[this](LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status, LLExtStat) { onAssetLoaded(asset_id, settings, status); });
}
void LLFloaterFixedEnvironment::onAssetLoaded(LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status)
{
if (mInventoryItem && mInventoryItem->getAssetUUID() != asset_id)
{
LL_WARNS("ENVIRONMENT") << "Discarding obsolete asset callback" << LL_ENDL;
return;
}
if (!settings || status)
{
LLSD args;