From 078278bf51b50ded63d5f7c4a9d99146f72aba69 Mon Sep 17 00:00:00 2001
From: Dave Parks <davep@lindenlab.com>
Date: Wed, 6 Jan 2010 15:02:43 -0600
Subject: [PATCH] LLImportCollada no longer a singleton to prepare for
 subclassing.

---
 indra/newview/app_settings/logcontrol.xml |  2 ++
 indra/newview/llassetuploadresponders.cpp | 16 +++++++++-------
 indra/newview/llassetuploadresponders.h   | 11 ++++++++---
 indra/newview/llviewermenufile.cpp        |  8 ++++++--
 4 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/indra/newview/app_settings/logcontrol.xml b/indra/newview/app_settings/logcontrol.xml
index d7bb64ce8a7..a5e2837f165 100644
--- a/indra/newview/app_settings/logcontrol.xml
+++ b/indra/newview/app_settings/logcontrol.xml
@@ -40,6 +40,8 @@
 						</array>
 					<key>tags</key>
 						<array>
+              <string>AppInit</string>
+              <string>Capabilities</string>
 						</array>
 				</map>
 			</array>
diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp
index a0be6efdc25..6324da74993 100644
--- a/indra/newview/llassetuploadresponders.cpp
+++ b/indra/newview/llassetuploadresponders.cpp
@@ -317,16 +317,18 @@ void LLAssetUploadResponder::uploadComplete(const LLSD& content)
 LLNewAgentInventoryResponder::LLNewAgentInventoryResponder(
 	const LLSD& post_data,
 	const LLUUID& vfile_id,
-	LLAssetType::EType asset_type)
-	: LLAssetUploadResponder(post_data, vfile_id, asset_type)
+	LLAssetType::EType asset_type,
+	LLImportCollada* import)
+	: LLAssetUploadResponder(post_data, vfile_id, asset_type), mImport(import)
 {
 }
 
 LLNewAgentInventoryResponder::LLNewAgentInventoryResponder(
 	const LLSD& post_data,
 	const std::string& file_name,
-	LLAssetType::EType asset_type)
-	: LLAssetUploadResponder(post_data, file_name, asset_type)
+	LLAssetType::EType asset_type,
+	LLImportCollada* import)
+	: LLAssetUploadResponder(post_data, file_name, asset_type), mImport(import)
 {
 }
 
@@ -334,7 +336,7 @@ LLNewAgentInventoryResponder::LLNewAgentInventoryResponder(
 void LLNewAgentInventoryResponder::error(U32 statusNum, const std::string& reason)
 {
 	LLAssetUploadResponder::error(statusNum, reason);
-	LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, LLUUID(), FALSE);
+	LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, LLUUID(), FALSE, mImport);
 }
 
 
@@ -343,7 +345,7 @@ void LLNewAgentInventoryResponder::uploadFailure(const LLSD& content)
 {
 	LLAssetUploadResponder::uploadFailure(content);
 
-	LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], FALSE);
+	LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], FALSE, mImport);
 }
 
 //virtual 
@@ -433,7 +435,7 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content)
 			userdata);
 	}
 
-	LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], TRUE);
+	LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], TRUE, mImport);
 }
 
 LLSendTexLayerResponder::LLSendTexLayerResponder(const LLSD& post_data,
diff --git a/indra/newview/llassetuploadresponders.h b/indra/newview/llassetuploadresponders.h
index c8699882035..4b79e155291 100644
--- a/indra/newview/llassetuploadresponders.h
+++ b/indra/newview/llassetuploadresponders.h
@@ -61,19 +61,24 @@ class LLAssetUploadResponder : public LLHTTPClient::Responder
 	std::string mFileName;
 };
 
-
+class LLImportCollada;
 // TODO*: Remove this once deprecated
 class LLNewAgentInventoryResponder : public LLAssetUploadResponder
 {
 public:
+	LLImportCollada* mImport;
+
 	LLNewAgentInventoryResponder(
 		const LLSD& post_data,
 		const LLUUID& vfile_id,
-		LLAssetType::EType asset_type);
+		LLAssetType::EType asset_type,
+		LLImportCollada* import);
+
 	LLNewAgentInventoryResponder(
 		const LLSD& post_data,
 		const std::string& file_name,
-		LLAssetType::EType asset_type);
+		LLAssetType::EType asset_type,
+		LLImportCollada* import);
     virtual void error(U32 statusNum, const std::string& reason);
 	virtual void uploadComplete(const LLSD& content);
 	virtual void uploadFailure(const LLSD& content);
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index de6fcbd8bc4..47f9031ac26 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -272,7 +272,10 @@ class LLFileUploadScene : public view_listener_t
 		std::string filename = upload_pick((void *)LLFilePicker::FFLOAD_COLLADA);
 		if (!filename.empty())
 		{
-			LLImportCollada::getInstance()->importFile(filename);
+			LLFloaterReg::showInstance("import_collada");
+			LLFloaterImportCollada* floater = LLFloaterReg::findTypedInstance<LLFloaterImportCollada>("import_collada");
+			floater->enableOK(TRUE);
+			floater->importFile(filename);
 		}
 		return TRUE;
 	}
@@ -1080,7 +1083,8 @@ void upload_new_resource(
 			new LLNewAgentInventoryResponder(
 				body,
 				uuid,
-				asset_type));
+				asset_type,
+				(LLImportCollada*) userdata));
 	}
 	else
 	{
-- 
GitLab