diff --git a/invesalius/gui/brain_seg_dialog.py b/invesalius/gui/brain_seg_dialog.py index 487f7e4..e95a8c0 100644 --- a/invesalius/gui/brain_seg_dialog.py +++ b/invesalius/gui/brain_seg_dialog.py @@ -16,6 +16,7 @@ from pubsub import pub as Publisher import invesalius.data.slice_ as slc from invesalius.segmentation.brain import segment, utils +from invesalius.gui import dialogs HAS_THEANO = bool(importlib.util.find_spec("theano")) HAS_PLAIDML = bool(importlib.util.find_spec("plaidml")) @@ -237,13 +238,13 @@ class BrainSegmenterDialog(wx.Dialog): except (multiprocessing.ProcessError, OSError, ValueError) as err: self.OnStop(None) self.HideProgress() - dlg = wx.MessageDialog( + dlg = dialogs.ErrorMessageBox( None, "It was not possible to start brain segmentation because:" + "\n" + str(err), "Brain segmentation error", - wx.ICON_ERROR | wx.OK, + # wx.ICON_ERROR | wx.OK, ) dlg.ShowModal() @@ -280,15 +281,15 @@ class BrainSegmenterDialog(wx.Dialog): error, traceback = self.ps.exception self.OnStop(None) self.HideProgress() - dlg = wx.MessageDialog( + dlg = dialogs.ErrorMessageBox( None, + "Brain segmentation error", "It was not possible to use brain segmentation because:" + "\n" + str(error) + "\n" + traceback, - "Brain segmentation error", - wx.ICON_ERROR | wx.OK, + # wx.ICON_ERROR | wx.OK, ) dlg.ShowModal() return diff --git a/invesalius/gui/dialogs.py b/invesalius/gui/dialogs.py index 9e4388c..da374eb 100644 --- a/invesalius/gui/dialogs.py +++ b/invesalius/gui/dialogs.py @@ -665,8 +665,8 @@ class MessageBox(wx.Dialog): btnsizer.Realize() sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(title_label, 0, wx.ALIGN_CENTRE|wx.ALL|wx.EXPAND, 5) - sizer.Add(text, 1, wx.ALIGN_CENTRE|wx.ALL|wx.EXPAND, 5) + sizer.Add(title_label, 0, wx.ALL | wx.EXPAND, 5) + sizer.Add(text, 1, wx.ALL | wx.EXPAND, 5) sizer.Add(btnsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.EXPAND|wx.ALL, 5) self.SetSizer(sizer) sizer.Fit(self) @@ -674,6 +674,33 @@ class MessageBox(wx.Dialog): self.ShowModal() +class ErrorMessageBox(wx.Dialog): + def __init__(self, parent, title, message, caption="InVesalius3 Error"): + wx.Dialog.__init__(self, parent, title=caption, style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER) + + title_label = wx.StaticText(self, -1, title) + + text = wx.TextCtrl(self, style=wx.TE_MULTILINE|wx.TE_READONLY|wx.BORDER_NONE) + text.SetValue(message) + text.SetBackgroundColour(wx.SystemSettings.GetColour(4)) + + width, height = text.GetTextExtent("M"*60) + text.SetMinSize((width, -1)) + + btn_ok = wx.Button(self, wx.ID_OK) + btnsizer = wx.StdDialogButtonSizer() + btnsizer.AddButton(btn_ok) + btnsizer.Realize() + + sizer = wx.BoxSizer(wx.VERTICAL) + sizer.Add(title_label, 0, wx.ALL | wx.EXPAND, 5) + sizer.Add(text, 1, wx.ALL | wx.EXPAND, 5) + sizer.Add(btnsizer, 0, wx.EXPAND | wx.ALL, 5) + self.SetSizer(sizer) + sizer.Fit(self) + self.Center() + + def SaveChangesDialog__Old(filename): message = _("The project %s has been modified.\nSave changes?")%filename dlg = MessageDialog(message) -- libgit2 0.21.2