From 713c8f619d0234ab10c0a8aa5d4486f73f737a71 Mon Sep 17 00:00:00 2001 From: Glutanimate Date: Thu, 25 Mar 2021 02:28:01 +0100 Subject: [PATCH] Add three filtered deck dialog hooks Similar to deckconf hooks --- qt/aqt/filtered_deck.py | 6 ++++++ qt/tools/genhooks_gui.py | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/qt/aqt/filtered_deck.py b/qt/aqt/filtered_deck.py index b7030cebf..15c9cc134 100644 --- a/qt/aqt/filtered_deck.py +++ b/qt/aqt/filtered_deck.py @@ -10,6 +10,7 @@ from anki.errors import SearchError from anki.lang import without_unicode_isolation from anki.scheduler import FilteredDeckForUpdate from aqt import AnkiQt, colors +from aqt import gui_hooks from aqt.qt import * from aqt.scheduling_ops import add_or_update_filtered_deck from aqt.theme import theme_manager @@ -156,6 +157,8 @@ class FilteredDeckConfigDialog(QDialog): without_unicode_isolation(tr(TR.ACTIONS_OPTIONS_FOR, val=self.deck.name)) ) + gui_hooks.filtered_deck_dialog_did_load_deck(self, deck) + def reopen( self, _mw: AnkiQt, @@ -300,10 +303,13 @@ class FilteredDeckConfigDialog(QDialog): return def success(out: OpChangesWithCount) -> None: + gui_hooks.filtered_deck_dialog_did_add_or_update_deck(self, self.deck) saveGeom(self, self.GEOMETRY_KEY) aqt.dialogs.markClosed(self.DIALOG_KEY) QDialog.accept(self) + gui_hooks.filtered_deck_dialog_will_add_or_update_deck(self, self.deck) + add_or_update_filtered_deck(mw=self.mw, deck=self.deck, success=success) # Step load/save diff --git a/qt/tools/genhooks_gui.py b/qt/tools/genhooks_gui.py index ac469d976..36d0ca47c 100644 --- a/qt/tools/genhooks_gui.py +++ b/qt/tools/genhooks_gui.py @@ -284,6 +284,32 @@ hooks = [ ], doc="Called before config group is renamed", ), + # Filtered deck options + ################### + Hook( + name="filtered_deck_dialog_did_load_deck", + args=[ + "filtered_deck_dialog: aqt.filtered_deck.FilteredDeckConfigDialog", + "filtered_deck: anki.scheduler.FilteredDeckForUpdate", + ], + doc="Allows updating widget state once the filtered deck config is loaded", + ), + Hook( + name="filtered_deck_dialog_will_add_or_update_deck", + args=[ + "filtered_deck_dialog: aqt.filtered_deck.FilteredDeckConfigDialog", + "filtered_deck: anki.scheduler.FilteredDeckForUpdate", + ], + doc="Allows modifying the filtered deck config object before it is written", + ), + Hook( + name="filtered_deck_dialog_did_add_or_update_deck", + args=[ + "filtered_deck_dialog: aqt.filtered_deck.FilteredDeckConfigDialog", + "filtered_deck: anki.scheduler.FilteredDeckForUpdate", + ], + doc="Allows performing changes after a filtered deck has been added or updated", + ), # Browser ################### Hook(