diff --git a/pylib/anki/cards.py b/pylib/anki/cards.py index d477bd5c1..df57f65fb 100644 --- a/pylib/anki/cards.py +++ b/pylib/anki/cards.py @@ -87,7 +87,7 @@ class Card: self.usn = self.col.usn() # bug check if self.queue == 2 and self.odue and not self.col.decks.isDyn(self.did): - hooks.card_odue_was_invalid_hook() + hooks.card_odue_was_invalid() assert self.due < 4294967296 self.col.db.execute( """ @@ -119,7 +119,7 @@ insert or replace into cards values self.usn = self.col.usn() # bug checks if self.queue == 2 and self.odue and not self.col.decks.isDyn(self.did): - hooks.card_odue_was_invalid_hook() + hooks.card_odue_was_invalid() assert self.due < 4294967296 self.col.db.execute( """update cards set diff --git a/pylib/anki/collection.py b/pylib/anki/collection.py index 66eea91ef..884494fb5 100644 --- a/pylib/anki/collection.py +++ b/pylib/anki/collection.py @@ -272,7 +272,7 @@ crt=?, mod=?, scm=?, dty=?, usn=?, ls=?, conf=?""", def modSchema(self, check: bool) -> None: "Mark schema modified. Call this first so user can abort if necessary." if not self.schemaChanged(): - if check and not hooks.schema_will_change_filter(proceed=True): + if check and not hooks.schema_will_change(proceed=True): raise AnkiError("abortSchemaMod") self.scm = intTime(1000) self.setMod() @@ -372,7 +372,7 @@ crt=?, mod=?, scm=?, dty=?, usn=?, ls=?, conf=?""", strids = ids2str(ids) # we need to log these independently of cards, as one side may have # more card templates - hooks.notes_will_delete_hook(self, ids) + hooks.notes_will_delete(self, ids) self._logRem(ids, REM_NOTE) self.db.execute("delete from notes where id in %s" % strids) @@ -665,12 +665,12 @@ where c.nid = n.id and c.id in %s group by nid""" fields["c%d" % (card_ord + 1)] = "1" # allow add-ons to modify the available fields - hooks.fields_will_render_hook(fields, model, data) + hooks.fields_will_render(fields, model, data) fields = runFilter("mungeFields", fields, model, data, self) # legacy # and the template prior to rendering - qfmt = hooks.card_template_will_render_filter(qfmt, True) - afmt = hooks.card_template_will_render_filter(afmt, False) + qfmt = hooks.card_template_will_render(qfmt, True) + afmt = hooks.card_template_will_render(afmt, False) # render fields qatext = render_card(self, qfmt, afmt, fields, card_ord) @@ -678,7 +678,7 @@ where c.nid = n.id and c.id in %s group by nid""" # allow add-ons to modify the generated result for type in "q", "a": - ret[type] = hooks.card_template_did_render_filter( + ret[type] = hooks.card_template_did_render( ret[type], type, fields, model, data, self ) diff --git a/pylib/anki/decks.py b/pylib/anki/decks.py index a412acbb8..f53bae2d9 100644 --- a/pylib/anki/decks.py +++ b/pylib/anki/decks.py @@ -165,7 +165,7 @@ class DeckManager: self.decks[str(id)] = g self.save(g) self.maybeAddToActive() - hooks.deck_did_create_hook(g) + hooks.deck_did_create(g) return int(id) def rem(self, did: int, cardsToo: bool = False, childrenToo: bool = True) -> None: diff --git a/pylib/anki/exporting.py b/pylib/anki/exporting.py index 974f63978..5d5ad6153 100644 --- a/pylib/anki/exporting.py +++ b/pylib/anki/exporting.py @@ -347,7 +347,7 @@ class AnkiPackageExporter(AnkiExporter): else: z.write(mpath, cStr, zipfile.ZIP_STORED) media[cStr] = unicodedata.normalize("NFC", file) - hooks.media_files_did_export_hook(c) + hooks.media_files_did_export(c) return media @@ -417,5 +417,5 @@ def exporters() -> List[Tuple[str, Any]]: id(TextNoteExporter), id(TextCardExporter), ] - hooks.exporters_list_did_create_hook(exps) + hooks.exporters_list_did_create(exps) return exps diff --git a/pylib/anki/find.py b/pylib/anki/find.py index acf8e42da..3e984a3fa 100644 --- a/pylib/anki/find.py +++ b/pylib/anki/find.py @@ -40,7 +40,7 @@ class Finder: flag=self._findFlag, ) self.search["is"] = self._findCardState - hooks.search_terms_did_prepare_hook(self.search) + hooks.search_terms_did_prepare(self.search) def findCards(self, query, order=False) -> Any: "Return a list of card ids for QUERY." diff --git a/pylib/anki/hooks.py b/pylib/anki/hooks.py index c1d9af307..78e876137 100644 --- a/pylib/anki/hooks.py +++ b/pylib/anki/hooks.py @@ -51,7 +51,7 @@ class _CardDidLeechHook: runHook("leech", card) -card_did_leech_hook = _CardDidLeechHook() +card_did_leech = _CardDidLeechHook() class _CardOdueWasInvalidHook: @@ -75,7 +75,7 @@ class _CardOdueWasInvalidHook: raise -card_odue_was_invalid_hook = _CardOdueWasInvalidHook() +card_odue_was_invalid = _CardOdueWasInvalidHook() class _CardTemplateDidRenderFilter: @@ -150,7 +150,7 @@ class _CardTemplateDidRenderFilter: return text -card_template_did_render_filter = _CardTemplateDidRenderFilter() +card_template_did_render = _CardTemplateDidRenderFilter() class _CardTemplateFilterWillApplyFilter: @@ -177,7 +177,7 @@ class _CardTemplateFilterWillApplyFilter: return field_text -card_template_filter_will_apply_filter = _CardTemplateFilterWillApplyFilter() +card_template_filter_will_apply = _CardTemplateFilterWillApplyFilter() class _CardTemplateWillRenderFilter: @@ -204,7 +204,7 @@ class _CardTemplateWillRenderFilter: return template -card_template_will_render_filter = _CardTemplateWillRenderFilter() +card_template_will_render = _CardTemplateWillRenderFilter() class _DeckDidCreateHook: @@ -230,7 +230,7 @@ class _DeckDidCreateHook: runHook("newDeck") -deck_did_create_hook = _DeckDidCreateHook() +deck_did_create = _DeckDidCreateHook() class _ExportersListDidCreateHook: @@ -256,7 +256,7 @@ class _ExportersListDidCreateHook: runHook("exportersList", exporters) -exporters_list_did_create_hook = _ExportersListDidCreateHook() +exporters_list_did_create = _ExportersListDidCreateHook() class _FieldsWillRenderHook: @@ -288,7 +288,7 @@ class _FieldsWillRenderHook: raise -fields_will_render_hook = _FieldsWillRenderHook() +fields_will_render = _FieldsWillRenderHook() class _HttpDataDidReceiveHook: @@ -312,7 +312,7 @@ class _HttpDataDidReceiveHook: raise -http_data_did_receive_hook = _HttpDataDidReceiveHook() +http_data_did_receive = _HttpDataDidReceiveHook() class _HttpDataDidSendHook: @@ -336,7 +336,7 @@ class _HttpDataDidSendHook: raise -http_data_did_send_hook = _HttpDataDidSendHook() +http_data_did_send = _HttpDataDidSendHook() class _MediaFilesDidExportHook: @@ -360,7 +360,7 @@ class _MediaFilesDidExportHook: raise -media_files_did_export_hook = _MediaFilesDidExportHook() +media_files_did_export = _MediaFilesDidExportHook() class _NoteTypeDidCreateHook: @@ -386,7 +386,7 @@ class _NoteTypeDidCreateHook: runHook("newModel") -note_type_did_create_hook = _NoteTypeDidCreateHook() +note_type_did_create = _NoteTypeDidCreateHook() class _NotesWillDeleteHook: @@ -416,7 +416,7 @@ class _NotesWillDeleteHook: runHook("remNotes", col, ids) -notes_will_delete_hook = _NotesWillDeleteHook() +notes_will_delete = _NotesWillDeleteHook() class _SchemaWillChangeFilter: @@ -441,7 +441,7 @@ class _SchemaWillChangeFilter: return proceed -schema_will_change_filter = _SchemaWillChangeFilter() +schema_will_change = _SchemaWillChangeFilter() class _SearchTermsDidPrepareHook: @@ -467,7 +467,7 @@ class _SearchTermsDidPrepareHook: runHook("search", searches) -search_terms_did_prepare_hook = _SearchTermsDidPrepareHook() +search_terms_did_prepare = _SearchTermsDidPrepareHook() class _SyncProgressDidChangeHook: @@ -493,7 +493,7 @@ class _SyncProgressDidChangeHook: runHook("syncMsg", msg) -sync_progress_did_change_hook = _SyncProgressDidChangeHook() +sync_progress_did_change = _SyncProgressDidChangeHook() class _SyncStageDidChangeHook: @@ -519,7 +519,7 @@ class _SyncStageDidChangeHook: runHook("sync", stage) -sync_stage_did_change_hook = _SyncStageDidChangeHook() +sync_stage_did_change = _SyncStageDidChangeHook() class _TagDidCreateHook: @@ -545,7 +545,7 @@ class _TagDidCreateHook: runHook("newTag") -tag_did_create_hook = _TagDidCreateHook() +tag_did_create = _TagDidCreateHook() # @@AUTOGEN@@ # Legacy hook handling diff --git a/pylib/anki/latex.py b/pylib/anki/latex.py index a9b3718be..0e2831447 100644 --- a/pylib/anki/latex.py +++ b/pylib/anki/latex.py @@ -184,4 +184,4 @@ def _errMsg(type: str, texpath: str) -> Any: # setup q/a filter - type ignored due to import cycle -hooks.card_template_did_render_filter.append(mungeQA) # type: ignore +hooks.card_template_did_render.append(mungeQA) # type: ignore diff --git a/pylib/anki/models.py b/pylib/anki/models.py index accb9ea71..b355d42a2 100644 --- a/pylib/anki/models.py +++ b/pylib/anki/models.py @@ -107,7 +107,7 @@ class ModelManager: if templates: self._syncTemplates(m) self.changed = True - hooks.note_type_did_create_hook(m) + hooks.note_type_did_create(m) def flush(self) -> None: "Flush the registry if any models were changed." diff --git a/pylib/anki/sched.py b/pylib/anki/sched.py index bc8584e30..66749fd62 100644 --- a/pylib/anki/sched.py +++ b/pylib/anki/sched.py @@ -1150,7 +1150,7 @@ did = ?, queue = %s, due = ?, usn = ? where id = ?""" card.odue = card.odid = 0 card.queue = -1 # notify UI - hooks.card_did_leech_hook(card) + hooks.card_did_leech(card) return True # Tools diff --git a/pylib/anki/schedv2.py b/pylib/anki/schedv2.py index a3ee88ed9..3959def11 100644 --- a/pylib/anki/schedv2.py +++ b/pylib/anki/schedv2.py @@ -1270,7 +1270,7 @@ where id = ? if a == 0: card.queue = -1 # notify UI - hooks.card_did_leech_hook(card) + hooks.card_did_leech(card) return True return None diff --git a/pylib/anki/sync.py b/pylib/anki/sync.py index c597beebe..7ce3a4f4c 100644 --- a/pylib/anki/sync.py +++ b/pylib/anki/sync.py @@ -55,7 +55,7 @@ class Syncer: self.col.save() # step 1: login & metadata - hooks.sync_stage_did_change_hook("login") + hooks.sync_stage_did_change("login") meta = self.server.meta() self.col.log("rmeta", meta) if not meta: @@ -95,7 +95,7 @@ class Syncer: self.col.log("basic check") return "basicCheckFailed" # step 2: startup and deletions - hooks.sync_stage_did_change_hook("meta") + hooks.sync_stage_did_change("meta") rrem = self.server.start( minUsn=self.minUsn, lnewer=self.lnewer, offset=self.col.localOffset() ) @@ -118,31 +118,31 @@ class Syncer: self.server.abort() return self._forceFullSync() # step 3: stream large tables from server - hooks.sync_stage_did_change_hook("server") + hooks.sync_stage_did_change("server") while 1: - hooks.sync_stage_did_change_hook("stream") + hooks.sync_stage_did_change("stream") chunk = self.server.chunk() self.col.log("server chunk", chunk) self.applyChunk(chunk=chunk) if chunk["done"]: break # step 4: stream to server - hooks.sync_stage_did_change_hook("client") + hooks.sync_stage_did_change("client") while 1: - hooks.sync_stage_did_change_hook("stream") + hooks.sync_stage_did_change("stream") chunk = self.chunk() self.col.log("client chunk", chunk) self.server.applyChunk(chunk=chunk) if chunk["done"]: break # step 5: sanity check - hooks.sync_stage_did_change_hook("sanity") + hooks.sync_stage_did_change("sanity") c = self.sanityCheck() ret = self.server.sanityCheck2(client=c) if ret["status"] != "ok": return self._forceFullSync() # finalize - hooks.sync_stage_did_change_hook("finalize") + hooks.sync_stage_did_change("finalize") mod = self.server.finish() self.finish(mod) return "success" @@ -501,7 +501,7 @@ class AnkiRequestsClient: buf = io.BytesIO() for chunk in resp.iter_content(chunk_size=HTTP_BUF_SIZE): - hooks.http_data_did_receive_hook(len(chunk)) + hooks.http_data_did_receive(len(chunk)) buf.write(chunk) return buf.getvalue() @@ -523,7 +523,7 @@ if os.environ.get("ANKI_NOVERIFYSSL"): class _MonitoringFile(io.BufferedReader): def read(self, size=-1) -> bytes: data = io.BufferedReader.read(self, HTTP_BUF_SIZE) - hooks.http_data_did_send_hook(len(data)) + hooks.http_data_did_send(len(data)) return data @@ -707,13 +707,13 @@ class FullSyncer(HttpSyncer): self.col = col def download(self) -> Optional[str]: - hooks.sync_stage_did_change_hook("download") + hooks.sync_stage_did_change("download") localNotEmpty = self.col.db.scalar("select 1 from cards") self.col.close() cont = self.req("download") tpath = self.col.path + ".tmp" if cont == "upgradeRequired": - hooks.sync_stage_did_change_hook("upgradeRequired") + hooks.sync_stage_did_change("upgradeRequired") return None open(tpath, "wb").write(cont) # check the received file is ok @@ -733,7 +733,7 @@ class FullSyncer(HttpSyncer): def upload(self) -> bool: "True if upload successful." - hooks.sync_stage_did_change_hook("upload") + hooks.sync_stage_did_change("upload") # make sure it's ok before we try to upload if self.col.db.scalar("pragma integrity_check") != "ok": return False @@ -765,7 +765,7 @@ class MediaSyncer: def sync(self) -> Any: # check if there have been any changes - hooks.sync_stage_did_change_hook("findMedia") + hooks.sync_stage_did_change("findMedia") self.col.log("findChanges") try: self.col.media.findChanges() @@ -835,7 +835,7 @@ class MediaSyncer: if not fnames: break - hooks.sync_progress_did_change_hook( + hooks.sync_progress_did_change( ngettext( "%d media change to upload", "%d media changes to upload", toSend ) @@ -886,7 +886,7 @@ class MediaSyncer: fnames = fnames[cnt:] n = self.downloadCount - hooks.sync_progress_did_change_hook( + hooks.sync_progress_did_change( ngettext("%d media file downloaded", "%d media files downloaded", n) % n, ) diff --git a/pylib/anki/tags.py b/pylib/anki/tags.py index db769523b..218c873fa 100644 --- a/pylib/anki/tags.py +++ b/pylib/anki/tags.py @@ -50,7 +50,7 @@ class TagManager: self.tags[t] = self.col.usn() if usn is None else usn self.changed = True if found: - hooks.tag_did_create_hook(t) # pylint: disable=undefined-loop-variable + hooks.tag_did_create(t) # pylint: disable=undefined-loop-variable def all(self) -> List: return list(self.tags.keys()) diff --git a/pylib/anki/template.py b/pylib/anki/template.py index e37eb0781..d991bfbae 100644 --- a/pylib/anki/template.py +++ b/pylib/anki/template.py @@ -15,7 +15,7 @@ the filter is skipped. Add-ons can register a filter with the following code: from anki import hooks -hooks.field_replacement_filter.append(myfunc) +hooks.field_replacement.append(myfunc) This will call myfunc, passing the field text in as the first argument. Your function should decide if it wants to modify the text by checking @@ -72,7 +72,7 @@ def apply_custom_filters( field_text = node.current_text for filter_name in node.filters: - field_text = hooks.card_template_filter_will_apply_filter( + field_text = hooks.card_template_filter_will_apply( field_text, node.field_name, filter_name, fields ) # legacy hook - the second and fifth argument are no longer used diff --git a/pylib/tests/test_schedv1.py b/pylib/tests/test_schedv1.py index f52327e96..bd5de3f08 100644 --- a/pylib/tests/test_schedv1.py +++ b/pylib/tests/test_schedv1.py @@ -373,7 +373,7 @@ def test_reviews(): def onLeech(card): hooked.append(1) - hooks.card_did_leech_hook.append(onLeech) + hooks.card_did_leech.append(onLeech) d.sched.answerCard(c, 1) assert hooked assert c.queue == -1 diff --git a/pylib/tests/test_schedv2.py b/pylib/tests/test_schedv2.py index 7c07cfa1f..dc61543c4 100644 --- a/pylib/tests/test_schedv2.py +++ b/pylib/tests/test_schedv2.py @@ -395,7 +395,7 @@ def test_reviews(): def onLeech(card): hooked.append(1) - hooks.card_did_leech_hook.append(onLeech) + hooks.card_did_leech.append(onLeech) d.sched.answerCard(c, 1) assert hooked assert c.queue == -1 diff --git a/pylib/tools/hookslib.py b/pylib/tools/hookslib.py index 800790fc4..511dfdfd7 100644 --- a/pylib/tools/hookslib.py +++ b/pylib/tools/hookslib.py @@ -84,7 +84,7 @@ class {self.classname()}: if cb in self._hooks: self._hooks.remove(cb) {self.fire_code()} -{self.full_name()} = {self.classname()}() +{self.name} = {self.classname()}() """ return code diff --git a/qt/aqt/addcards.py b/qt/aqt/addcards.py index c8eb7c581..fce0bad75 100644 --- a/qt/aqt/addcards.py +++ b/qt/aqt/addcards.py @@ -43,8 +43,8 @@ class AddCards(QDialog): self.history: List[int] = [] self.previousNote = None restoreGeom(self, "add") - gui_hooks.state_did_reset_hook.append(self.onReset) - gui_hooks.current_note_type_did_change_hook.append(self.onModelChange) + gui_hooks.state_did_reset.append(self.onReset) + gui_hooks.current_note_type_did_change.append(self.onModelChange) addCloseShortcut(self) self.show() @@ -156,7 +156,7 @@ class AddCards(QDialog): else: a = m.addAction(_("(Note deleted)")) a.setEnabled(False) - gui_hooks.add_cards_history_menu_will_show_hook(self, m) + gui_hooks.add_cards_history_menu_will_show(self, m) m.exec_(self.historyButton.mapToGlobal(QPoint(0, 0))) def editHistory(self, nid): @@ -196,7 +196,7 @@ question on all cards.""" self.addHistory(note) self.mw.requireReset() self.previousNote = note - gui_hooks.add_cards_note_did_add_hook(note) + gui_hooks.add_cards_note_did_add(note) return note def addCards(self): @@ -223,8 +223,8 @@ question on all cards.""" self.ifCanClose(self._reject) def _reject(self) -> None: - gui_hooks.state_did_reset_hook.remove(self.onReset) - gui_hooks.current_note_type_did_change_hook.remove(self.onModelChange) + gui_hooks.state_did_reset.remove(self.onReset) + gui_hooks.current_note_type_did_change.remove(self.onModelChange) clearAudioQueue() self.removeTempNote(self.editor.note) self.editor.cleanup() diff --git a/qt/aqt/browser.py b/qt/aqt/browser.py index b8ba10417..eb4363ce0 100644 --- a/qt/aqt/browser.py +++ b/qt/aqt/browser.py @@ -639,7 +639,7 @@ class Browser(QMainWindow): self.pgDownCut = QShortcut(QKeySequence("Shift+End"), self) self.pgDownCut.activated.connect(self.onLastCard) # add-on hook - gui_hooks.browser_menus_did_setup_hook(self) + gui_hooks.browser_menus_did_setup(self) self.mw.maybeHideAccelerators(self) # context menu @@ -653,7 +653,7 @@ class Browser(QMainWindow): m.addSeparator() for act in self.form.menu_Notes.actions(): m.addAction(act) - gui_hooks.browser_context_menu_will_show_hook(self, m) + gui_hooks.browser_context_menu_will_show(self, m) qtMenuShortcutWorkaround(m) m.exec_(QCursor.pos()) @@ -844,7 +844,7 @@ class Browser(QMainWindow): self.editor.card = self.card self.singleCard = True self._updateFlagsMenu() - gui_hooks.browser_row_did_change_hook(self) + gui_hooks.browser_row_did_change(self) self._renderPreview(True) def refreshCurrentCard(self, note): @@ -1716,9 +1716,7 @@ where id in %s""" play(audio) txt = mungeQA(self.col, txt) - gui_hooks.card_text_filter( - txt, c, "preview" + self._previewState.capitalize() - ) + gui_hooks.card_text(txt, c, "preview" + self._previewState.capitalize()) self._lastPreviewState = self._previewStateAndMod() self._updatePreviewButtons() self._previewWeb.eval("{}({},'{}');".format(func, json.dumps(txt), bodyclass)) @@ -2020,24 +2018,24 @@ update cards set usn=?, mod=?, did=? where id in """ ###################################################################### def setupHooks(self): - gui_hooks.undo_state_did_change_hook.append(self.onUndoState) - gui_hooks.state_did_reset_hook.append(self.onReset) - gui_hooks.editor_typing_timer_did_fire_hook.append(self.refreshCurrentCard) - gui_hooks.editor_note_did_load_hook.append(self.onLoadNote) - gui_hooks.editor_field_did_lose_focus_filter.append(self.refreshCurrentCard) - hooks.tag_did_create_hook.append(self.maybeRefreshSidebar) - hooks.note_type_did_create_hook.append(self.maybeRefreshSidebar) - hooks.deck_did_create_hook.append(self.maybeRefreshSidebar) + gui_hooks.undo_state_did_change.append(self.onUndoState) + gui_hooks.state_did_reset.append(self.onReset) + gui_hooks.editor_typing_timer_did_fire.append(self.refreshCurrentCard) + gui_hooks.editor_note_did_load.append(self.onLoadNote) + gui_hooks.editor_field_did_lose_focus.append(self.refreshCurrentCard) + hooks.tag_did_create.append(self.maybeRefreshSidebar) + hooks.note_type_did_create.append(self.maybeRefreshSidebar) + hooks.deck_did_create.append(self.maybeRefreshSidebar) def teardownHooks(self): - gui_hooks.undo_state_did_change_hook.remove(self.onUndoState) - gui_hooks.state_did_reset_hook.remove(self.onReset) - gui_hooks.editor_typing_timer_did_fire_hook.remove(self.refreshCurrentCard) - gui_hooks.editor_note_did_load_hook.remove(self.onLoadNote) - gui_hooks.editor_field_did_lose_focus_filter.remove(self.refreshCurrentCard) - hooks.tag_did_create_hook.remove(self.maybeRefreshSidebar) - hooks.note_type_did_create_hook.remove(self.maybeRefreshSidebar) - hooks.deck_did_create_hook.remove(self.maybeRefreshSidebar) + gui_hooks.undo_state_did_change.remove(self.onUndoState) + gui_hooks.state_did_reset.remove(self.onReset) + gui_hooks.editor_typing_timer_did_fire.remove(self.refreshCurrentCard) + gui_hooks.editor_note_did_load.remove(self.onLoadNote) + gui_hooks.editor_field_did_lose_focus.remove(self.refreshCurrentCard) + hooks.tag_did_create.remove(self.maybeRefreshSidebar) + hooks.note_type_did_create.remove(self.maybeRefreshSidebar) + hooks.deck_did_create.remove(self.maybeRefreshSidebar) def onUndoState(self, on): self.form.actionUndo.setEnabled(on) @@ -2271,8 +2269,8 @@ class ChangeModel(QDialog): self.setWindowModality(Qt.WindowModal) self.setup() restoreGeom(self, "changeModel") - gui_hooks.state_did_reset_hook.append(self.onReset) - gui_hooks.current_note_type_did_change_hook.append(self.onReset) + gui_hooks.state_did_reset.append(self.onReset) + gui_hooks.current_note_type_did_change.append(self.onReset) self.exec_() def setup(self): @@ -2395,8 +2393,8 @@ class ChangeModel(QDialog): ) def cleanup(self): - gui_hooks.state_did_reset_hook.remove(self.onReset) - gui_hooks.current_note_type_did_change_hook.remove(self.onReset) + gui_hooks.state_did_reset.remove(self.onReset) + gui_hooks.current_note_type_did_change.remove(self.onReset) self.modelChooser.cleanup() saveGeom(self, "changeModel") diff --git a/qt/aqt/clayout.py b/qt/aqt/clayout.py index 38b51530a..dafc0bac6 100644 --- a/qt/aqt/clayout.py +++ b/qt/aqt/clayout.py @@ -335,10 +335,10 @@ Please create a new card type first.""" bodyclass = bodyClass(self.mw.col, c) q = ti(mungeQA(self.mw.col, c.q(reload=True))) - q = gui_hooks.card_text_filter(q, c, "clayoutQuestion") + q = gui_hooks.card_text(q, c, "clayoutQuestion") a = ti(mungeQA(self.mw.col, c.a()), type="a") - a = gui_hooks.card_text_filter(a, c, "clayoutAnswer") + a = gui_hooks.card_text(a, c, "clayoutAnswer") # use _showAnswer to avoid the longer delay self.pform.frontWeb.eval("_showAnswer(%s,'%s');" % (json.dumps(q), bodyclass)) diff --git a/qt/aqt/deckbrowser.py b/qt/aqt/deckbrowser.py index b99d3ad24..33a6ba96a 100644 --- a/qt/aqt/deckbrowser.py +++ b/qt/aqt/deckbrowser.py @@ -245,7 +245,7 @@ where id > ?""", a.triggered.connect(lambda b, did=did: self._export(did)) a = m.addAction(_("Delete")) a.triggered.connect(lambda b, did=did: self._delete(did)) - gui_hooks.deck_browser_options_menu_will_show_hook(m, did) + gui_hooks.deck_browser_options_menu_will_show(m, did) m.exec_(QCursor.pos()) def _export(self, did): diff --git a/qt/aqt/deckchooser.py b/qt/aqt/deckchooser.py index 6248a6fe5..15d4d3466 100644 --- a/qt/aqt/deckchooser.py +++ b/qt/aqt/deckchooser.py @@ -19,7 +19,7 @@ class DeckChooser(QHBoxLayout): self.setSpacing(8) self.setupDecks() self.widget.setLayout(self) - gui_hooks.current_note_type_did_change_hook.append(self.onModelChange) + gui_hooks.current_note_type_did_change.append(self.onModelChange) def setupDecks(self): if self.label: @@ -64,7 +64,7 @@ class DeckChooser(QHBoxLayout): self.widget.hide() def cleanup(self): - gui_hooks.current_note_type_did_change_hook.remove(self.onModelChange) + gui_hooks.current_note_type_did_change.remove(self.onModelChange) def onModelChange(self): if not self.mw.col.conf.get("addToCur", True): diff --git a/qt/aqt/downloader.py b/qt/aqt/downloader.py index f2ed8c85e..379f2588e 100644 --- a/qt/aqt/downloader.py +++ b/qt/aqt/downloader.py @@ -57,7 +57,7 @@ class Downloader(QThread): self.recvTotal += bytes self.recv.emit() - hooks.http_data_did_receive_hook.append(recvEvent) + hooks.http_data_did_receive.append(recvEvent) client = AnkiRequestsClient() try: resp = client.get(aqt.appShared + "download/%s?v=2.1" % self.code) @@ -75,7 +75,7 @@ class Downloader(QThread): self.error = _("Please check your internet connection.") + "\n\n" + str(e) return finally: - hooks.http_data_did_receive_hook.remove(recvEvent) + hooks.http_data_did_receive.remove(recvEvent) self.fname = re.match( "attachment; filename=(.+)", resp.headers["content-disposition"] diff --git a/qt/aqt/editcurrent.py b/qt/aqt/editcurrent.py index 2b22411b8..4e2520b01 100644 --- a/qt/aqt/editcurrent.py +++ b/qt/aqt/editcurrent.py @@ -26,7 +26,7 @@ class EditCurrent(QDialog): self.editor.card = self.mw.reviewer.card self.editor.setNote(self.mw.reviewer.card.note(), focusTo=0) restoreGeom(self, "editcurrent") - gui_hooks.state_did_reset_hook.append(self.onReset) + gui_hooks.state_did_reset.append(self.onReset) self.mw.requireReset() self.show() # reset focus after open, taking care not to retain webview @@ -40,7 +40,7 @@ class EditCurrent(QDialog): n.load() # reload in case the model changed except: # card's been deleted - gui_hooks.state_did_reset_hook.remove(self.onReset) + gui_hooks.state_did_reset.remove(self.onReset) self.editor.setNote(None) self.mw.reset() aqt.dialogs.markClosed("EditCurrent") @@ -59,7 +59,7 @@ class EditCurrent(QDialog): self.editor.saveNow(self._saveAndClose) def _saveAndClose(self): - gui_hooks.state_did_reset_hook.remove(self.onReset) + gui_hooks.state_did_reset.remove(self.onReset) r = self.mw.reviewer try: r.card.load() diff --git a/qt/aqt/editor.py b/qt/aqt/editor.py index 3e287e458..c532db0f9 100644 --- a/qt/aqt/editor.py +++ b/qt/aqt/editor.py @@ -141,7 +141,7 @@ class Editor: self._addButton("more", "more"), ] ) - gui_hooks.editor_buttons_did_setup_hook(righttopbtns, self) + gui_hooks.editor_buttons_did_setup(righttopbtns, self) # legacy filter righttopbtns = runFilter("setupEditorButtons", righttopbtns, self) topbuts = """ @@ -285,7 +285,7 @@ class Editor: ("Ctrl+Shift+X", self.onHtmlEdit), ("Ctrl+Shift+T", self.onFocusTags, True), ] - gui_hooks.editor_shortcuts_did_setup_hook(cuts, self) + gui_hooks.editor_shortcuts_did_setup(cuts, self) for row in cuts: if len(row) == 2: keys, fn = row # pylint: disable=unbalanced-tuple-unpacking @@ -358,20 +358,20 @@ class Editor: if type == "blur": self.currentField = None # run any filters - if gui_hooks.editor_field_did_lose_focus_filter(False, self.note, ord): + if gui_hooks.editor_field_did_lose_focus(False, self.note, ord): # something updated the note; update it after a subsequent focus # event has had time to fire self.mw.progress.timer(100, self.loadNoteKeepingFocus, False) else: self.checkValid() else: - gui_hooks.editor_typing_timer_did_fire_hook(self.note) + gui_hooks.editor_typing_timer_did_fire(self.note) self.checkValid() # focused into field? elif cmd.startswith("focus"): (type, num) = cmd.split(":", 1) self.currentField = int(num) - gui_hooks.editor_field_did_gain_focus_hook(self.note, self.currentField) + gui_hooks.editor_field_did_gain_focus(self.note, self.currentField) elif cmd in self._links: self._links[cmd](self) else: @@ -416,7 +416,7 @@ class Editor: self.checkValid() if focusTo is not None: self.web.setFocus() - gui_hooks.editor_note_did_load_hook(self) + gui_hooks.editor_note_did_load(self) js = "setFields(%s); setFonts(%s); focusField(%s); setNoteId(%s)" % ( json.dumps(data), @@ -428,7 +428,7 @@ class Editor: def fonts(self): return [ - (gui_hooks.editor_font_for_field_filter(f["font"]), f["size"], f["rtl"]) + (gui_hooks.editor_font_for_field(f["font"]), f["size"], f["rtl"]) for f in self.note.model()["flds"] ] @@ -536,7 +536,7 @@ class Editor: self.tags.setText(self.mw.col.tags.join(self.note.tags).strip()) if not self.addMode: self.note.flush() - gui_hooks.editor_tags_did_update_hook(self.note) + gui_hooks.editor_tags_did_update(self.note) def saveAddModeVars(self): if self.addMode: @@ -1111,7 +1111,7 @@ class EditorWebView(AnkiWebView): a.triggered.connect(self.onCopy) a = m.addAction(_("Paste")) a.triggered.connect(self.onPaste) - gui_hooks.editor_context_menu_will_show_hook(self, m) + gui_hooks.editor_context_menu_will_show(self, m) m.popup(QCursor.pos()) @@ -1122,4 +1122,4 @@ def fontMungeHack(font): return re.sub(" L$", " Light", font) -gui_hooks.editor_font_for_field_filter.append(fontMungeHack) +gui_hooks.editor_font_for_field.append(fontMungeHack) diff --git a/qt/aqt/exporting.py b/qt/aqt/exporting.py index 82558573b..964685927 100644 --- a/qt/aqt/exporting.py +++ b/qt/aqt/exporting.py @@ -132,9 +132,9 @@ class ExportDialog(QDialog): ) % cnt ) - hooks.media_files_did_export_hook.append(exportedMedia) + hooks.media_files_did_export.append(exportedMedia) self.exporter.exportInto(file) - hooks.media_files_did_export_hook.remove(exportedMedia) + hooks.media_files_did_export.remove(exportedMedia) period = 3000 if self.isVerbatim: msg = _("Collection exported.") diff --git a/qt/aqt/gui_hooks.py b/qt/aqt/gui_hooks.py index 1077edfd4..8f8e9ff8c 100644 --- a/qt/aqt/gui_hooks.py +++ b/qt/aqt/gui_hooks.py @@ -46,7 +46,7 @@ class _AddCardsHistoryMenuWillShowHook: runHook("AddCards.onHistory", addcards, menu) -add_cards_history_menu_will_show_hook = _AddCardsHistoryMenuWillShowHook() +add_cards_history_menu_will_show = _AddCardsHistoryMenuWillShowHook() class _AddCardsNoteDidAddHook: @@ -72,7 +72,7 @@ class _AddCardsNoteDidAddHook: runHook("AddCards.noteAdded", note) -add_cards_note_did_add_hook = _AddCardsNoteDidAddHook() +add_cards_note_did_add = _AddCardsNoteDidAddHook() class _BrowserContextMenuWillShowHook: @@ -98,7 +98,7 @@ class _BrowserContextMenuWillShowHook: runHook("browser.onContextMenu", browser, menu) -browser_context_menu_will_show_hook = _BrowserContextMenuWillShowHook() +browser_context_menu_will_show = _BrowserContextMenuWillShowHook() class _BrowserMenusDidSetupHook: @@ -124,7 +124,7 @@ class _BrowserMenusDidSetupHook: runHook("browser.setupMenus", browser) -browser_menus_did_setup_hook = _BrowserMenusDidSetupHook() +browser_menus_did_setup = _BrowserMenusDidSetupHook() class _BrowserRowDidChangeHook: @@ -150,7 +150,7 @@ class _BrowserRowDidChangeHook: runHook("browser.rowChanged", browser) -browser_row_did_change_hook = _BrowserRowDidChangeHook() +browser_row_did_change = _BrowserRowDidChangeHook() class _CardTextFilter: @@ -179,7 +179,7 @@ class _CardTextFilter: return text -card_text_filter = _CardTextFilter() +card_text = _CardTextFilter() class _CollectionDidLoadHook: @@ -205,7 +205,7 @@ class _CollectionDidLoadHook: runHook("colLoading", col) -collection_did_load_hook = _CollectionDidLoadHook() +collection_did_load = _CollectionDidLoadHook() class _CurrentNoteTypeDidChangeHook: @@ -231,7 +231,7 @@ class _CurrentNoteTypeDidChangeHook: runHook("currentModelChanged") -current_note_type_did_change_hook = _CurrentNoteTypeDidChangeHook() +current_note_type_did_change = _CurrentNoteTypeDidChangeHook() class _DeckBrowserOptionsMenuWillShowHook: @@ -257,7 +257,7 @@ class _DeckBrowserOptionsMenuWillShowHook: runHook("showDeckOptions", menu, deck_id) -deck_browser_options_menu_will_show_hook = _DeckBrowserOptionsMenuWillShowHook() +deck_browser_options_menu_will_show = _DeckBrowserOptionsMenuWillShowHook() class _EditorButtonsDidSetupHook: @@ -281,7 +281,7 @@ class _EditorButtonsDidSetupHook: raise -editor_buttons_did_setup_hook = _EditorButtonsDidSetupHook() +editor_buttons_did_setup = _EditorButtonsDidSetupHook() class _EditorContextMenuWillShowHook: @@ -307,7 +307,7 @@ class _EditorContextMenuWillShowHook: runHook("EditorWebView.contextMenuEvent", editor_webview, menu) -editor_context_menu_will_show_hook = _EditorContextMenuWillShowHook() +editor_context_menu_will_show = _EditorContextMenuWillShowHook() class _EditorFieldDidGainFocusHook: @@ -333,7 +333,7 @@ class _EditorFieldDidGainFocusHook: runHook("editFocusGained", note, current_field_idx) -editor_field_did_gain_focus_hook = _EditorFieldDidGainFocusHook() +editor_field_did_gain_focus = _EditorFieldDidGainFocusHook() class _EditorFieldDidLoseFocusFilter: @@ -362,7 +362,7 @@ class _EditorFieldDidLoseFocusFilter: return changed -editor_field_did_lose_focus_filter = _EditorFieldDidLoseFocusFilter() +editor_field_did_lose_focus = _EditorFieldDidLoseFocusFilter() class _EditorFontForFieldFilter: @@ -389,7 +389,7 @@ class _EditorFontForFieldFilter: return font -editor_font_for_field_filter = _EditorFontForFieldFilter() +editor_font_for_field = _EditorFontForFieldFilter() class _EditorNoteDidLoadHook: @@ -415,7 +415,7 @@ class _EditorNoteDidLoadHook: runHook("loadNote", editor) -editor_note_did_load_hook = _EditorNoteDidLoadHook() +editor_note_did_load = _EditorNoteDidLoadHook() class _EditorShortcutsDidSetupHook: @@ -441,7 +441,7 @@ class _EditorShortcutsDidSetupHook: runHook("setupEditorShortcuts", shortcuts, editor) -editor_shortcuts_did_setup_hook = _EditorShortcutsDidSetupHook() +editor_shortcuts_did_setup = _EditorShortcutsDidSetupHook() class _EditorTagsDidUpdateHook: @@ -467,7 +467,7 @@ class _EditorTagsDidUpdateHook: runHook("tagsUpdated", note) -editor_tags_did_update_hook = _EditorTagsDidUpdateHook() +editor_tags_did_update = _EditorTagsDidUpdateHook() class _EditorTypingTimerDidFireHook: @@ -493,7 +493,7 @@ class _EditorTypingTimerDidFireHook: runHook("editTimer", note) -editor_typing_timer_did_fire_hook = _EditorTypingTimerDidFireHook() +editor_typing_timer_did_fire = _EditorTypingTimerDidFireHook() class _MpvDidIdleHook: @@ -517,7 +517,7 @@ class _MpvDidIdleHook: raise -mpv_did_idle_hook = _MpvDidIdleHook() +mpv_did_idle = _MpvDidIdleHook() class _MpvWillPlayHook: @@ -543,7 +543,7 @@ class _MpvWillPlayHook: runHook("mpvWillPlay", file) -mpv_will_play_hook = _MpvWillPlayHook() +mpv_will_play = _MpvWillPlayHook() class _ProfileDidOpenHook: @@ -569,7 +569,7 @@ class _ProfileDidOpenHook: runHook("profileLoaded") -profile_did_open_hook = _ProfileDidOpenHook() +profile_did_open = _ProfileDidOpenHook() class _ProfileWillCloseHook: @@ -595,7 +595,7 @@ class _ProfileWillCloseHook: runHook("unloadProfile") -profile_will_close_hook = _ProfileWillCloseHook() +profile_will_close = _ProfileWillCloseHook() class _ReviewDidUndoHook: @@ -621,7 +621,7 @@ class _ReviewDidUndoHook: runHook("revertedCard", card_id) -review_did_undo_hook = _ReviewDidUndoHook() +review_did_undo = _ReviewDidUndoHook() class _ReviewerAnswerDidShowHook: @@ -647,7 +647,7 @@ class _ReviewerAnswerDidShowHook: runHook("showAnswer") -reviewer_answer_did_show_hook = _ReviewerAnswerDidShowHook() +reviewer_answer_did_show = _ReviewerAnswerDidShowHook() class _ReviewerContextMenuWillShowHook: @@ -673,7 +673,7 @@ class _ReviewerContextMenuWillShowHook: runHook("Reviewer.contextMenuEvent", reviewer, menu) -reviewer_context_menu_will_show_hook = _ReviewerContextMenuWillShowHook() +reviewer_context_menu_will_show = _ReviewerContextMenuWillShowHook() class _ReviewerQuestionDidShowHook: @@ -699,7 +699,7 @@ class _ReviewerQuestionDidShowHook: runHook("showQuestion") -reviewer_question_did_show_hook = _ReviewerQuestionDidShowHook() +reviewer_question_did_show = _ReviewerQuestionDidShowHook() class _ReviewerWillEndHook: @@ -727,7 +727,7 @@ class _ReviewerWillEndHook: runHook("reviewCleanup") -reviewer_will_end_hook = _ReviewerWillEndHook() +reviewer_will_end = _ReviewerWillEndHook() class _StateDidChangeHook: @@ -753,7 +753,7 @@ class _StateDidChangeHook: runHook("afterStateChange", new_state, old_state) -state_did_change_hook = _StateDidChangeHook() +state_did_change = _StateDidChangeHook() class _StateDidResetHook: @@ -781,7 +781,7 @@ class _StateDidResetHook: runHook("reset") -state_did_reset_hook = _StateDidResetHook() +state_did_reset = _StateDidResetHook() class _StateDidRevertHook: @@ -809,7 +809,7 @@ class _StateDidRevertHook: runHook("revertedState", action) -state_did_revert_hook = _StateDidRevertHook() +state_did_revert = _StateDidRevertHook() class _StateShortcutsWillChangeHook: @@ -833,7 +833,7 @@ class _StateShortcutsWillChangeHook: raise -state_shortcuts_will_change_hook = _StateShortcutsWillChangeHook() +state_shortcuts_will_change = _StateShortcutsWillChangeHook() class _StateWillChangeHook: @@ -859,7 +859,7 @@ class _StateWillChangeHook: runHook("beforeStateChange", new_state, old_state) -state_will_change_hook = _StateWillChangeHook() +state_will_change = _StateWillChangeHook() class _StyleDidSetupFilter: @@ -886,7 +886,7 @@ class _StyleDidSetupFilter: return style -style_did_setup_filter = _StyleDidSetupFilter() +style_did_setup = _StyleDidSetupFilter() class _UndoStateDidChangeHook: @@ -912,7 +912,7 @@ class _UndoStateDidChangeHook: runHook("undoState", can_undo) -undo_state_did_change_hook = _UndoStateDidChangeHook() +undo_state_did_change = _UndoStateDidChangeHook() class _WebviewContextMenuWillShowHook: @@ -938,5 +938,5 @@ class _WebviewContextMenuWillShowHook: runHook("AnkiWebView.contextMenuEvent", webview, menu) -webview_context_menu_will_show_hook = _WebviewContextMenuWillShowHook() +webview_context_menu_will_show = _WebviewContextMenuWillShowHook() # @@AUTOGEN@@ diff --git a/qt/aqt/importing.py b/qt/aqt/importing.py index e8d6fd1b3..e1d907239 100644 --- a/qt/aqt/importing.py +++ b/qt/aqt/importing.py @@ -86,7 +86,7 @@ class ImportDialog(QDialog): self.setupOptions() self.modelChanged() self.frm.autoDetect.setVisible(self.importer.needDelimiter) - gui_hooks.current_note_type_did_change_hook.append(self.modelChanged) + gui_hooks.current_note_type_did_change.append(self.modelChanged) self.frm.autoDetect.clicked.connect(self.onDelimiter) self.updateDelimiterButtonText() self.frm.allowHTML.setChecked(self.mw.pm.profile.get("allowHTML", True)) @@ -280,7 +280,7 @@ you can enter it here. Use \\t to represent tab.""" def reject(self): self.modelChooser.cleanup() self.deck.cleanup() - gui_hooks.current_note_type_did_change_hook.remove(self.modelChanged) + gui_hooks.current_note_type_did_change.remove(self.modelChanged) QDialog.reject(self) def helpRequested(self): diff --git a/qt/aqt/main.py b/qt/aqt/main.py index cb05f2a1a..fe9c9811a 100644 --- a/qt/aqt/main.py +++ b/qt/aqt/main.py @@ -341,7 +341,7 @@ close the profile or restart Anki.""" else: self.handleImport(self.pendingImport) self.pendingImport = None - gui_hooks.profile_did_open_hook() + gui_hooks.profile_did_open() if onsuccess: onsuccess() @@ -350,7 +350,7 @@ close the profile or restart Anki.""" self._unloadProfile() onsuccess() - gui_hooks.profile_will_close_hook() + gui_hooks.profile_will_close() self.unloadCollection(callback) def _unloadProfile(self) -> None: @@ -560,11 +560,11 @@ from the profile screen." cleanup(state) self.clearStateShortcuts() self.state = state - gui_hooks.state_will_change_hook(state, oldState) + gui_hooks.state_will_change(state, oldState) getattr(self, "_" + state + "State")(oldState, *args) if state != "resetRequired": self.bottomWeb.show() - gui_hooks.state_did_change_hook(state, oldState) + gui_hooks.state_did_change(state, oldState) def _deckBrowserState(self, oldState: str) -> None: self.deckBrowser.show() @@ -574,7 +574,7 @@ from the profile screen." self.enableColMenuItems() # ensure cwd is set if media dir exists self.col.media.dir() - gui_hooks.collection_did_load_hook(self.col) + gui_hooks.collection_did_load(self.col) self.moveToState("overview") def _selectedDeck(self) -> Optional[Dict[str, Any]]: @@ -605,7 +605,7 @@ from the profile screen." if self.col: if not guiOnly: self.col.reset() - gui_hooks.state_did_reset_hook() + gui_hooks.state_did_reset() self.maybeEnableUndo() self.moveToState(self.state) @@ -847,7 +847,7 @@ QTreeWidget { """ # allow addons to modify the styling - buf = gui_hooks.style_did_setup_filter(buf) + buf = gui_hooks.style_did_setup(buf) # allow users to extend styling p = os.path.join(aqt.mw.pm.base, "style.css") @@ -884,7 +884,7 @@ QTreeWidget { return qshortcuts def setStateShortcuts(self, shortcuts: List[Tuple[str, Callable]]) -> None: - gui_hooks.state_shortcuts_will_change_hook(self.state, shortcuts) + gui_hooks.state_shortcuts_will_change(self.state, shortcuts) # legacy hook runHook(self.state + "StateShortcuts", shortcuts) self.stateShortcuts = self.applyShortcuts(shortcuts) @@ -928,22 +928,22 @@ QTreeWidget { self.col.sched.reset() self.reviewer.cardQueue.append(card) self.reviewer.nextCard() - gui_hooks.review_did_undo_hook(cid) + gui_hooks.review_did_undo(cid) else: self.reset() tooltip(_("Reverted to state prior to '%s'.") % n.lower()) - gui_hooks.state_did_revert_hook(n) + gui_hooks.state_did_revert(n) self.maybeEnableUndo() def maybeEnableUndo(self) -> None: if self.col and self.col.undoName(): self.form.actionUndo.setText(_("Undo %s") % self.col.undoName()) self.form.actionUndo.setEnabled(True) - gui_hooks.undo_state_did_change_hook(True) + gui_hooks.undo_state_did_change(True) else: self.form.actionUndo.setText(_("Undo")) self.form.actionUndo.setEnabled(False) - gui_hooks.undo_state_did_change_hook(False) + gui_hooks.undo_state_did_change(False) def checkpoint(self, name): self.col.save(name) @@ -1153,12 +1153,12 @@ Difference to correct time: %s.""" ########################################################################## def setupHooks(self) -> None: - hooks.schema_will_change_filter.append(self.onSchemaMod) - hooks.notes_will_delete_hook.append(self.onRemNotes) - hooks.card_odue_was_invalid_hook.append(self.onOdueInvalid) + hooks.schema_will_change.append(self.onSchemaMod) + hooks.notes_will_delete.append(self.onRemNotes) + hooks.card_odue_was_invalid.append(self.onOdueInvalid) - gui_hooks.mpv_will_play_hook.append(self.on_mpv_will_play) - gui_hooks.mpv_did_idle_hook.append(self.on_mpv_idle) + gui_hooks.mpv_will_play.append(self.on_mpv_will_play) + gui_hooks.mpv_did_idle.append(self.on_mpv_idle) self._activeWindowOnPlay: Optional[QWidget] = None diff --git a/qt/aqt/modelchooser.py b/qt/aqt/modelchooser.py index a9b3defba..0ddc0a8ee 100644 --- a/qt/aqt/modelchooser.py +++ b/qt/aqt/modelchooser.py @@ -18,7 +18,7 @@ class ModelChooser(QHBoxLayout): self.setContentsMargins(0, 0, 0, 0) self.setSpacing(8) self.setupModels() - gui_hooks.state_did_reset_hook.append(self.onReset) + gui_hooks.state_did_reset.append(self.onReset) self.widget.setLayout(self) def setupModels(self): @@ -41,7 +41,7 @@ class ModelChooser(QHBoxLayout): self.updateModels() def cleanup(self): - gui_hooks.state_did_reset_hook.remove(self.onReset) + gui_hooks.state_did_reset.remove(self.onReset) def onReset(self): self.updateModels() @@ -86,7 +86,7 @@ class ModelChooser(QHBoxLayout): cdeck = self.deck.decks.current() cdeck["mid"] = m["id"] self.deck.decks.save(cdeck) - gui_hooks.current_note_type_did_change_hook(current) + gui_hooks.current_note_type_did_change(current) self.mw.reset() def updateModels(self): diff --git a/qt/aqt/reviewer.py b/qt/aqt/reviewer.py index 6dcff1d8d..b56bc6b42 100644 --- a/qt/aqt/reviewer.py +++ b/qt/aqt/reviewer.py @@ -41,7 +41,7 @@ class Reviewer: self.typeCorrect = None # web init happens before this is set self.state = None self.bottom = aqt.toolbar.BottomBar(mw, mw.bottomWeb) - hooks.card_did_leech_hook.append(self.onLeech) + hooks.card_did_leech.append(self.onLeech) def show(self): self.mw.col.reset() @@ -62,7 +62,7 @@ class Reviewer: return def cleanup(self): - gui_hooks.reviewer_will_end_hook() + gui_hooks.reviewer_will_end() # Fetching a card ########################################################################## @@ -187,7 +187,7 @@ The front of this card is empty. Please run Tools>Empty Cards.""" playFromText(q) # render & update bottom q = self._mungeQA(q) - q = gui_hooks.card_text_filter(q, c, "reviewQuestion") + q = gui_hooks.card_text(q, c, "reviewQuestion") bodyclass = bodyClass(self.mw.col, c) @@ -199,7 +199,7 @@ The front of this card is empty. Please run Tools>Empty Cards.""" if self.typeCorrect: self.mw.web.setFocus() # user hook - gui_hooks.reviewer_question_did_show_hook(c) + gui_hooks.reviewer_question_did_show(c) def autoplay(self, card): return self.mw.col.decks.confForDid(card.odid or card.did)["autoplay"] @@ -229,12 +229,12 @@ The front of this card is empty. Please run Tools>Empty Cards.""" if self.autoplay(c): playFromText(a) a = self._mungeQA(a) - a = gui_hooks.card_text_filter(a, c, "reviewAnswer") + a = gui_hooks.card_text(a, c, "reviewAnswer") # render and update bottom self.web.eval("_showAnswer(%s);" % json.dumps(a)) self._showEaseButtons() # user hook - gui_hooks.reviewer_answer_did_show_hook(c) + gui_hooks.reviewer_answer_did_show(c) # Answering a card ############################################################ @@ -694,7 +694,7 @@ time = %(time)d; m = QMenu(self.mw) self._addMenuItems(m, opts) - gui_hooks.reviewer_context_menu_will_show_hook(self, m) + gui_hooks.reviewer_context_menu_will_show(self, m) qtMenuShortcutWorkaround(m) m.exec_(QCursor.pos()) diff --git a/qt/aqt/sound.py b/qt/aqt/sound.py index 4f03741c1..265081b79 100644 --- a/qt/aqt/sound.py +++ b/qt/aqt/sound.py @@ -157,7 +157,7 @@ class MpvManager(MPV): super().__init__(window_id=None, debug=False) def queueFile(self, file: str) -> None: - gui_hooks.mpv_will_play_hook(file) + gui_hooks.mpv_will_play(file) path = os.path.join(os.getcwd(), file) self.command("loadfile", path, "append-play") @@ -172,7 +172,7 @@ class MpvManager(MPV): self.command("seek", secs, "relative") def on_idle(self) -> None: - gui_hooks.mpv_did_idle_hook() + gui_hooks.mpv_did_idle() def setMpvConfigBase(base) -> None: @@ -377,7 +377,7 @@ def stopMplayer(*args) -> None: cleanupOldMplayerProcesses() -gui_hooks.profile_will_close_hook.append(stopMplayer) +gui_hooks.profile_will_close.append(stopMplayer) # PyAudio recording ########################################################################## diff --git a/qt/aqt/studydeck.py b/qt/aqt/studydeck.py index acc250254..986992e11 100644 --- a/qt/aqt/studydeck.py +++ b/qt/aqt/studydeck.py @@ -32,7 +32,7 @@ class StudyDeck(QDialog): self.form.setupUi(self) self.form.filter.installEventFilter(self) self.cancel = cancel - gui_hooks.state_did_reset_hook.append(self.onReset) + gui_hooks.state_did_reset.append(self.onReset) self.geomKey = "studyDeck-" + geomKey restoreGeom(self, self.geomKey) if not cancel: @@ -120,7 +120,7 @@ class StudyDeck(QDialog): def accept(self): saveGeom(self, self.geomKey) - gui_hooks.state_did_reset_hook.remove(self.onReset) + gui_hooks.state_did_reset.remove(self.onReset) row = self.form.list.currentRow() if row < 0: showInfo(_("Please select something.")) @@ -130,7 +130,7 @@ class StudyDeck(QDialog): def reject(self): saveGeom(self, self.geomKey) - gui_hooks.state_did_reset_hook.remove(self.onReset) + gui_hooks.state_did_reset.remove(self.onReset) QDialog.reject(self) def onAddDeck(self): @@ -144,5 +144,5 @@ class StudyDeck(QDialog): self.mw.col.decks.id(n) self.name = n # make sure we clean up reset hook when manually exiting - gui_hooks.state_did_reset_hook.remove(self.onReset) + gui_hooks.state_did_reset.remove(self.onReset) QDialog.accept(self) diff --git a/qt/aqt/sync.py b/qt/aqt/sync.py index 7642bf398..60ce4c0b4 100644 --- a/qt/aqt/sync.py +++ b/qt/aqt/sync.py @@ -406,10 +406,10 @@ class SyncThread(QThread): self._abort = 2 raise Exception("sync cancelled") - hooks.sync_stage_did_change_hook.append(syncEvent) - hooks.sync_progress_did_change_hook.append(syncMsg) - hooks.http_data_did_send_hook.append(sendEvent) - hooks.http_data_did_receive_hook.append(recvEvent) + hooks.sync_stage_did_change.append(syncEvent) + hooks.sync_progress_did_change.append(syncMsg) + hooks.http_data_did_send.append(sendEvent) + hooks.http_data_did_receive.append(recvEvent) # run sync and catch any errors try: self._sync() @@ -419,10 +419,10 @@ class SyncThread(QThread): finally: # don't bump mod time unless we explicitly save self.col.close(save=False) - hooks.sync_stage_did_change_hook.remove(syncEvent) - hooks.sync_progress_did_change_hook.remove(syncMsg) - hooks.http_data_did_send_hook.remove(sendEvent) - hooks.http_data_did_receive_hook.remove(recvEvent) + hooks.sync_stage_did_change.remove(syncEvent) + hooks.sync_progress_did_change.remove(syncMsg) + hooks.http_data_did_send.remove(sendEvent) + hooks.http_data_did_receive.remove(recvEvent) def _abortingSync(self): try: diff --git a/qt/aqt/webview.py b/qt/aqt/webview.py index 247e0a149..c94c33f7b 100644 --- a/qt/aqt/webview.py +++ b/qt/aqt/webview.py @@ -182,7 +182,7 @@ class AnkiWebView(QWebEngineView): # type: ignore m = QMenu(self) a = m.addAction(_("Copy")) a.triggered.connect(self.onCopy) - gui_hooks.webview_context_menu_will_show_hook(self, m) + gui_hooks.webview_context_menu_will_show(self, m) m.popup(QCursor.pos()) def dropEvent(self, evt):