From 37db3c1e01e1236f45f35d4e2f4bfb3b76d8fb19 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 20 Oct 2016 07:34:28 +0530 Subject: [PATCH] Fix displaying on unhandled exceptions --- kitty/main.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kitty/main.py b/kitty/main.py index 8ddac753d..ccb78b67a 100644 --- a/kitty/main.py +++ b/kitty/main.py @@ -10,7 +10,7 @@ import pwd import signal from gettext import gettext as _ -from PyQt5.QtCore import Qt, QSocketNotifier +from PyQt5.QtCore import Qt, QSocketNotifier, pyqtSignal from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox from .config import load_config, validate_font @@ -21,10 +21,13 @@ from .utils import fork_child class MainWindow(QMainWindow): + report_error = pyqtSignal(object) + def __init__(self, opts): QMainWindow.__init__(self) self.setWindowTitle(appname) sys.excepthook = self.on_unhandled_error + self.report_error.connect(self.show_error, type=Qt.QueuedConnection) self.handle_unix_signals() self.boss = Boss(opts, self) self.setCentralWidget(self.boss.term) @@ -37,6 +40,9 @@ class MainWindow(QMainWindow): msg = str(value) except Exception: msg = repr(value) + self.report_error.emit(msg) + + def show_error(self, msg): QMessageBox.critical(self, _('Unhandled exception'), msg) def handle_unix_signals(self):