diff options
| author | Rider Linden <rider@lindenlab.com> | 2015-07-23 13:06:24 -0700 | 
|---|---|---|
| committer | Rider Linden <rider@lindenlab.com> | 2015-07-23 13:06:24 -0700 | 
| commit | 7882396811fdf8b297f6d0c92d8e1e37859fde9d (patch) | |
| tree | 73933cec5e51e5666b0077013b22d5714a33ce0d | |
| parent | a035d78e25551a77a7a1513c3cee8b9dca117540 (diff) | |
Remove unused code and llassetuploadresponders files.
| -rwxr-xr-x | indra/newview/CMakeLists.txt | 2 | ||||
| -rwxr-xr-x | indra/newview/llassetuploadresponders.cpp | 1153 | ||||
| -rwxr-xr-x | indra/newview/llassetuploadresponders.h | 158 | ||||
| -rwxr-xr-x | indra/newview/llcompilequeue.cpp | 1 | ||||
| -rwxr-xr-x | indra/newview/llfloaterreporter.cpp | 1 | ||||
| -rwxr-xr-x | indra/newview/llmeshrepository.cpp | 134 | ||||
| -rwxr-xr-x | indra/newview/llpostcard.cpp | 1 | ||||
| -rwxr-xr-x | indra/newview/llpreviewgesture.cpp | 1 | ||||
| -rwxr-xr-x | indra/newview/llpreviewnotecard.cpp | 1 | ||||
| -rwxr-xr-x | indra/newview/llpreviewscript.cpp | 1 | ||||
| -rwxr-xr-x | indra/newview/llviewermenufile.cpp | 1 | ||||
| -rwxr-xr-x | indra/newview/llviewermenufile.h | 10 | 
12 files changed, 134 insertions, 1330 deletions
| diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index e79fa8b084..fd4f9f7f45 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -123,7 +123,6 @@ set(viewer_SOURCE_FILES      llappearancemgr.cpp      llappviewer.cpp      llappviewerlistener.cpp -    llassetuploadresponders.cpp      llattachmentsmgr.cpp      llaudiosourcevo.cpp      llautoreplace.cpp @@ -734,7 +733,6 @@ set(viewer_HEADER_FILES      llappearancemgr.h      llappviewer.h      llappviewerlistener.h -    llassetuploadresponders.h      llattachmentsmgr.h      llaudiosourcevo.h      llautoreplace.h diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp deleted file mode 100755 index f62c57b2b3..0000000000 --- a/indra/newview/llassetuploadresponders.cpp +++ /dev/null @@ -1,1153 +0,0 @@ -/** - * @file llassetuploadresponders.cpp - * @brief Processes responses received for asset upload requests. - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */  - -#include "llviewerprecompiledheaders.h" - -#include "llassetuploadresponders.h" - -// viewer includes -#include "llagent.h" -#include "llcompilequeue.h" -#include "llbuycurrencyhtml.h" -#include "llfilepicker.h" -#include "llinventorydefines.h" -#include "llinventoryobserver.h" -#include "llinventorypanel.h" -#include "llpermissionsflags.h" -#include "llpreviewnotecard.h" -#include "llpreviewscript.h" -#include "llpreviewgesture.h" -#include "llgesturemgr.h" -#include "llstatusbar.h"		// sendMoneyBalanceRequest() -#include "llsdserialize.h" -#include "lluploaddialog.h" -#include "llviewerobject.h" -#include "llviewercontrol.h" -#include "llviewerobjectlist.h" -#include "llviewermenufile.h" -#include "llviewertexlayer.h" -#include "llviewerwindow.h" -#include "lltrans.h" - -// library includes -#include "lldir.h" -#include "lleconomy.h" -#include "llfloaterreg.h" -#include "llfocusmgr.h" -#include "llnotificationsutil.h" -#include "llscrolllistctrl.h" -#include "llsdserialize.h" -#include "llsdutil.h" -#include "llvfs.h" - -void dialog_refresh_all(); - -void on_new_single_inventory_upload_complete( -	LLAssetType::EType asset_type, -	LLInventoryType::EType inventory_type, -	const std::string inventory_type_string, -	const LLUUID& item_folder_id, -	const std::string& item_name, -	const std::string& item_description, -	const LLSD& server_response, -	S32 upload_price) -{ -	bool success = false; - -	if ( upload_price > 0 ) -	{ -		// this upload costed us L$, update our balance -		// and display something saying that it cost L$ -		LLStatusBar::sendMoneyBalanceRequest(); - -		LLSD args; -		args["AMOUNT"] = llformat("%d", upload_price); -		LLNotificationsUtil::add("UploadPayment", args); -	} - -	if( item_folder_id.notNull() ) -	{ -		U32 everyone_perms = PERM_NONE; -		U32 group_perms = PERM_NONE; -		U32 next_owner_perms = PERM_ALL; -		if( server_response.has("new_next_owner_mask") ) -		{ -			// The server provided creation perms so use them. -			// Do not assume we got the perms we asked for in -			// since the server may not have granted them all. -			everyone_perms = server_response["new_everyone_mask"].asInteger(); -			group_perms = server_response["new_group_mask"].asInteger(); -			next_owner_perms = server_response["new_next_owner_mask"].asInteger(); -		} -		else  -		{ -			// The server doesn't provide creation perms -			// so use old assumption-based perms. -			if( inventory_type_string != "snapshot") -			{ -				next_owner_perms = PERM_MOVE | PERM_TRANSFER; -			} -		} - -		LLPermissions new_perms; -		new_perms.init( -			gAgent.getID(), -			gAgent.getID(), -			LLUUID::null, -			LLUUID::null); - -		new_perms.initMasks( -			PERM_ALL, -			PERM_ALL, -			everyone_perms, -			group_perms, -			next_owner_perms); - -		U32 inventory_item_flags = 0; -		if (server_response.has("inventory_flags")) -		{ -			inventory_item_flags = (U32) server_response["inventory_flags"].asInteger(); -			if (inventory_item_flags != 0) -			{ -				LL_INFOS() << "inventory_item_flags " << inventory_item_flags << LL_ENDL; -			} -		} -		S32 creation_date_now = time_corrected(); -		LLPointer<LLViewerInventoryItem> item = new LLViewerInventoryItem( -			server_response["new_inventory_item"].asUUID(), -			item_folder_id, -			new_perms, -			server_response["new_asset"].asUUID(), -			asset_type, -			inventory_type, -			item_name, -			item_description, -			LLSaleInfo::DEFAULT, -			inventory_item_flags, -			creation_date_now); - -		gInventory.updateItem(item); -		gInventory.notifyObservers(); -		success = true; - -		// Show the preview panel for textures and sounds to let -		// user know that the image (or snapshot) arrived intact. -		LLInventoryPanel* panel = LLInventoryPanel::getActiveInventoryPanel(); -		if ( panel ) -		{ -			LLFocusableElement* focus = gFocusMgr.getKeyboardFocus(); - -			panel->setSelection( -				server_response["new_inventory_item"].asUUID(), -				TAKE_FOCUS_NO); - -			// restore keyboard focus -			gFocusMgr.setKeyboardFocus(focus); -		} -	} -	else -	{ -		LL_WARNS() << "Can't find a folder to put it in" << LL_ENDL; -	} - -	// remove the "Uploading..." message -	LLUploadDialog::modalUploadFinished();	 - -	// Let the Snapshot floater know we have finished uploading a snapshot to inventory. -	LLFloater* floater_snapshot = LLFloaterReg::findInstance("snapshot"); -	if (asset_type == LLAssetType::AT_TEXTURE && floater_snapshot) -	{ -		floater_snapshot->notify(LLSD().with("set-finished", LLSD().with("ok", success).with("msg", "inventory"))); -	} -} - -LLAssetUploadResponder::LLAssetUploadResponder(const LLSD &post_data, -											   const LLUUID& vfile_id, -											   LLAssetType::EType asset_type) -	: LLHTTPClient::Responder(), -	  mPostData(post_data), -	  mVFileID(vfile_id), -	  mAssetType(asset_type) -{ -	if (!gVFS->getExists(vfile_id, asset_type)) -	{ -		LL_WARNS() << "LLAssetUploadResponder called with nonexistant vfile_id" << LL_ENDL; -		mVFileID.setNull(); -		mAssetType = LLAssetType::AT_NONE; -		return; -	} -} - -LLAssetUploadResponder::LLAssetUploadResponder( -	const LLSD &post_data, -	const std::string& file_name,  -	LLAssetType::EType asset_type) -	: LLHTTPClient::Responder(), -	  mPostData(post_data), -	  mFileName(file_name), -	  mAssetType(asset_type) -{ -} - -LLAssetUploadResponder::~LLAssetUploadResponder() -{ -	if (!mFileName.empty()) -	{ -		// Delete temp file -		LLFile::remove(mFileName); -	} -} - -// virtual -void LLAssetUploadResponder::httpFailure() -{ -	// *TODO: Add adaptive retry policy? -	LL_WARNS() << dumpResponse() << LL_ENDL; -	std::string reason; -	if (isHttpClientErrorStatus(getStatus())) -	{ -		reason = "Error in upload request.  Please visit " -			"http://secondlife.com/support for help fixing this problem."; -	} -	else -	{ -		reason = "The server is experiencing unexpected " -			"difficulties."; -	} -	LLSD args; -	args["FILE"] = (mFileName.empty() ? mVFileID.asString() : mFileName); -	args["REASON"] = reason; -	LLNotificationsUtil::add("CannotUploadReason", args); - -	// unfreeze script preview -	if(mAssetType == LLAssetType::AT_LSL_TEXT) -	{ -		LLPreviewLSL* preview = LLFloaterReg::findTypedInstance<LLPreviewLSL>("preview_script", mPostData["item_id"]); -		if (preview) -		{ -			LLSD errors; -			errors.append(LLTrans::getString("UploadFailed") + reason); -			preview->callbackLSLCompileFailed(errors); -		} -	} - -	LLUploadDialog::modalUploadFinished(); -	LLFilePicker::instance().reset();  // unlock file picker when bulk upload fails -} - -//virtual  -void LLAssetUploadResponder::httpSuccess() -{ -	const LLSD& content = getContent(); -	if (!content.isMap()) -	{ -		failureResult(HTTP_INTERNAL_ERROR, "Malformed response contents", content); -		return; -	} -	LL_DEBUGS() << "LLAssetUploadResponder::result from capabilities" << LL_ENDL; - -	const std::string& state = content["state"].asStringRef(); - -	if (state == "upload") -	{ -		uploadUpload(content); -	} -	else if (state == "complete") -	{ -		// rename file in VFS with new asset id -		if (mFileName.empty()) -		{ -			// rename the file in the VFS to the actual asset id -			// LL_INFOS() << "Changing uploaded asset UUID to " << content["new_asset"].asUUID() << LL_ENDL; -			gVFS->renameFile(mVFileID, mAssetType, content["new_asset"].asUUID(), mAssetType); -		} -		uploadComplete(content); -	} -	else -	{ -		uploadFailure(content); -	} -} - -void LLAssetUploadResponder::uploadUpload(const LLSD& content) -{ -	const std::string& uploader = content["uploader"].asStringRef(); -	if (mFileName.empty()) -	{ -		LLHTTPClient::postFile(uploader, mVFileID, mAssetType, this); -	} -	else -	{ -		LLHTTPClient::postFile(uploader, mFileName, this); -	} -} - -void LLAssetUploadResponder::uploadFailure(const LLSD& content) -{ -	LL_WARNS() << dumpResponse() << LL_ENDL; - -	// unfreeze script preview -	if(mAssetType == LLAssetType::AT_LSL_TEXT) -	{ -		LLPreviewLSL* preview = LLFloaterReg::findTypedInstance<LLPreviewLSL>("preview_script", mPostData["item_id"]); -		if (preview) -		{ -			LLSD errors; -			errors.append(LLTrans::getString("UploadFailed") + content["message"].asString()); -			preview->callbackLSLCompileFailed(errors); -		} -	} - -	// remove the "Uploading..." message -	LLUploadDialog::modalUploadFinished(); - -	LLFloater* floater_snapshot = LLFloaterReg::findInstance("snapshot"); -	if (floater_snapshot) -	{ -		floater_snapshot->notify(LLSD().with("set-finished", LLSD().with("ok", false).with("msg", "inventory"))); -	} -	 -	const std::string& reason = content["state"].asStringRef(); -	// deal with L$ errors -	if (reason == "insufficient funds") -	{ -		S32 price = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); -		LLStringUtil::format_map_t args; -		args["AMOUNT"] = llformat("%d", price); -		LLBuyCurrencyHTML::openCurrencyFloater( LLTrans::getString("uploading_costs", args), price ); -	} -	else -	{ -		LLSD args; -		args["FILE"] = (mFileName.empty() ? mVFileID.asString() : mFileName); -		args["REASON"] = content["message"].asString(); -		LLNotificationsUtil::add("CannotUploadReason", args); -	} -} - -void LLAssetUploadResponder::uploadComplete(const LLSD& content) -{ -} - -#if 0 -LLNewAgentInventoryResponder::LLNewAgentInventoryResponder( -	const LLSD& post_data, -	const LLUUID& vfile_id, -	LLAssetType::EType asset_type) -	: LLAssetUploadResponder(post_data, vfile_id, asset_type) -{ -} - -LLNewAgentInventoryResponder::LLNewAgentInventoryResponder( -	const LLSD& post_data, -	const std::string& file_name, -	LLAssetType::EType asset_type) -	: LLAssetUploadResponder(post_data, file_name, asset_type) -{ -} - -// virtual -void LLNewAgentInventoryResponder::httpFailure() -{ -	LLAssetUploadResponder::httpFailure(); -	//LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, LLUUID(), FALSE); -} - - -//virtual  -void LLNewAgentInventoryResponder::uploadFailure(const LLSD& content) -{ -	LLAssetUploadResponder::uploadFailure(content); - -	//LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], FALSE); -} - -//virtual  -void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content) -{ -	LL_DEBUGS() << "LLNewAgentInventoryResponder::result from capabilities" << LL_ENDL; -	 -	//std::ostringstream llsdxml; -	//LLSDSerialize::toXML(content, llsdxml); -	//LL_INFOS() << "upload complete content:\n " << llsdxml.str() << LL_ENDL; - -	LLAssetType::EType asset_type = LLAssetType::lookup(mPostData["asset_type"].asString()); -	LLInventoryType::EType inventory_type = LLInventoryType::lookup(mPostData["inventory_type"].asString()); -	S32 expected_upload_cost = 0; - -	// Update L$ and ownership credit information -	// since it probably changed on the server -	if (asset_type == LLAssetType::AT_TEXTURE || -		asset_type == LLAssetType::AT_SOUND || -		asset_type == LLAssetType::AT_ANIMATION || -		asset_type == LLAssetType::AT_MESH) -	{ -		expected_upload_cost =  -			LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); -	} - -	on_new_single_inventory_upload_complete( -		asset_type, -		inventory_type, -		mPostData["asset_type"].asString(), -		mPostData["folder_id"].asUUID(), -		mPostData["name"], -		mPostData["description"], -		content, -		expected_upload_cost); - -	// continue uploading for bulk uploads - -	// *FIX: This is a pretty big hack. What this does is check the -	// file picker if there are any more pending uploads. If so, -	// upload that file. -	std::string next_file = LLFilePicker::instance().getNextFile(); -	if(!next_file.empty()) -	{ -		std::string name = gDirUtilp->getBaseFileName(next_file, true); - -		std::string asset_name = name; -		LLStringUtil::replaceNonstandardASCII( asset_name, '?' ); -		LLStringUtil::replaceChar(asset_name, '|', '?'); -		LLStringUtil::stripNonprintable(asset_name); -		LLStringUtil::trim(asset_name); - -		// Continuing the horrible hack above, we need to extract the originally requested permissions data, if any, -		// and use them for each next file to be uploaded. Note the requested perms are not the same as the -		U32 everyone_perms = -			content.has("new_everyone_mask") ? -			content["new_everyone_mask"].asInteger() : -			PERM_NONE; - -		U32 group_perms = -			content.has("new_group_mask") ? -			content["new_group_mask"].asInteger() : -			PERM_NONE; - -		U32 next_owner_perms = -			content.has("new_next_owner_mask") ? -			content["new_next_owner_mask"].asInteger() : -			PERM_NONE; - -		std::string display_name = LLStringUtil::null; -		LLAssetStorage::LLStoreAssetCallback callback = NULL; -		void *userdata = NULL; - -		upload_new_resource( -			next_file, -			asset_name, -			asset_name, -			0, -			LLFolderType::FT_NONE, -			LLInventoryType::IT_NONE, -			next_owner_perms, -			group_perms, -			everyone_perms, -			display_name, -			callback, -			LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(), -			userdata); -	} - -	//LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], TRUE); -} -#endif - -#if 0 -LLUpdateAgentInventoryResponder::LLUpdateAgentInventoryResponder( -	const LLSD& post_data, -	const LLUUID& vfile_id, -	LLAssetType::EType asset_type) -	: LLAssetUploadResponder(post_data, vfile_id, asset_type) -{ -} - -LLUpdateAgentInventoryResponder::LLUpdateAgentInventoryResponder( -	const LLSD& post_data, -	const std::string& file_name, -	LLAssetType::EType asset_type) -	: LLAssetUploadResponder(post_data, file_name, asset_type) -{ -} - -//virtual  -void LLUpdateAgentInventoryResponder::uploadComplete(const LLSD& content) -{ -	LL_INFOS() << "LLUpdateAgentInventoryResponder::result from capabilities" << LL_ENDL; -	LLUUID item_id = mPostData["item_id"]; - -	LLViewerInventoryItem* item = (LLViewerInventoryItem*)gInventory.getItem(item_id); -	if(!item) -	{ -		LL_WARNS() << "Inventory item for " << mVFileID -			<< " is no longer in agent inventory." << LL_ENDL; -		return; -	} - -	// Update viewer inventory item -	LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item); -	new_item->setAssetUUID(content["new_asset"].asUUID()); -	gInventory.updateItem(new_item); -	gInventory.notifyObservers(); - -	LL_INFOS() << "Inventory item " << item->getName() << " saved into " -		<< content["new_asset"].asString() << LL_ENDL; - -	LLInventoryType::EType inventory_type = new_item->getInventoryType(); -	switch(inventory_type) -	{ -	  case LLInventoryType::IT_NOTECARD: -	  { -		  // Update the UI with the new asset. -		  LLPreviewNotecard* nc = LLFloaterReg::findTypedInstance<LLPreviewNotecard>("preview_notecard", LLSD(item_id)); -		  if(nc) -		  { -			  // *HACK: we have to delete the asset in the VFS so -			  // that the viewer will redownload it. This is only -			  // really necessary if the asset had to be modified by -			  // the uploader, so this can be optimized away in some -			  // cases. A better design is to have a new uuid if the -			  // script actually changed the asset. -			  if(nc->hasEmbeddedInventory()) -			  { -				  gVFS->removeFile(content["new_asset"].asUUID(), LLAssetType::AT_NOTECARD); -			  } -			  nc->refreshFromInventory(new_item->getUUID()); -		  } -		  break; -	  } -	  case LLInventoryType::IT_LSL: -	  { -		  // Find our window and close it if requested. -		  LLPreviewLSL* preview = LLFloaterReg::findTypedInstance<LLPreviewLSL>("preview_script", LLSD(item_id)); -		  if (preview) -		  { -			  // Bytecode save completed -			  if (content["compiled"]) -			  { -				  preview->callbackLSLCompileSucceeded(); -			  } -			  else -			  { -				  preview->callbackLSLCompileFailed(content["errors"]); -			  } -		  } -		  break; -	  } - -	  case LLInventoryType::IT_GESTURE: -	  { -		  // If this gesture is active, then we need to update the in-memory -		  // active map with the new pointer.				 -		  if (LLGestureMgr::instance().isGestureActive(item_id)) -		  { -			  LLUUID asset_id = new_item->getAssetUUID(); -			  LLGestureMgr::instance().replaceGesture(item_id, asset_id); -			  gInventory.notifyObservers(); -		  }				 - -		  //gesture will have a new asset_id -		  LLPreviewGesture* previewp = LLFloaterReg::findTypedInstance<LLPreviewGesture>("preview_gesture", LLSD(item_id)); -		  if(previewp) -		  { -			  previewp->onUpdateSucceeded();	 -		  }			 -				 -		  break; -	  } -	  case LLInventoryType::IT_WEARABLE: -	  default: -		break; -	} -} -#endif - -#if 0 -LLUpdateTaskInventoryResponder::LLUpdateTaskInventoryResponder(const LLSD& post_data, -																 const LLUUID& vfile_id, -																 LLAssetType::EType asset_type) -: LLAssetUploadResponder(post_data, vfile_id, asset_type) -{ -} - -LLUpdateTaskInventoryResponder::LLUpdateTaskInventoryResponder(const LLSD& post_data, -															   const std::string& file_name,  -															   LLAssetType::EType asset_type) -: LLAssetUploadResponder(post_data, file_name, asset_type) -{ -} - -LLUpdateTaskInventoryResponder::LLUpdateTaskInventoryResponder(const LLSD& post_data, -															   const std::string& file_name, -															   const LLUUID& queue_id,  -															   LLAssetType::EType asset_type) -: LLAssetUploadResponder(post_data, file_name, asset_type), mQueueId(queue_id) -{ -} - -//virtual  -void LLUpdateTaskInventoryResponder::uploadComplete(const LLSD& content) -{ -	LL_INFOS() << "LLUpdateTaskInventoryResponder::result from capabilities" << LL_ENDL; -	LLUUID item_id = mPostData["item_id"]; -	LLUUID task_id = mPostData["task_id"]; - -	dialog_refresh_all(); -	 -	switch(mAssetType) -	{ -	  case LLAssetType::AT_NOTECARD: -	  { -		  // Update the UI with the new asset. -		  LLPreviewNotecard* nc = LLFloaterReg::findTypedInstance<LLPreviewNotecard>("preview_notecard", LLSD(item_id)); -		  if(nc) -		  { -			  // *HACK: we have to delete the asset in the VFS so -			  // that the viewer will redownload it. This is only -			  // really necessary if the asset had to be modified by -			  // the uploader, so this can be optimized away in some -			  // cases. A better design is to have a new uuid if the -			  // script actually changed the asset. -			  if(nc->hasEmbeddedInventory()) -			  { -				  gVFS->removeFile(content["new_asset"].asUUID(), -								   LLAssetType::AT_NOTECARD); -			  } -			  nc->setAssetId(content["new_asset"].asUUID()); -			  nc->refreshFromInventory(); -		  } -		  break; -	  } -	  case LLAssetType::AT_LSL_TEXT: -	  { -		  if(mQueueId.notNull()) -		  { -			  LLFloaterCompileQueue* queue = LLFloaterReg::findTypedInstance<LLFloaterCompileQueue>("compile_queue", mQueueId); -			  if(NULL != queue) -			  { -				  queue->removeItemByItemID(item_id); -			  } -		  } -		  else -		  { -			  LLSD floater_key; -			  floater_key["taskid"] = task_id; -			  floater_key["itemid"] = item_id; -			  LLLiveLSLEditor* preview = LLFloaterReg::findTypedInstance<LLLiveLSLEditor>("preview_scriptedit", floater_key); -			  if (preview) -			  { -				  // Bytecode save completed -				  if (content["compiled"]) -				  { -					  preview->callbackLSLCompileSucceeded(task_id, item_id, mPostData["is_script_running"]); -				  } -				  else -				  { -					  preview->callbackLSLCompileFailed(content["errors"]); -				  } -			  } -		  } -		  break; -	  } -	  default: -		break; -	} -} -#endif - -#if 0 -///////////////////////////////////////////////////// -// LLNewAgentInventoryVariablePriceResponder::Impl // -///////////////////////////////////////////////////// -class LLNewAgentInventoryVariablePriceResponder::Impl -{ -public: -	Impl( -		const LLUUID& vfile_id, -		LLAssetType::EType asset_type, -		const LLSD& inventory_data) : -		mVFileID(vfile_id), -		mAssetType(asset_type), -		mInventoryData(inventory_data), -		mFileName("") -	{ -		if (!gVFS->getExists(vfile_id, asset_type)) -		{ -			LL_WARNS() -				<< "LLAssetUploadResponder called with nonexistant " -				<< "vfile_id " << vfile_id << LL_ENDL; -			mVFileID.setNull(); -			mAssetType = LLAssetType::AT_NONE; -		} -	} - -	Impl( -		const std::string& file_name, -		LLAssetType::EType asset_type, -		const LLSD& inventory_data) : -		mFileName(file_name), -		mAssetType(asset_type), -		mInventoryData(inventory_data) -	{ -		mVFileID.setNull(); -	} - -	std::string getFilenameOrIDString() const -	{ -		return (mFileName.empty() ? mVFileID.asString() : mFileName); -	} - -	LLUUID getVFileID() const -	{ -		return mVFileID; -	} - -	std::string getFilename() const -	{ -		return mFileName; -	} - -	LLAssetType::EType getAssetType() const -	{ -		return mAssetType; -	} - -	LLInventoryType::EType getInventoryType() const -	{ -		return LLInventoryType::lookup( -			mInventoryData["inventory_type"].asString()); -	} - -	std::string getInventoryTypeString() const -	{ -		return mInventoryData["inventory_type"].asString(); -	} - -	LLUUID getFolderID() const -	{ -		return mInventoryData["folder_id"].asUUID(); -	} - -	std::string getItemName() const -	{ -		return mInventoryData["name"].asString(); -	} - -	std::string getItemDescription() const -	{ -		return mInventoryData["description"].asString(); -	} - -	void displayCannotUploadReason(const std::string& reason) -	{ -		LLSD args; -		args["FILE"] = getFilenameOrIDString(); -		args["REASON"] = reason; - - -		LLNotificationsUtil::add("CannotUploadReason", args); -		LLUploadDialog::modalUploadFinished(); -	} - -	void onApplicationLevelError(const LLSD& error) -	{ -		static const std::string _IDENTIFIER = "identifier"; - -		static const std::string _INSUFFICIENT_FUNDS = -			"NewAgentInventory_InsufficientLindenDollarBalance"; -		static const std::string _MISSING_REQUIRED_PARAMETER = -			"NewAgentInventory_MissingRequiredParamater"; -		static const std::string _INVALID_REQUEST_BODY = -			"NewAgentInventory_InvalidRequestBody"; -		static const std::string _RESOURCE_COST_DIFFERS = -			"NewAgentInventory_ResourceCostDiffers"; - -		static const std::string _MISSING_PARAMETER = "missing_parameter"; -		static const std::string _INVALID_PARAMETER = "invalid_parameter"; -		static const std::string _MISSING_RESOURCE = "missing_resource"; -		static const std::string _INVALID_RESOURCE = "invalid_resource"; - -		// TODO* Add the other error_identifiers - -		std::string error_identifier = error[_IDENTIFIER].asString(); - -		// TODO*: Pull these user visible strings from an xml file -		// to be localized -		if ( _INSUFFICIENT_FUNDS == error_identifier ) -		{ -			displayCannotUploadReason("You do not have a sufficient L$ balance to complete this upload."); -		} -		else if ( _MISSING_REQUIRED_PARAMETER == error_identifier ) -		{ -			// Missing parameters -			if (error.has(_MISSING_PARAMETER) ) -			{ -				std::string message =  -					"Upload request was missing required parameter '[P]'"; -				LLStringUtil::replaceString( -					message, -					"[P]", -					error[_MISSING_PARAMETER].asString()); - -				displayCannotUploadReason(message); -			} -			else -			{ -				std::string message =  -					"Upload request was missing a required parameter"; -				displayCannotUploadReason(message);					 -			} -		} -		else if ( _INVALID_REQUEST_BODY == error_identifier ) -		{ -			// Invalid request body, check to see if  -			// a particular parameter was invalid -			if ( error.has(_INVALID_PARAMETER) ) -			{ -				std::string message = "Upload parameter '[P]' is invalid."; -				LLStringUtil::replaceString( -					message, -					"[P]", -					error[_INVALID_PARAMETER].asString()); - -				// See if the server also responds with what resource -				// is missing. -				if ( error.has(_MISSING_RESOURCE) ) -				{ -					message += "\nMissing resource '[R]'."; - -					LLStringUtil::replaceString( -						message, -						"[R]", -						error[_MISSING_RESOURCE].asString()); -				} -				else if ( error.has(_INVALID_RESOURCE) ) -				{ -					message += "\nInvalid resource '[R]'."; - -					LLStringUtil::replaceString( -						message, -						"[R]", -						error[_INVALID_RESOURCE].asString()); -				} - -				displayCannotUploadReason(message); -			} -			else -			{ -				std::string message = "Upload request was malformed"; -				displayCannotUploadReason(message);					 -			} -		} -		else if ( _RESOURCE_COST_DIFFERS == error_identifier ) -		{ -			displayCannotUploadReason("The resource cost associated with this upload is not consistent with the server."); -		} -		else -		{ -			displayCannotUploadReason("Unknown Error"); -		} -	} - -	void onTransportError() -	{ -		displayCannotUploadReason( -				"The server is experiencing unexpected difficulties."); -	} - -	void onTransportError(const LLSD& error) -	{ -		static const std::string _IDENTIFIER = "identifier"; - -		static const std::string _SERVER_ERROR_AFTER_CHARGE = -			"NewAgentInventory_ServerErrorAfterCharge"; - -		std::string error_identifier = error[_IDENTIFIER].asString(); - -		// TODO*: Pull the user visible strings from an xml file -		// to be localized - -		if ( _SERVER_ERROR_AFTER_CHARGE == error_identifier ) -		{ -			displayCannotUploadReason( -				"The server is experiencing unexpected difficulties.  You may have been charged for the upload."); -		} -		else -		{ -			displayCannotUploadReason( -				"The server is experiencing unexpected difficulties."); -		} -	} - -	bool uploadConfirmationCallback( -		const LLSD& notification, -		const LLSD& response, -		LLPointer<LLNewAgentInventoryVariablePriceResponder> responder) -	{ -		S32 option; -		std::string confirmation_url; - -		option = LLNotificationsUtil::getSelectedOption( -			notification, -			response); - -		confirmation_url = -			notification["payload"]["confirmation_url"].asString(); - -		// Yay!  We are confirming or cancelling our upload -		switch(option) -		{ -		case 0: -		    { -				confirmUpload(confirmation_url, responder); -			} -			break; -		case 1: -		default: -			break; -		} - -		return false; -	} - -	void confirmUpload( -		const std::string& confirmation_url, -		LLPointer<LLNewAgentInventoryVariablePriceResponder> responder) -	{ -		if ( getFilename().empty() ) -		{ -			// we have no filename, use virtual file ID instead -			LLHTTPClient::postFile( -				confirmation_url, -				getVFileID(), -				getAssetType(), -				responder); -		} -		else -		{ -			LLHTTPClient::postFile( -				confirmation_url, -				getFilename(), -				responder); -		} -	} - - -private: -	std::string mFileName; - -	LLSD mInventoryData; -	LLAssetType::EType mAssetType; -	LLUUID mVFileID; -}; - -/////////////////////////////////////////////// -// LLNewAgentInventoryVariablePriceResponder // -/////////////////////////////////////////////// -LLNewAgentInventoryVariablePriceResponder::LLNewAgentInventoryVariablePriceResponder( -	const LLUUID& vfile_id, -	LLAssetType::EType asset_type, -	const LLSD& inventory_info) -{ -	mImpl = new Impl( -		vfile_id, -		asset_type, -		inventory_info); -} - -LLNewAgentInventoryVariablePriceResponder::LLNewAgentInventoryVariablePriceResponder( -	const std::string& file_name, -	LLAssetType::EType asset_type, -	const LLSD& inventory_info) -{ -	mImpl = new Impl( -		file_name, -		asset_type, -		inventory_info); -} - -LLNewAgentInventoryVariablePriceResponder::~LLNewAgentInventoryVariablePriceResponder() -{ -	delete mImpl; -} - -void LLNewAgentInventoryVariablePriceResponder::httpFailure() -{ -	const LLSD& content = getContent(); -	LL_WARNS("Upload") << dumpResponse() << LL_ENDL; - -	static const std::string _ERROR = "error"; -	if ( content.has(_ERROR) ) -	{ -		mImpl->onTransportError(content[_ERROR]); -	} -	else -	{ -		mImpl->onTransportError(); -	} -} - -void LLNewAgentInventoryVariablePriceResponder::httpSuccess() -{ -	const LLSD& content = getContent(); -	if (!content.isMap()) -	{ -		failureResult(HTTP_INTERNAL_ERROR, "Malformed response contents", content); -		return; -	} -	// Parse out application level errors and the appropriate -	// responses for them -	static const std::string _ERROR = "error"; -	static const std::string _STATE = "state"; - -	static const std::string _COMPLETE = "complete"; -	static const std::string _CONFIRM_UPLOAD = "confirm_upload"; - -	static const std::string _UPLOAD_PRICE = "upload_price"; -	static const std::string _RESOURCE_COST = "resource_cost"; -	static const std::string _RSVP = "rsvp"; - -	// Check for application level errors -	if ( content.has(_ERROR) ) -	{ -		LL_WARNS("Upload") << dumpResponse() << LL_ENDL; -		onApplicationLevelError(content[_ERROR]); -		return; -	} - -	std::string state = content[_STATE]; -	LLAssetType::EType asset_type = mImpl->getAssetType(); - -	if ( _COMPLETE == state ) -	{ -		// rename file in VFS with new asset id -		if (mImpl->getFilename().empty()) -		{ -			// rename the file in the VFS to the actual asset id -			// LL_INFOS() << "Changing uploaded asset UUID to " << content["new_asset"].asUUID() << LL_ENDL; -			gVFS->renameFile( -				mImpl->getVFileID(), -				asset_type, -				content["new_asset"].asUUID(), -				asset_type); -		} - - 		on_new_single_inventory_upload_complete( - 			asset_type, - 			mImpl->getInventoryType(), -			mImpl->getInventoryTypeString(), -			mImpl->getFolderID(), -			mImpl->getItemName(), -			mImpl->getItemDescription(), -			content, -			content[_UPLOAD_PRICE].asInteger()); - -		// TODO* Add bulk (serial) uploading or add -		// a super class of this that does so -	} -	else if ( _CONFIRM_UPLOAD == state ) -	{ -		showConfirmationDialog( -			content[_UPLOAD_PRICE].asInteger(), -			content[_RESOURCE_COST].asInteger(), -			content[_RSVP].asString()); -	} -	else -	{ -		LL_WARNS("Upload") << dumpResponse() << LL_ENDL; -		onApplicationLevelError(""); -	} -} - -void LLNewAgentInventoryVariablePriceResponder::onApplicationLevelError( -	const LLSD& error) -{ -	mImpl->onApplicationLevelError(error); -} - -void LLNewAgentInventoryVariablePriceResponder::showConfirmationDialog( -	S32 upload_price, -	S32 resource_cost, -	const std::string& confirmation_url) -{ -	if ( 0 == upload_price ) -	{ -		// don't show confirmation dialog for free uploads, I mean, -		// they're free! - -		// The creating of a new instrusive_ptr(this) -		// creates a new boost::intrusive_ptr -		// which is a copy of this.  This code is required because -		// 'this' is always of type Class* and not the intrusive_ptr, -		// and thus, a reference to 'this' is not registered -		// by using just plain 'this'. - -		// Since LLNewAgentInventoryVariablePriceResponder is a -		// reference counted class, it is possible (since the -		// reference to a plain 'this' would be missed here) that, -		// when using plain ol' 'this', that this object -		// would be deleted before the callback is triggered -		// and cause sadness. -		mImpl->confirmUpload( -			confirmation_url, -			LLPointer<LLNewAgentInventoryVariablePriceResponder>(this)); -	} -	else -	{ -		LLSD substitutions; -		LLSD payload; - -		substitutions["PRICE"] = upload_price; - -		payload["confirmation_url"] = confirmation_url; - -		// The creating of a new instrusive_ptr(this) -		// creates a new boost::intrusive_ptr -		// which is a copy of this.  This code is required because -		// 'this' is always of type Class* and not the intrusive_ptr, -		// and thus, a reference to 'this' is not registered -		// by using just plain 'this'. - -		// Since LLNewAgentInventoryVariablePriceResponder is a -		// reference counted class, it is possible (since the -		// reference to a plain 'this' would be missed here) that, -		// when using plain ol' 'this', that this object -		// would be deleted before the callback is triggered -		// and cause sadness. -		LLNotificationsUtil::add( -			"UploadCostConfirmation", -			substitutions, -			payload, -			boost::bind( -				&LLNewAgentInventoryVariablePriceResponder::Impl::uploadConfirmationCallback, -				mImpl, -				_1, -				_2, -				LLPointer<LLNewAgentInventoryVariablePriceResponder>(this))); -	} -} -#endif - diff --git a/indra/newview/llassetuploadresponders.h b/indra/newview/llassetuploadresponders.h deleted file mode 100755 index d3457ce450..0000000000 --- a/indra/newview/llassetuploadresponders.h +++ /dev/null @@ -1,158 +0,0 @@ -/** - * @file llassetuploadresponders.h - * @brief Processes responses received for asset upload requests. - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -#ifndef LL_LLASSETUPLOADRESPONDER_H -#define LL_LLASSETUPLOADRESPONDER_H - -#include "llhttpclient.h" - -// Abstract class for supporting asset upload -// via capabilities -class LLAssetUploadResponder : public LLHTTPClient::Responder -{ -protected: -	LOG_CLASS(LLAssetUploadResponder); -public: -	LLAssetUploadResponder(const LLSD& post_data, -							const LLUUID& vfile_id, -							LLAssetType::EType asset_type); -	LLAssetUploadResponder(const LLSD& post_data,  -							const std::string& file_name, -							LLAssetType::EType asset_type); -	~LLAssetUploadResponder(); - -protected: -	virtual void httpFailure(); -	virtual void httpSuccess(); - -public: -	virtual void uploadUpload(const LLSD& content); -	virtual void uploadComplete(const LLSD& content); -	virtual void uploadFailure(const LLSD& content); - -protected: -	LLSD mPostData; -	LLAssetType::EType mAssetType; -	LLUUID mVFileID; -	std::string mFileName; -}; - -#if 0 -// TODO*: Remove this once deprecated -class LLNewAgentInventoryResponder : public LLAssetUploadResponder -{ -	LOG_CLASS(LLNewAgentInventoryResponder); -public: -	LLNewAgentInventoryResponder( -		const LLSD& post_data, -		const LLUUID& vfile_id, -		LLAssetType::EType asset_type); -	LLNewAgentInventoryResponder( -		const LLSD& post_data, -		const std::string& file_name, -		LLAssetType::EType asset_type); -	virtual void uploadComplete(const LLSD& content); -	virtual void uploadFailure(const LLSD& content); -protected: -	virtual void httpFailure(); -}; -#endif -#if 0 -// A base class which goes through and performs some default -// actions for variable price uploads.  If more specific actions -// are needed (such as different confirmation messages, etc.) -// the functions onApplicationLevelError and showConfirmationDialog. -class LLNewAgentInventoryVariablePriceResponder : -	public LLHTTPClient::Responder -{ -	LOG_CLASS(LLNewAgentInventoryVariablePriceResponder); -public: -	LLNewAgentInventoryVariablePriceResponder( -		const LLUUID& vfile_id, -		LLAssetType::EType asset_type, -		const LLSD& inventory_info); - -	LLNewAgentInventoryVariablePriceResponder( -		const std::string& file_name, -		LLAssetType::EType asset_type, -		const LLSD& inventory_info); -	virtual ~LLNewAgentInventoryVariablePriceResponder(); - -private: -	/* virtual */ void httpFailure(); -	/* virtual */ void httpSuccess(); - -public: -	virtual void onApplicationLevelError( -		const LLSD& error); -	virtual void showConfirmationDialog( -		S32 upload_price, -		S32 resource_cost, -		const std::string& confirmation_url); - -private: -	class Impl; -	Impl* mImpl; -}; -#endif - -#if 0 -class LLUpdateAgentInventoryResponder : public LLAssetUploadResponder -{ -public: -	LLUpdateAgentInventoryResponder(const LLSD& post_data, -								const LLUUID& vfile_id, -								LLAssetType::EType asset_type); -	LLUpdateAgentInventoryResponder(const LLSD& post_data, -								const std::string& file_name, -											   LLAssetType::EType asset_type); -	virtual void uploadComplete(const LLSD& content); -}; -#endif - -#if 0 -class LLUpdateTaskInventoryResponder : public LLAssetUploadResponder -{ -public: -	LLUpdateTaskInventoryResponder(const LLSD& post_data, -								const LLUUID& vfile_id, -								LLAssetType::EType asset_type); -	LLUpdateTaskInventoryResponder(const LLSD& post_data, -								const std::string& file_name, -								LLAssetType::EType asset_type); -	LLUpdateTaskInventoryResponder(const LLSD& post_data, -								const std::string& file_name, -								const LLUUID& queue_id, -								LLAssetType::EType asset_type); - -	virtual void uploadComplete(const LLSD& content); -	 -private: -	LLUUID mQueueId; -}; -#endif  - -#endif // LL_LLASSETUPLOADRESPONDER_H diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp index c4b0b96d4c..24e662ee50 100755 --- a/indra/newview/llcompilequeue.cpp +++ b/indra/newview/llcompilequeue.cpp @@ -37,7 +37,6 @@  #include "llcompilequeue.h"  #include "llagent.h" -#include "llassetuploadresponders.h"  #include "llchat.h"  #include "llfloaterreg.h"  #include "llviewerwindow.h" diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp index b38362e180..d8f5f27681 100755 --- a/indra/newview/llfloaterreporter.cpp +++ b/indra/newview/llfloaterreporter.cpp @@ -77,7 +77,6 @@  #include "lluictrlfactory.h"  #include "llviewernetwork.h" -#include "llassetuploadresponders.h"  #include "llagentui.h"  #include "lltrans.h" diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp index d6aaf18cb7..c34d04c98e 100755 --- a/indra/newview/llmeshrepository.cpp +++ b/indra/newview/llmeshrepository.cpp @@ -72,6 +72,10 @@  #include "bufferstream.h"  #include "llfasttimer.h"  #include "llcorehttputil.h" +#include "llstatusbar.h" +#include "llinventorypanel.h" +#include "lluploaddialog.h" +#include "llfloaterreg.h"  #include "boost/lexical_cast.hpp" @@ -412,6 +416,17 @@ static unsigned int metrics_teleport_start_count = 0;  boost::signals2::connection metrics_teleport_started_signal;  static void teleport_started(); +void on_new_single_inventory_upload_complete( +    LLAssetType::EType asset_type, +    LLInventoryType::EType inventory_type, +    const std::string inventory_type_string, +    const LLUUID& item_folder_id, +    const std::string& item_name, +    const std::string& item_description, +    const LLSD& server_response, +    S32 upload_price); + +  //get the number of bytes resident in memory for given volume  U32 get_volume_memory_size(const LLVolume* volume)  { @@ -4567,3 +4582,122 @@ void teleport_started()  	LLMeshRepository::metricsStart();  } + +void on_new_single_inventory_upload_complete( +    LLAssetType::EType asset_type, +    LLInventoryType::EType inventory_type, +    const std::string inventory_type_string, +    const LLUUID& item_folder_id, +    const std::string& item_name, +    const std::string& item_description, +    const LLSD& server_response, +    S32 upload_price) +{ +    bool success = false; + +    if (upload_price > 0) +    { +        // this upload costed us L$, update our balance +        // and display something saying that it cost L$ +        LLStatusBar::sendMoneyBalanceRequest(); + +        LLSD args; +        args["AMOUNT"] = llformat("%d", upload_price); +        LLNotificationsUtil::add("UploadPayment", args); +    } + +    if (item_folder_id.notNull()) +    { +        U32 everyone_perms = PERM_NONE; +        U32 group_perms = PERM_NONE; +        U32 next_owner_perms = PERM_ALL; +        if (server_response.has("new_next_owner_mask")) +        { +            // The server provided creation perms so use them. +            // Do not assume we got the perms we asked for in +            // since the server may not have granted them all. +            everyone_perms = server_response["new_everyone_mask"].asInteger(); +            group_perms = server_response["new_group_mask"].asInteger(); +            next_owner_perms = server_response["new_next_owner_mask"].asInteger(); +        } +        else +        { +            // The server doesn't provide creation perms +            // so use old assumption-based perms. +            if (inventory_type_string != "snapshot") +            { +                next_owner_perms = PERM_MOVE | PERM_TRANSFER; +            } +        } + +        LLPermissions new_perms; +        new_perms.init( +            gAgent.getID(), +            gAgent.getID(), +            LLUUID::null, +            LLUUID::null); + +        new_perms.initMasks( +            PERM_ALL, +            PERM_ALL, +            everyone_perms, +            group_perms, +            next_owner_perms); + +        U32 inventory_item_flags = 0; +        if (server_response.has("inventory_flags")) +        { +            inventory_item_flags = (U32)server_response["inventory_flags"].asInteger(); +            if (inventory_item_flags != 0) +            { +                LL_INFOS() << "inventory_item_flags " << inventory_item_flags << LL_ENDL; +            } +        } +        S32 creation_date_now = time_corrected(); +        LLPointer<LLViewerInventoryItem> item = new LLViewerInventoryItem( +            server_response["new_inventory_item"].asUUID(), +            item_folder_id, +            new_perms, +            server_response["new_asset"].asUUID(), +            asset_type, +            inventory_type, +            item_name, +            item_description, +            LLSaleInfo::DEFAULT, +            inventory_item_flags, +            creation_date_now); + +        gInventory.updateItem(item); +        gInventory.notifyObservers(); +        success = true; + +        // Show the preview panel for textures and sounds to let +        // user know that the image (or snapshot) arrived intact. +        LLInventoryPanel* panel = LLInventoryPanel::getActiveInventoryPanel(); +        if (panel) +        { +            LLFocusableElement* focus = gFocusMgr.getKeyboardFocus(); + +            panel->setSelection( +                server_response["new_inventory_item"].asUUID(), +                TAKE_FOCUS_NO); + +            // restore keyboard focus +            gFocusMgr.setKeyboardFocus(focus); +        } +    } +    else +    { +        LL_WARNS() << "Can't find a folder to put it in" << LL_ENDL; +    } + +    // remove the "Uploading..." message +    LLUploadDialog::modalUploadFinished(); + +    // Let the Snapshot floater know we have finished uploading a snapshot to inventory. +    LLFloater* floater_snapshot = LLFloaterReg::findInstance("snapshot"); +    if (asset_type == LLAssetType::AT_TEXTURE && floater_snapshot) +    { +        floater_snapshot->notify(LLSD().with("set-finished", LLSD().with("ok", success).with("msg", "inventory"))); +    } +} diff --git a/indra/newview/llpostcard.cpp b/indra/newview/llpostcard.cpp index 4e34ec912e..2e639b56eb 100755 --- a/indra/newview/llpostcard.cpp +++ b/indra/newview/llpostcard.cpp @@ -36,7 +36,6 @@  #include "llagent.h"  #include "llassetstorage.h" -#include "llassetuploadresponders.h"  #include "llviewerassetupload.h"  /////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp index 2604eb1840..ff9a70d05c 100755 --- a/indra/newview/llpreviewgesture.cpp +++ b/indra/newview/llpreviewgesture.cpp @@ -31,7 +31,6 @@  #include "llanimstatelabels.h"  #include "llanimationstates.h"  #include "llappviewer.h"			// gVFS -#include "llassetuploadresponders.h"  #include "llcheckboxctrl.h"  #include "llcombobox.h"  #include "lldatapacker.h" diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index 9273e06d65..2c609d902c 100755 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -31,7 +31,6 @@  #include "llinventory.h"  #include "llagent.h" -#include "llassetuploadresponders.h"  #include "lldraghandle.h"  #include "llviewerwindow.h"  #include "llbutton.h" diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 2f09214dd6..11a503e71f 100755 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -29,7 +29,6 @@  #include "llpreviewscript.h"  #include "llassetstorage.h" -#include "llassetuploadresponders.h"  #include "llbutton.h"  #include "llcheckboxctrl.h"  #include "llcombobox.h" diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 904fa7fcbe..782a27a846 100755 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -65,7 +65,6 @@  #include "llviewerassetupload.h"  // linden libraries -#include "llassetuploadresponders.h"  #include "lleconomy.h"  #include "llhttpclient.h"  #include "llnotificationsutil.h" diff --git a/indra/newview/llviewermenufile.h b/indra/newview/llviewermenufile.h index 0f8fa56b52..6941b4dc0e 100755 --- a/indra/newview/llviewermenufile.h +++ b/indra/newview/llviewermenufile.h @@ -70,16 +70,6 @@ void assign_defaults_and_show_upload_message(  	const std::string& display_name,  	std::string& description); -void on_new_single_inventory_upload_complete( -	LLAssetType::EType asset_type, -	LLInventoryType::EType inventory_type, -	const std::string inventory_type_string, -	const LLUUID& item_folder_id, -	const std::string& item_name, -	const std::string& item_description, -	const LLSD& server_response, -	S32 upload_price); -  class LLFilePickerThread : public LLThread  { //multi-threaded file picker (runs system specific file picker in background and calls "notify" from main thread)  public: | 
