Browse Source

Make the crash dialog a bit more friendly

Arjen Hiemstra 8 years ago
parent
commit
75fc2505e3
2 changed files with 33 additions and 3 deletions
  1. 33 3
      cura/CrashHandler.py
  2. BIN
      resources/images/kitten.jpg

+ 33 - 3
cura/CrashHandler.py

@@ -2,9 +2,11 @@ import sys
 import platform
 import traceback
 import webbrowser
+import urllib
 
-from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QCoreApplication
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit
+from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, Qt, QCoreApplication
+from PyQt5.QtGui import QPixmap
+from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QHBoxLayout, QVBoxLayout, QLabel, QTextEdit
 
 from UM.Logger import Logger
 from UM.i18n import i18nCatalog
@@ -36,14 +38,42 @@ def show(exception_type, value, tb):
     if not application:
         sys.exit(1)
 
+
     dialog = QDialog()
+    dialog.setMinimumWidth(640)
+    dialog.setMinimumHeight(640)
     dialog.setWindowTitle(catalog.i18nc("@title:window", "Oops!"))
 
     layout = QVBoxLayout(dialog)
 
+    label = QLabel(dialog)
+    pixmap = QPixmap()
+
+    try:
+        data = urllib.request.urlopen("http://www.randomkittengenerator.com/cats/rotator.php").read()
+        pixmap.loadFromData(data)
+    except:
+        try:
+            from UM.Resources import Resources
+            path = Resources.getPath(Resources.Images, "kitten.jpg")
+            pixmap.load(path)
+        except:
+            pass
+
+    pixmap = pixmap.scaled(150, 150)
+    label.setPixmap(pixmap)
+    label.setAlignment(Qt.AlignCenter)
+    layout.addWidget(label)
+
     label = QLabel(dialog)
     layout.addWidget(label)
-    label.setText(catalog.i18nc("@label", "<p>A fatal exception has occurred that we could not recover from!</p><p>Please use the information below to post a bug report at <a href=\"http://github.com/Ultimaker/Cura/issues\">http://github.com/Ultimaker/Cura/issues</a></p>"))
+
+    #label.setScaledContents(True)
+    label.setText(catalog.i18nc("@label", """
+        <p>A fatal exception has occurred that we could not recover from!</p>
+        <p>We hope this picture of a kitten helps you recover from the shock.</p>
+        <p>Please use the information below to post a bug report at <a href=\"http://github.com/Ultimaker/Cura/issues\">http://github.com/Ultimaker/Cura/issues</a></p>
+    """))
 
     textarea = QTextEdit(dialog)
     layout.addWidget(textarea)

BIN
resources/images/kitten.jpg