diff --git a/electrum/gui/qml/components/main.qml b/electrum/gui/qml/components/main.qml index 7957d381b..d39d8b3eb 100644 --- a/electrum/gui/qml/components/main.qml +++ b/electrum/gui/qml/components/main.qml @@ -32,6 +32,7 @@ ApplicationWindow property variant activeDialogs: [] property bool _wantClose: false + property var _exceptionDialog header: ToolBar { id: toolbar @@ -364,11 +365,16 @@ ApplicationWindow function onUserNotify(wallet_name, message) { notificationPopup.show(wallet_name, message) } - function onShowException() { - var dialog = crashDialog.createObject(app, { - crashData: AppController.crashData() + function onShowException(crash_data) { + if (app._exceptionDialog) + return + app._exceptionDialog = crashDialog.createObject(app, { + crashData: crash_data }) - dialog.open() + app._exceptionDialog.onClosed.connect(function() { + app._exceptionDialog = null + }) + app._exceptionDialog.open() } } diff --git a/electrum/gui/qml/qeapp.py b/electrum/gui/qml/qeapp.py index ae6af94c7..b3fd7636e 100644 --- a/electrum/gui/qml/qeapp.py +++ b/electrum/gui/qml/qeapp.py @@ -51,7 +51,7 @@ class QEAppController(BaseCrashReporter, QObject): _dummy = pyqtSignal() userNotify = pyqtSignal(str, str) uriReceived = pyqtSignal(str) - showException = pyqtSignal() + showException = pyqtSignal('QVariantMap') sendingBugreport = pyqtSignal() sendingBugreportSuccess = pyqtSignal(str) sendingBugreportFailure = pyqtSignal(str) @@ -223,7 +223,7 @@ class QEAppController(BaseCrashReporter, QObject): @pyqtSlot(object,object,object,object) def crash(self, config, e, text, tb): self.exc_args = (e, text, tb) # for BaseCrashReporter - self.showException.emit() + self.showException.emit(self.crashData()) @pyqtSlot() def sendReport(self):