From f2a0e428102ff98b3af0daff3cc430efd33764bb Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Thu, 16 Mar 2017 02:13:02 -0700 Subject: [PATCH] Rework error dialog to have better layout and more information --- gui/errorDialog.py | 82 +++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 37 deletions(-) diff --git a/gui/errorDialog.py b/gui/errorDialog.py index 469eb9e63..6574163ca 100644 --- a/gui/errorDialog.py +++ b/gui/errorDialog.py @@ -19,21 +19,26 @@ import wx import sys -import gui.utils.fonts as fonts import config +try: + import sqlalchemy + + sqlalchemy_version = sqlalchemy.__version__ +except: + sqlalchemy_version = "Unknown" + class ErrorFrame(wx.Frame): - def __init__(self, exception, tb): - wx.Frame.__init__(self, None, id=wx.ID_ANY, title="pyfa error", pos=wx.DefaultPosition, size=wx.Size(500, 400), + v = sys.version_info + + wx.Frame.__init__(self, None, id=wx.ID_ANY, title="pyfa error", pos=wx.DefaultPosition, size=wx.Size(500, 600), style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER | wx.STAY_ON_TOP) - desc = "pyfa has experienced an unexpected error. Below is the " \ - "Traceback that contains crucial information about how this " \ - "error was triggered. Please contact the developers with " \ - "the information provided through the EVE Online forums " \ - "or file a GitHub issue." + desc = "pyfa has experienced an unexpected error. Below is the Traceback that contains crucial \n" \ + "information about how this error was triggered. Please contact the developers with the \n" \ + "information provided through the EVE Online forums or file a GitHub issue." self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) @@ -43,47 +48,50 @@ class ErrorFrame(wx.Frame): mainSizer = wx.BoxSizer(wx.VERTICAL) headSizer = wx.BoxSizer(wx.HORIZONTAL) - self.headingText = wx.StaticText(self, wx.ID_ANY, "Error!", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTRE) - self.headingText.SetFont(wx.Font(14, 74, 90, 92, False)) + headingText = wx.StaticText(self, wx.ID_ANY, "Error!", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTRE) + headingText.SetFont(wx.Font(14, 74, 90, 92, False)) - headSizer.Add(self.headingText, 1, wx.ALL, 5) + headSizer.Add(headingText, 1, wx.ALL, 5) mainSizer.Add(headSizer, 0, wx.EXPAND, 5) mainSizer.Add(wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL), 0, wx.EXPAND | wx.ALL, 5) - descSizer = wx.BoxSizer(wx.HORIZONTAL) - self.descText = wx.TextCtrl(self, wx.ID_ANY, desc, wx.DefaultPosition, wx.DefaultSize, - wx.TE_AUTO_URL | wx.TE_MULTILINE | wx.TE_READONLY | wx.BORDER_NONE | wx.TRANSPARENT_WINDOW) - self.descText.SetFont(wx.Font(fonts.BIG, wx.SWISS, wx.NORMAL, wx.NORMAL)) - descSizer.Add(self.descText, 1, wx.ALL, 5) - mainSizer.Add(descSizer, 1, wx.EXPAND, 5) + box = wx.BoxSizer(wx.VERTICAL) + mainSizer.Add(box, 0, wx.EXPAND | wx.ALIGN_TOP) - self.eveForums = wx.HyperlinkCtrl(self, wx.ID_ANY, "EVE Forums Thread", "https://forums.eveonline.com/default.aspx?g=posts&t=466425", - wx.DefaultPosition, wx.DefaultSize, wx.HL_DEFAULT_STYLE) + descText = wx.StaticText(self, wx.ID_ANY, desc) + box.Add(descText, 1, wx.ALL, 5) - mainSizer.Add(self.eveForums, 0, wx.ALL, 2) + github = wx.HyperlinkCtrl(self, wx.ID_ANY, "Github", "https://github.com/pyfa-org/Pyfa/issues", + wx.DefaultPosition, wx.DefaultSize, wx.HL_DEFAULT_STYLE) + box.Add(github, 0, wx.ALL, 5) - self.eveForums = wx.HyperlinkCtrl(self, wx.ID_ANY, "Github Issues", "https://github.com/pyfa-org/Pyfa/issues", - wx.DefaultPosition, wx.DefaultSize, wx.HL_DEFAULT_STYLE) - - mainSizer.Add(self.eveForums, 0, wx.ALL, 2) + eveForums = wx.HyperlinkCtrl(self, wx.ID_ANY, "EVE Forums", "https://forums.eveonline.com/default.aspx?g=posts&t=466425", + wx.DefaultPosition, wx.DefaultSize, wx.HL_DEFAULT_STYLE) + box.Add(eveForums, 0, wx.ALL, 5) # mainSizer.AddSpacer((0, 5), 0, wx.EXPAND, 5) - self.errorTextCtrl = wx.TextCtrl(self, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_RICH2 | wx.TE_DONTWRAP) - self.errorTextCtrl.SetFont(wx.Font(8, wx.FONTFAMILY_TELETYPE, wx.NORMAL, wx.NORMAL)) - mainSizer.Add(self.errorTextCtrl, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 5) + errorTextCtrl = wx.TextCtrl(self, wx.ID_ANY, "", wx.DefaultPosition, (-1, 400), wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_RICH2 | wx.TE_DONTWRAP) + errorTextCtrl.SetFont(wx.Font(8, wx.FONTFAMILY_TELETYPE, wx.NORMAL, wx.NORMAL)) + mainSizer.Add(errorTextCtrl, 0, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER, 5) - self.errorTextCtrl.AppendText("pyfa root: ") - self.errorTextCtrl.AppendText(config.pyfaPath or "Unknown") - self.errorTextCtrl.AppendText('\n') - self.errorTextCtrl.AppendText("save path: ") - self.errorTextCtrl.AppendText(config.savePath or "Unknown") - self.errorTextCtrl.AppendText('\n') - self.errorTextCtrl.AppendText("fs encoding: ") - self.errorTextCtrl.AppendText(sys.getfilesystemencoding()) - self.errorTextCtrl.AppendText('\n\n') - self.errorTextCtrl.AppendText(tb) + errorTextCtrl.AppendText("Python: \t" + '{}.{}.{}'.format(v.major, v.minor, v.micro)) + errorTextCtrl.AppendText("\n") + errorTextCtrl.AppendText("wxPython: \t" + str(wx.__version__)) + errorTextCtrl.AppendText("\n") + errorTextCtrl.AppendText("SQLAlchemy: \t" + str(sqlalchemy_version)) + errorTextCtrl.AppendText("\n") + errorTextCtrl.AppendText("pyfa version: {0} {1} - {2} {3}".format(config.version, config.tag, config.expansionName, config.expansionVersion)) + errorTextCtrl.AppendText('\n') + errorTextCtrl.AppendText("pyfa root: " + str(config.pyfaPath or "Unknown")) + errorTextCtrl.AppendText('\n') + errorTextCtrl.AppendText("save path: " + str(config.savePath or "Unknown")) + errorTextCtrl.AppendText('\n') + errorTextCtrl.AppendText("fs encoding: " + str(sys.getfilesystemencoding() or "Unknown")) + errorTextCtrl.AppendText('\n\n') + errorTextCtrl.AppendText(tb) + errorTextCtrl.Layout() self.SetSizer(mainSizer) mainSizer.Layout()