[GUI] A bit better(?) error handling

This commit is contained in:
VaDiM
2023-03-08 17:10:21 +03:00
parent 629c6248a4
commit 679e7041a6
5 changed files with 58 additions and 41 deletions

View File

@ -186,7 +186,7 @@ namespace AssetStudioGUI
var fileNames = openFileDialog1.FileNames;
var savePath = saveFolderDialog.Folder;
var extractedCount = await Task.Run(() => ExtractFile(fileNames, savePath));
StatusStripUpdate($"Finished extracting {extractedCount} files.");
Logger.Info($"Finished extracting {extractedCount} files.");
}
}
}
@ -203,7 +203,7 @@ namespace AssetStudioGUI
var path = openFolderDialog.Folder;
var savePath = saveFolderDialog.Folder;
var extractedCount = await Task.Run(() => ExtractFolder(path, savePath));
StatusStripUpdate($"Finished extracting {extractedCount} files.");
Logger.Info($"Finished extracting {extractedCount} files.");
}
}
}
@ -213,7 +213,7 @@ namespace AssetStudioGUI
if (assetsManager.assetsFileList.Count == 0)
{
filterExcludeModeCheck(assetsManager.assetsFileList.Count);
StatusStripUpdate("No Unity file can be loaded.");
Logger.Info("No Unity file can be loaded.");
return;
}
@ -274,7 +274,7 @@ namespace AssetStudioGUI
{
log += $" and {m_ObjectsCount - objectsCount} assets failed to read";
}
StatusStripUpdate(log);
Logger.Info(log);
}
private void typeToolStripMenuItem_Click(object sender, EventArgs e)
@ -397,7 +397,7 @@ namespace AssetStudioGUI
Progress.Report(++i, count);
}
StatusStripUpdate("Finished exporting class structures");
Logger.Info("Finished exporting class structures");
}
}
}
@ -1780,7 +1780,7 @@ namespace AssetStudioGUI
ERRCHECK(result);
if (version < FMOD.VERSION.number)
{
MessageBox.Show($"Error! You are using an old version of FMOD {version:X}. This program requires {FMOD.VERSION.number:X}.");
Logger.Error($"Error! You are using an old version of FMOD {version:X}. This program requires {FMOD.VERSION.number:X}.");
Application.Exit();
}
@ -2036,7 +2036,7 @@ namespace AssetStudioGUI
if (result != FMOD.RESULT.OK)
{
FMODreset();
StatusStripUpdate($"FMOD error! {result} - {FMOD.Error.String(result)}");
Logger.Warning($"FMOD error! {result} - {FMOD.Error.String(result)}");
return true;
}
return false;

View File

@ -19,16 +19,22 @@ namespace AssetStudioGUI
switch (loggerEvent)
{
case LoggerEvent.Error:
MessageBox.Show(message, "Error");
break;
case LoggerEvent.Warning:
if (ShowErrorMessage)
{
MessageBox.Show(message);
MessageBox.Show(message, "Warning");
}
else
{
action("An error has occurred. Turn on \"Show all error messages\" to see details next time.");
}
break;
default:
action(message);
break;
}
}
}
}

View File

