From ebd364bfee0e4a78c9b73ed4e761355e44317dc1 Mon Sep 17 00:00:00 2001 From: gatecat Date: Tue, 5 May 2026 13:53:58 +0200 Subject: [PATCH] gui: Fix crash when pass throws error Signed-off-by: gatecat --- gui/application.cc | 4 +++- gui/application.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gui/application.cc b/gui/application.cc index daf0918e..7e407c11 100644 --- a/gui/application.cc +++ b/gui/application.cc @@ -147,12 +147,14 @@ Application::Application(int &argc, char **argv, bool noantialiasing) : QApplica std::set_terminate(do_error); } +void Application::show_pass_error() { QMessageBox::critical(0, "Error", "Pass failed, see log for details!"); } + bool Application::notify(QObject *receiver, QEvent *event) { try { return QApplication::notify(receiver, event); } catch (log_execution_error_exception) { - QMessageBox::critical(0, "Error", "Pass failed, see log for details!"); + QMetaObject::invokeMethod(this, &Application::show_pass_error, Qt::QueuedConnection); return true; } } diff --git a/gui/application.h b/gui/application.h index b342a264..b11d8e68 100644 --- a/gui/application.h +++ b/gui/application.h @@ -31,6 +31,8 @@ class Application : public QApplication public: Application(int &argc, char **argv, bool noantialiasing); bool notify(QObject *receiver, QEvent *event); + protected Q_SLOTS: + void show_pass_error(); }; NEXTPNR_NAMESPACE_END