From 968dcd57801799110f7749d041a49a17f5523ed1 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Sat, 7 Jan 2012 14:59:42 +0100 Subject: [PATCH] Make exit via 'q' key work again in Blinkenlights UI With the new abort signal handler, we can send a signal that lets us exit cleanly. Make use of this, rather than crashing out in ugly ways. This affects only the Blinkenlights UI when pressing 'q'. Signed-off-by: Sebastian Spaeth --- Changelog.draft.rst | 5 ++++- offlineimap/ui/Curses.py | 8 +++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Changelog.draft.rst b/Changelog.draft.rst index e97953b..5c963f6 100644 --- a/Changelog.draft.rst +++ b/Changelog.draft.rst @@ -19,5 +19,8 @@ Changes Bug Fixes --------- -* Abort sleep in blinkenlights UI led to crash ('abort_signal' not existing), +* [Blinkenlights UI] Abort sleep led to crash ('abort_signal' not existing), + regression from 6.5.0. + +* [Blinkenlights UI] Make exit via 'q' key work again cleanly regression from 6.5.0. diff --git a/offlineimap/ui/Curses.py b/offlineimap/ui/Curses.py index 98055ba..af41d35 100644 --- a/offlineimap/ui/Curses.py +++ b/offlineimap/ui/Curses.py @@ -487,11 +487,9 @@ class Blinkenlights(UIBase, CursesUtil): if key < 1 or key > 255: return if chr(key) == 'q': - # Request to quit. - #TODO: this causes us to bail out in main loop when the thread exits - #TODO: review and rework this mechanism. - currentThread().set_exit_exception(SystemExit("User requested shutdown")) - self.terminate() + # Request to quit completely. + self.warn("Requested shutdown via 'q'") + offlineimap.accounts.Account.set_abort_event(self.config, 3) try: index = int(chr(key)) except ValueError: