remove _hook/_filter suffix

This commit is contained in:
Damien Elmes 2020-01-15 16:53:24 +10:00
parent b2f756f1b7
commit cab572b63c
34 changed files with 188 additions and 190 deletions

View file

@ -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

View file

@ -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
)

View file

@ -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:

View file

@ -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

View file

@ -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."

View file

@ -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

View file

@ -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

View file

@ -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."

View file

@ -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

View file

@ -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

View file

@ -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,
)

View file

@ -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())

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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()

View file

@ -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")

View file

@ -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))

View file

@ -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):

View file

@ -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):

View file

@ -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"]

View file

@ -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()

View file

@ -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)

View file

@ -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.")

View file

@ -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@@

View file

@ -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):

View file

@ -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

View file

@ -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):

View file

@ -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())

View file

@ -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
##########################################################################

View file

@ -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)

View file

@ -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:

View file

@ -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):