@ -84,7 +84,7 @@ namespace AssetStudioGUI
private static int ExtractBundleFile(FileReader reader, string savePath)
{
StatusStripUpdate($"Decompressing {reader.FileName} ...");
Logger.Info($"Decompressing {reader.FileName} ...");
var bundleFile = new BundleFile(reader);
reader.Dispose();
if (bundleFile.fileList.Length > 0)
@ -97,7 +97,7 @@ namespace AssetStudioGUI
private static int ExtractWebDataFile(FileReader reader, string savePath)
{
StatusStripUpdate($"Decompressing {reader.FileName} ...");
Logger.Info($"Decompressing {reader.FileName} ...");
var webFile = new WebFile(reader);
reader.Dispose();
if (webFile.fileList.Length > 0)
@ -134,7 +134,7 @@ namespace AssetStudioGUI
public static (string, List<TreeNode>) BuildAssetData()
{
StatusStripUpdate("Building asset list...");
Logger.Info("Building asset list...");
string productName = null;
var objectCount = assetsManager.assetsFileList.Sum(x => x.Objects.Count);
@ -256,7 +256,7 @@ namespace AssetStudioGUI
visibleAssets = exportableAssets;
StatusStripUpdate("Building tree structure...");
Logger.Info("Building tree structure...");
var treeNodeCollection = new List<TreeNode>();
var treeNodeDictionary = new Dictionary<GameObject, GameObjectTreeNode>();
@ -414,7 +414,7 @@ namespace AssetStudioGUI
break;
}
exportPath += Path.DirectorySeparatorChar;
StatusStripUpdate($"[{exportedCount}/{toExportCount}] Exporting {asset.TypeString}: {asset.Text}");
Logger.Info($"[{exportedCount}/{toExportCount}] Exporting {asset.TypeString}: {asset.Text}");
try
{
switch (exportType)
@ -441,7 +441,7 @@ namespace AssetStudioGUI
}
catch (Exception ex)
{
MessageBox.Show($"Export {asset.Type}:{asset.Text} error\r\n{ex.Message}\r\n{ex.StackTrace}");
Logger.Error($"Export {asset.Type}:{asset.Text} error", ex);
}
Progress.Report(++i, toExportCount);
@ -454,7 +454,7 @@ namespace AssetStudioGUI
statusText += $" {toExportCount - exportedCount} assets skipped (not extractable or files already exist)";
}
StatusStripUpdate(statusText);
Logger.Info(statusText);
if (Properties.Settings.Default.openAfterExport && exportedCount > 0)
{
@ -499,7 +499,7 @@ namespace AssetStudioGUI
var statusText = $"Finished exporting asset list with {toExportAssets.Count()} items.";
StatusStripUpdate(statusText);
Logger.Info(statusText);
if (Properties.Settings.Default.openAfterExport && toExportAssets.Count() > 0)
{
@ -547,25 +547,25 @@ namespace AssetStudioGUI
}
Directory.CreateDirectory(targetPath);
//导出FBX
StatusStripUpdate($"Exporting {filename}.fbx");
Logger.Info($"Exporting {filename}.fbx");
try
{
ExportGameObject(j.gameObject, targetPath);
}
catch (Exception ex)
{
MessageBox.Show($"Export GameObject:{j.Text} error\r\n{ex.Message}\r\n{ex.StackTrace}");
Logger.Error($"Export GameObject:{j.Text} error", ex);
}
Progress.Report(++k, count);
StatusStripUpdate($"Finished exporting {filename}.fbx");
Logger.Info($"Finished exporting {filename}.fbx");
}
}
if (Properties.Settings.Default.openAfterExport)
{
OpenFolderInExplorer(savePath);
}
StatusStripUpdate("Finished");
Logger.Info("Finished");
});
}
@ -583,7 +583,7 @@ namespace AssetStudioGUI
ThreadPool.QueueUserWorkItem(state =>
{
Progress.Reset();
StatusStripUpdate($"Exporting {animator.Text}");
Logger.Info($"Exporting {animator.Text}");
try
{
ExportAnimator(animator, exportPath, animationList);
@ -592,12 +592,12 @@ namespace AssetStudioGUI
OpenFolderInExplorer(exportPath);
}
Progress.Report(1, 1);
StatusStripUpdate($"Finished exporting {animator.Text}");
Logger.Info($"Finished exporting {animator.Text}");
}
catch (Exception ex)
{
MessageBox.Show($"Export Animator:{animator.Text} error\r\n{ex.Message}\r\n{ex.StackTrace}");
StatusStripUpdate("Error in export");
Logger.Error($"Export Animator:{animator.Text} error", ex);
Logger.Info("Error in export");
}
});
}
@ -615,16 +615,16 @@ namespace AssetStudioGUI
Progress.Reset();
foreach (var gameObject in gameObjects)
{
StatusStripUpdate($"Exporting {gameObject.m_Name}");
Logger.Info($"Exporting {gameObject.m_Name}");
try
{
ExportGameObject(gameObject, exportPath, animationList);
StatusStripUpdate($"Finished exporting {gameObject.m_Name}");
Logger.Info($"Finished exporting {gameObject.m_Name}");
}
catch (Exception ex)
{
MessageBox.Show($"Export GameObject:{gameObject.m_Name} error\r\n{ex.Message}\r\n{ex.StackTrace}");
StatusStripUpdate("Error in export");
Logger.Error($"Export GameObject:{gameObject.m_Name} error", ex);
Logger.Info("Error in export");
}
Progress.Report(++i, count);
@ -636,7 +636,7 @@ namespace AssetStudioGUI
}
else
{
StatusStripUpdate("No Object selected for export.");
Logger.Info("No Object selected for export.");
}
});
}
@ -647,17 +647,17 @@ namespace AssetStudioGUI
{
var name = Path.GetFileName(exportPath);
Progress.Reset();
StatusStripUpdate($"Exporting {name}");
Logger.Info($"Exporting {name}");
try
{
ExportGameObjectMerge(gameObjects, exportPath, animationList);
Progress.Report(1, 1);
StatusStripUpdate($"Finished exporting {name}");
Logger.Info($"Finished exporting {name}");
}
catch (Exception ex)
{
MessageBox.Show($"Export Model:{name} error\r\n{ex.Message}\r\n{ex.StackTrace}");
StatusStripUpdate("Error in export");
Logger.Error($"Export Model:{name} error", ex);
Logger.Info("Error in export");
}
if (Properties.Settings.Default.openAfterExport)
{