Store main file name in error if it's present.

This commit is contained in:
kovacsv 2022-01-21 18:46:54 +01:00
parent 7894093022
commit 528541cfd4
3 changed files with 31 additions and 17 deletions

View File

@ -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 ();

View File

@ -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
});
}

View File

@ -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 ();
}
});