From 0a706c5dd956f1fba9b91b9f2ff53b21fba54d66 Mon Sep 17 00:00:00 2001 From: Abdo Date: Wed, 17 Apr 2024 13:50:41 +0300 Subject: [PATCH] Ignore errors in do_window_cleanup to fix shutdown issue (#3142) * Ignore errors in do_window_cleanup to fix shutdown issue * Only catch RuntimeError --- qt/aqt/progress.py | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/qt/aqt/progress.py b/qt/aqt/progress.py index 93fa712d7..692268a79 100644 --- a/qt/aqt/progress.py +++ b/qt/aqt/progress.py @@ -232,20 +232,24 @@ class ProgressManager: next_levels = self._levels - 1 next_levels = max(0, next_levels) - if next_levels == 0: - if self._win: - self._closeWin() - if self._busy_cursor_timer: - self._busy_cursor_timer.stop() - self._busy_cursor_timer = None - self._restore_cursor() - if self._show_timer: - self._show_timer.stop() - self._show_timer = None - if self._backend_timer: - self._backend_timer.stop() - self._backend_timer.deleteLater() - self._backend_timer = None + try: + if next_levels == 0: + if self._win: + self._closeWin() + if self._busy_cursor_timer: + self._busy_cursor_timer.stop() + self._busy_cursor_timer = None + self._restore_cursor() + if self._show_timer: + self._show_timer.stop() + self._show_timer = None + if self._backend_timer: + self._backend_timer.stop() + self._backend_timer.deleteLater() + self._backend_timer = None + except RuntimeError as exc: + # during shutdown, the timers may have already been deleted by Qt + print(f"do_window_cleanup error ignored: {exc}") self._levels = next_levels # if the window is not currently shown, we can do cleanup immediately, if it is