summaryrefslogtreecommitdiff
path: root/indra/newview/llpreviewscript.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpreviewscript.cpp')
-rw-r--r--indra/newview/llpreviewscript.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 5e81fa6402..379bc9871c 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -51,7 +51,7 @@
#include "llsdserialize.h"
#include "llslider.h"
#include "lltooldraganddrop.h"
-#include "llvfile.h"
+#include "llfilesystem.h"
#include "llagent.h"
#include "llmenugl.h"
@@ -1685,8 +1685,11 @@ void LLPreviewLSL::saveIfNeeded(bool sync /*= true*/)
{
std::string buffer(mScriptEd->mEditor->getText());
+ LLUUID old_asset_id = inv_item->getAssetUUID().isNull() ? mScriptEd->getAssetID() : inv_item->getAssetUUID();
+
LLResourceUploadInfo::ptr_t uploadInfo(std::make_shared<LLScriptAssetUpload>(mItemUUID, buffer,
- [](LLUUID itemId, LLUUID, LLUUID, LLSD response) {
+ [old_asset_id](LLUUID itemId, LLUUID, LLUUID, LLSD response) {
+ LLFileSystem::removeFile(old_asset_id, LLAssetType::AT_LSL_TEXT);
LLPreviewLSL::finishedLSLUpload(itemId, response);
}));
@@ -1696,8 +1699,8 @@ void LLPreviewLSL::saveIfNeeded(bool sync /*= true*/)
}
// static
-void LLPreviewLSL::onLoadComplete( LLVFS *vfs, const LLUUID& asset_uuid, LLAssetType::EType type,
- void* user_data, S32 status, LLExtStat ext_status)
+void LLPreviewLSL::onLoadComplete(const LLUUID& asset_uuid, LLAssetType::EType type,
+ void* user_data, S32 status, LLExtStat ext_status)
{
LL_DEBUGS() << "LLPreviewLSL::onLoadComplete: got uuid " << asset_uuid
<< LL_ENDL;
@@ -1707,7 +1710,7 @@ void LLPreviewLSL::onLoadComplete( LLVFS *vfs, const LLUUID& asset_uuid, LLAsset
{
if(0 == status)
{
- LLVFile file(vfs, asset_uuid, type);
+ LLFileSystem file(asset_uuid, type);
S32 file_length = file.getSize();
std::vector<char> buffer(file_length+1);
@@ -1734,6 +1737,7 @@ void LLPreviewLSL::onLoadComplete( LLVFS *vfs, const LLUUID& asset_uuid, LLAsset
}
preview->mScriptEd->setScriptName(script_name);
preview->mScriptEd->setEnableEditing(is_modifiable);
+ preview->mScriptEd->setAssetID(asset_uuid);
preview->mAssetStatus = PREVIEW_ASSET_LOADED;
}
else
@@ -1970,7 +1974,7 @@ void LLLiveLSLEditor::loadAsset()
}
// static
-void LLLiveLSLEditor::onLoadComplete(LLVFS *vfs, const LLUUID& asset_id,
+void LLLiveLSLEditor::onLoadComplete(const LLUUID& asset_id,
LLAssetType::EType type,
void* user_data, S32 status, LLExtStat ext_status)
{
@@ -1984,9 +1988,10 @@ void LLLiveLSLEditor::onLoadComplete(LLVFS *vfs, const LLUUID& asset_id,
{
if( LL_ERR_NOERR == status )
{
- instance->loadScriptText(vfs, asset_id, type);
+ instance->loadScriptText(asset_id, type);
instance->mScriptEd->setEnableEditing(TRUE);
instance->mAssetStatus = PREVIEW_ASSET_LOADED;
+ instance->mScriptEd->setAssetID(asset_id);
}
else
{
@@ -2010,9 +2015,9 @@ void LLLiveLSLEditor::onLoadComplete(LLVFS *vfs, const LLUUID& asset_id,
delete floater_key;
}
-void LLLiveLSLEditor::loadScriptText(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type)
+void LLLiveLSLEditor::loadScriptText(const LLUUID &uuid, LLAssetType::EType type)
{
- LLVFile file(vfs, uuid, type);
+ LLFileSystem file(uuid, type);
S32 file_length = file.getSize();
std::vector<char> buffer(file_length + 1);
file.read((U8*)&buffer[0], file_length);
@@ -2166,6 +2171,7 @@ void LLLiveLSLEditor::finishLSLUpload(LLUUID itemId, LLUUID taskId, LLUUID newAs
if (preview)
{
preview->mItem->setAssetUUID(newAssetId);
+ preview->mScriptEd->setAssetID(newAssetId);
// Bytecode save completed
if (response["compiled"])
@@ -2236,12 +2242,14 @@ void LLLiveLSLEditor::saveIfNeeded(bool sync /*= true*/)
if (!url.empty())
{
std::string buffer(mScriptEd->mEditor->getText());
+ LLUUID old_asset_id = mScriptEd->getAssetID();
LLResourceUploadInfo::ptr_t uploadInfo(std::make_shared<LLScriptAssetUpload>(mObjectUUID, mItemUUID,
monoChecked() ? LLScriptAssetUpload::MONO : LLScriptAssetUpload::LSL2,
isRunning, mScriptEd->getAssociatedExperience(), buffer,
- [isRunning](LLUUID itemId, LLUUID taskId, LLUUID newAssetId, LLSD response) {
- LLLiveLSLEditor::finishLSLUpload(itemId, taskId, newAssetId, response, isRunning);
+ [isRunning, old_asset_id](LLUUID itemId, LLUUID taskId, LLUUID newAssetId, LLSD response) {
+ LLFileSystem::removeFile(old_asset_id, LLAssetType::AT_LSL_TEXT);
+ LLLiveLSLEditor::finishLSLUpload(itemId, taskId, newAssetId, response, isRunning);
}));
LLViewerAssetUpload::EnqueueInventoryUpload(url, uploadInfo);