From ccc42227d8d8d37117d69f25d2aed22b708252b3 Mon Sep 17 00:00:00 2001 From: Abdo Date: Fri, 13 Jun 2025 06:45:41 +0300 Subject: [PATCH] Ignore TaskManager's on_done callback if collection unloaded (#4076) * Ignore TaskManager's on_done callback if collection unloaded * Check col.db --- qt/aqt/taskman.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/qt/aqt/taskman.py b/qt/aqt/taskman.py index 2ca1c6670..143c1022a 100644 --- a/qt/aqt/taskman.py +++ b/qt/aqt/taskman.py @@ -84,8 +84,15 @@ class TaskManager(QObject): fut = executor.submit(task, **args) if on_done is not None: + + def wrapped_done(future: Future) -> None: + if uses_collection and not (self.mw.col and self.mw.col.db): + print(f"Ignored on_done as collection unloaded: {repr(on_done)}") + return + on_done(future) + fut.add_done_callback( - lambda future: self.run_on_main(lambda: on_done(future)) + lambda future: self.run_on_main(lambda: wrapped_done(future)) ) return fut