Store main file name in error if it's present.
This commit is contained in:
parent
7894093022
commit
528541cfd4
@ -33,10 +33,11 @@ export const ImportErrorCode =
|
||||
|
||||
export class ImportError
|
||||
{
|
||||
constructor (code, message)
|
||||
constructor (code)
|
||||
{
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
this.mainFile = null;
|
||||
this.message = null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -172,7 +173,7 @@ export class Importer
|
||||
{
|
||||
let importableFiles = this.GetImportableFiles (this.fileList);
|
||||
if (importableFiles.length === 0) {
|
||||
callbacks.onImportError (new ImportError (ImportErrorCode.NoImportableFile, null));
|
||||
callbacks.onImportError (new ImportError (ImportErrorCode.NoImportableFile));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -183,7 +184,7 @@ export class Importer
|
||||
let fileNames = importableFiles.map (importableFile => importableFile.file.name);
|
||||
callbacks.onSelectMainFile (fileNames, (mainFileIndex) => {
|
||||
if (mainFileIndex === null) {
|
||||
callbacks.onImportError (new ImportError (ImportErrorCode.NoImportableFile, null));
|
||||
callbacks.onImportError (new ImportError (ImportErrorCode.NoImportableFile));
|
||||
return;
|
||||
}
|
||||
RunTaskAsync (() => {
|
||||
@ -197,7 +198,11 @@ export class Importer
|
||||
ImportLoadedMainFile (mainFile, settings, callbacks)
|
||||
{
|
||||
if (mainFile === null || mainFile.file === null || mainFile.file.content === null) {
|
||||
callbacks.onImportError (new ImportError (ImportErrorCode.FailedToLoadFile, null));
|
||||
let error = new ImportError (ImportErrorCode.FailedToLoadFile);
|
||||
if (mainFile.file !== null) {
|
||||
error.mainFile = mainFile.file.name;
|
||||
}
|
||||
callbacks.onImportError (error);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -242,8 +247,10 @@ export class Importer
|
||||
callbacks.onImportSuccess (result);
|
||||
},
|
||||
onError : () => {
|
||||
let message = importer.GetErrorMessage ();
|
||||
callbacks.onImportError (new ImportError (ImportErrorCode.ImportFailed, message));
|
||||
let error = new ImportError (ImportErrorCode.ImportFailed);
|
||||
error.mainFile = mainFile.file.name;
|
||||
error.message = importer.GetErrorMessage ();
|
||||
callbacks.onImportError (error);
|
||||
},
|
||||
onComplete : () => {
|
||||
importer.Clear ();
|
||||
|
||||
@ -394,20 +394,25 @@ export class Website
|
||||
onError : (importError) =>
|
||||
{
|
||||
this.SetUIState (WebsiteUIState.Intro);
|
||||
let extensions = [];
|
||||
let importer = this.modelLoaderUI.GetImporter ();
|
||||
let fileList = importer.GetFileList ().GetFiles ();
|
||||
for (let i = 0; i < fileList.length; i++) {
|
||||
let extension = fileList[i].extension;
|
||||
extensions.push (extension);
|
||||
let extensionStr = null;
|
||||
if (importError.mainFile !== null) {
|
||||
extensionStr = GetFileExtension (importError.mainFile);
|
||||
} else {
|
||||
let extensions = [];
|
||||
let importer = this.modelLoaderUI.GetImporter ();
|
||||
let fileList = importer.GetFileList ().GetFiles ();
|
||||
for (let i = 0; i < fileList.length; i++) {
|
||||
let extension = fileList[i].extension;
|
||||
extensions.push (extension);
|
||||
}
|
||||
extensionStr = extensions.join (',');
|
||||
}
|
||||
let extensionsStr = extensions.join (',');
|
||||
if (importError.code === ImportErrorCode.NoImportableFile) {
|
||||
HandleEvent ('no_importable_file', extensionsStr);
|
||||
HandleEvent ('no_importable_file', extensionStr);
|
||||
} else if (importError.code === ImportErrorCode.FailedToLoadFile) {
|
||||
HandleEvent ('failed_to_load_file', extensionsStr);
|
||||
HandleEvent ('failed_to_load_file', extensionStr);
|
||||
} else if (importError.code === ImportErrorCode.ImportFailed) {
|
||||
HandleEvent ('import_failed', extensionsStr, {
|
||||
HandleEvent ('import_failed', extensionStr, {
|
||||
error_message : importError.message
|
||||
});
|
||||
}
|
||||
|
||||
@ -50,6 +50,7 @@ describe ('Importer Test', function () {
|
||||
},
|
||||
error : function (importer, importError) {
|
||||
assert.strictEqual (importError.code, OV.ImportErrorCode.FailedToLoadFile);
|
||||
assert.strictEqual (importError.mainFile, 'missing.obj');
|
||||
done ();
|
||||
}
|
||||
});
|
||||
@ -80,6 +81,7 @@ describe ('Importer Test', function () {
|
||||
},
|
||||
error : function (importer, importError) {
|
||||
assert.strictEqual (importError.code, OV.ImportErrorCode.ImportFailed);
|
||||
assert.strictEqual (importError.mainFile, 'wrong.3ds');
|
||||
done ();
|
||||
}
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user