Mercurial > repos > IBBoard.WarFoundry.GUI.GTK
diff FrmMainWindow.cs @ 159:89e2442bbb60
Re #417: Improve install/first use experience
* Handle errors in GTK# interface
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 19 May 2012 20:26:44 +0100 |
parents | 6b4cc1fc3f42 |
children | 354c1d2ad086 |
line wrap: on
line diff
--- a/FrmMainWindow.cs Sat May 19 14:39:10 2012 +0100 +++ b/FrmMainWindow.cs Sat May 19 20:26:44 2012 +0100 @@ -1310,13 +1310,45 @@ if (response == (int)ResponseType.Accept) { + List<Exception> exceptions = new List<Exception>(); + foreach (string filePath in filePaths) { - WarFoundryLoader.AddNewDataFile(filePath); + try + { + WarFoundryLoader.AddNewDataFile(filePath); + } + catch (Exception ex) + { + exceptions.Add(ex); + } } WarFoundryLoader.GetDefault().LoadFiles(); + + if (exceptions.Count > 0) + { + string errorMsg = MakeAddDataFileFailedMessage(exceptions); + MessageDialog dialog = new MessageDialog(null, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, false, errorMsg); + dialog.Run(); + dialog.Hide(); + dialog.Dispose(); + } } } + + private string MakeAddDataFileFailedMessage(List<Exception> exceptions) + { + StringBuilder sb = new StringBuilder(); + sb.Append("errors occurred while adding the new data files: "); + + foreach (Exception ex in exceptions) + { + sb.Append("\n\t• "); + sb.Append(ex.Message); + } + + return sb.ToString(); + } } }