mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
migrate addHook/remHook calls
This commit is contained in:
parent
26cb9851b4
commit
89fce1f6b7
13 changed files with 64 additions and 66 deletions
|
@ -7,7 +7,6 @@ import aqt.deckchooser
|
||||||
import aqt.editor
|
import aqt.editor
|
||||||
import aqt.forms
|
import aqt.forms
|
||||||
import aqt.modelchooser
|
import aqt.modelchooser
|
||||||
from anki.hooks import addHook, remHook
|
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
from anki.notes import Note
|
from anki.notes import Note
|
||||||
from anki.utils import htmlToTextLine, isMac
|
from anki.utils import htmlToTextLine, isMac
|
||||||
|
@ -44,8 +43,8 @@ class AddCards(QDialog):
|
||||||
self.history: List[int] = []
|
self.history: List[int] = []
|
||||||
self.previousNote = None
|
self.previousNote = None
|
||||||
restoreGeom(self, "add")
|
restoreGeom(self, "add")
|
||||||
addHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.append(self.onReset)
|
||||||
addHook("currentModelChanged", self.onModelChange)
|
gui_hooks.current_note_type_did_change_hook.append(self.onModelChange)
|
||||||
addCloseShortcut(self)
|
addCloseShortcut(self)
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
|
@ -90,7 +89,7 @@ class AddCards(QDialog):
|
||||||
def setAndFocusNote(self, note: Note) -> None:
|
def setAndFocusNote(self, note: Note) -> None:
|
||||||
self.editor.setNote(note, focusTo=0)
|
self.editor.setNote(note, focusTo=0)
|
||||||
|
|
||||||
def onModelChange(self) -> None:
|
def onModelChange(self, unused) -> None:
|
||||||
oldNote = self.editor.note
|
oldNote = self.editor.note
|
||||||
note = self.mw.col.newNote()
|
note = self.mw.col.newNote()
|
||||||
self.previousNote = None
|
self.previousNote = None
|
||||||
|
@ -224,8 +223,8 @@ question on all cards."""
|
||||||
self.ifCanClose(self._reject)
|
self.ifCanClose(self._reject)
|
||||||
|
|
||||||
def _reject(self) -> None:
|
def _reject(self) -> None:
|
||||||
remHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.remove(self.onReset)
|
||||||
remHook("currentModelChanged", self.onModelChange)
|
gui_hooks.current_note_type_did_change_hook.remove(self.onModelChange)
|
||||||
clearAudioQueue()
|
clearAudioQueue()
|
||||||
self.removeTempNote(self.editor.note)
|
self.removeTempNote(self.editor.note)
|
||||||
self.editor.cleanup()
|
self.editor.cleanup()
|
||||||
|
|
|
@ -13,9 +13,9 @@ from typing import Callable, List, Optional
|
||||||
|
|
||||||
import anki
|
import anki
|
||||||
import aqt.forms
|
import aqt.forms
|
||||||
|
from anki import hooks
|
||||||
from anki.collection import _Collection
|
from anki.collection import _Collection
|
||||||
from anki.consts import *
|
from anki.consts import *
|
||||||
from anki.hooks import addHook, remHook
|
|
||||||
from anki.lang import _, ngettext
|
from anki.lang import _, ngettext
|
||||||
from anki.utils import (
|
from anki.utils import (
|
||||||
bodyClass,
|
bodyClass,
|
||||||
|
@ -2020,22 +2020,24 @@ update cards set usn=?, mod=?, did=? where id in """
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
def setupHooks(self):
|
def setupHooks(self):
|
||||||
addHook("undoState", self.onUndoState)
|
gui_hooks.undo_state_did_change_hook.append(self.onUndoState)
|
||||||
addHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.append(self.onReset)
|
||||||
addHook("editTimer", self.refreshCurrentCard)
|
gui_hooks.editor_typing_timer_did_fire_hook.append(self.refreshCurrentCard)
|
||||||
addHook("loadNote", self.onLoadNote)
|
gui_hooks.editor_note_did_load_hook.append(self.onLoadNote)
|
||||||
addHook("editFocusLost", self.refreshCurrentCardFilter)
|
gui_hooks.editor_field_did_lose_focus_filter.append(self.refreshCurrentCard)
|
||||||
for t in "newTag", "newModel", "newDeck":
|
hooks.tag_created_hook.append(self.maybeRefreshSidebar)
|
||||||
addHook(t, self.maybeRefreshSidebar)
|
hooks.note_type_created_hook.append(self.maybeRefreshSidebar)
|
||||||
|
hooks.deck_created_hook.append(self.maybeRefreshSidebar)
|
||||||
|
|
||||||
def teardownHooks(self):
|
def teardownHooks(self):
|
||||||
remHook("reset", self.onReset)
|
gui_hooks.undo_state_did_change_hook.remove(self.onUndoState)
|
||||||
remHook("editTimer", self.refreshCurrentCard)
|
gui_hooks.state_did_reset_hook.remove(self.onReset)
|
||||||
remHook("loadNote", self.onLoadNote)
|
gui_hooks.editor_typing_timer_did_fire_hook.remove(self.refreshCurrentCard)
|
||||||
remHook("editFocusLost", self.refreshCurrentCardFilter)
|
gui_hooks.editor_note_did_load_hook.remove(self.onLoadNote)
|
||||||
remHook("undoState", self.onUndoState)
|
gui_hooks.editor_field_did_lose_focus_filter.remove(self.refreshCurrentCard)
|
||||||
for t in "newTag", "newModel", "newDeck":
|
hooks.tag_created_hook.remove(self.maybeRefreshSidebar)
|
||||||
remHook(t, self.maybeRefreshSidebar)
|
hooks.note_type_created_hook.remove(self.maybeRefreshSidebar)
|
||||||
|
hooks.deck_created_hook.remove(self.maybeRefreshSidebar)
|
||||||
|
|
||||||
def onUndoState(self, on):
|
def onUndoState(self, on):
|
||||||
self.form.actionUndo.setEnabled(on)
|
self.form.actionUndo.setEnabled(on)
|
||||||
|
@ -2269,8 +2271,8 @@ class ChangeModel(QDialog):
|
||||||
self.setWindowModality(Qt.WindowModal)
|
self.setWindowModality(Qt.WindowModal)
|
||||||
self.setup()
|
self.setup()
|
||||||
restoreGeom(self, "changeModel")
|
restoreGeom(self, "changeModel")
|
||||||
addHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.append(self.onReset)
|
||||||
addHook("currentModelChanged", self.onReset)
|
gui_hooks.current_note_type_did_change_hook.append(self.onReset)
|
||||||
self.exec_()
|
self.exec_()
|
||||||
|
|
||||||
def setup(self):
|
def setup(self):
|
||||||
|
@ -2393,8 +2395,8 @@ class ChangeModel(QDialog):
|
||||||
)
|
)
|
||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
remHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.remove(self.onReset)
|
||||||
remHook("currentModelChanged", self.onReset)
|
gui_hooks.current_note_type_did_change_hook.remove(self.onReset)
|
||||||
self.modelChooser.cleanup()
|
self.modelChooser.cleanup()
|
||||||
saveGeom(self, "changeModel")
|
saveGeom(self, "changeModel")
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
# Copyright: Ankitects Pty Ltd and contributors
|
# Copyright: Ankitects Pty Ltd and contributors
|
||||||
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
|
|
||||||
from anki.hooks import addHook, remHook
|
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
|
from aqt import gui_hooks
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from aqt.utils import shortcut
|
from aqt.utils import shortcut
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ class DeckChooser(QHBoxLayout):
|
||||||
self.setSpacing(8)
|
self.setSpacing(8)
|
||||||
self.setupDecks()
|
self.setupDecks()
|
||||||
self.widget.setLayout(self)
|
self.widget.setLayout(self)
|
||||||
addHook("currentModelChanged", self.onModelChange)
|
gui_hooks.current_note_type_did_change_hook.append(self.onModelChange)
|
||||||
|
|
||||||
def setupDecks(self):
|
def setupDecks(self):
|
||||||
if self.label:
|
if self.label:
|
||||||
|
@ -64,7 +64,7 @@ class DeckChooser(QHBoxLayout):
|
||||||
self.widget.hide()
|
self.widget.hide()
|
||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
remHook("currentModelChanged", self.onModelChange)
|
gui_hooks.current_note_type_did_change_hook.remove(self.onModelChange)
|
||||||
|
|
||||||
def onModelChange(self):
|
def onModelChange(self):
|
||||||
if not self.mw.col.conf.get("addToCur", True):
|
if not self.mw.col.conf.get("addToCur", True):
|
||||||
|
|
|
@ -6,7 +6,7 @@ import re
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import aqt
|
import aqt
|
||||||
from anki.hooks import addHook, remHook
|
from anki import hooks
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
from anki.sync import AnkiRequestsClient
|
from anki.sync import AnkiRequestsClient
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
|
@ -57,7 +57,7 @@ class Downloader(QThread):
|
||||||
self.recvTotal += bytes
|
self.recvTotal += bytes
|
||||||
self.recv.emit()
|
self.recv.emit()
|
||||||
|
|
||||||
addHook("httpRecv", recvEvent)
|
hooks.http_data_received_hook.append(recvEvent)
|
||||||
client = AnkiRequestsClient()
|
client = AnkiRequestsClient()
|
||||||
try:
|
try:
|
||||||
resp = client.get(aqt.appShared + "download/%s?v=2.1" % self.code)
|
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)
|
self.error = _("Please check your internet connection.") + "\n\n" + str(e)
|
||||||
return
|
return
|
||||||
finally:
|
finally:
|
||||||
remHook("httpRecv", recvEvent)
|
hooks.http_data_received_hook.remove(recvEvent)
|
||||||
|
|
||||||
self.fname = re.match(
|
self.fname = re.match(
|
||||||
"attachment; filename=(.+)", resp.headers["content-disposition"]
|
"attachment; filename=(.+)", resp.headers["content-disposition"]
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
|
|
||||||
import aqt.editor
|
import aqt.editor
|
||||||
from anki.hooks import addHook, remHook
|
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
|
from aqt import gui_hooks
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from aqt.utils import restoreGeom, saveGeom, tooltip
|
from aqt.utils import restoreGeom, saveGeom, tooltip
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ class EditCurrent(QDialog):
|
||||||
self.editor.card = self.mw.reviewer.card
|
self.editor.card = self.mw.reviewer.card
|
||||||
self.editor.setNote(self.mw.reviewer.card.note(), focusTo=0)
|
self.editor.setNote(self.mw.reviewer.card.note(), focusTo=0)
|
||||||
restoreGeom(self, "editcurrent")
|
restoreGeom(self, "editcurrent")
|
||||||
addHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.append(self.onReset)
|
||||||
self.mw.requireReset()
|
self.mw.requireReset()
|
||||||
self.show()
|
self.show()
|
||||||
# reset focus after open, taking care not to retain webview
|
# 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
|
n.load() # reload in case the model changed
|
||||||
except:
|
except:
|
||||||
# card's been deleted
|
# card's been deleted
|
||||||
remHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.remove(self.onReset)
|
||||||
self.editor.setNote(None)
|
self.editor.setNote(None)
|
||||||
self.mw.reset()
|
self.mw.reset()
|
||||||
aqt.dialogs.markClosed("EditCurrent")
|
aqt.dialogs.markClosed("EditCurrent")
|
||||||
|
@ -59,7 +59,7 @@ class EditCurrent(QDialog):
|
||||||
self.editor.saveNow(self._saveAndClose)
|
self.editor.saveNow(self._saveAndClose)
|
||||||
|
|
||||||
def _saveAndClose(self):
|
def _saveAndClose(self):
|
||||||
remHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.remove(self.onReset)
|
||||||
r = self.mw.reviewer
|
r = self.mw.reviewer
|
||||||
try:
|
try:
|
||||||
r.card.load()
|
r.card.load()
|
||||||
|
|
|
@ -19,7 +19,7 @@ from bs4 import BeautifulSoup
|
||||||
|
|
||||||
import aqt
|
import aqt
|
||||||
import aqt.sound
|
import aqt.sound
|
||||||
from anki.hooks import addHook, runFilter
|
from anki.hooks import runFilter
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
from anki.sync import AnkiRequestsClient
|
from anki.sync import AnkiRequestsClient
|
||||||
from anki.utils import checksum, isWin, namedtmp, stripHTMLMedia
|
from anki.utils import checksum, isWin, namedtmp, stripHTMLMedia
|
||||||
|
@ -1122,4 +1122,4 @@ def fontMungeHack(font):
|
||||||
return re.sub(" L$", " Light", font)
|
return re.sub(" L$", " Light", font)
|
||||||
|
|
||||||
|
|
||||||
addHook("mungeEditingFontName", fontMungeHack)
|
gui_hooks.editor_font_for_field_filter.append(fontMungeHack)
|
||||||
|
|
|
@ -6,8 +6,8 @@ import re
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import aqt
|
import aqt
|
||||||
|
from anki import hooks
|
||||||
from anki.exporting import exporters
|
from anki.exporting import exporters
|
||||||
from anki.hooks import addHook, remHook
|
|
||||||
from anki.lang import _, ngettext
|
from anki.lang import _, ngettext
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from aqt.utils import checkInvalidFilename, getSaveFile, showInfo, showWarning, tooltip
|
from aqt.utils import checkInvalidFilename, getSaveFile, showInfo, showWarning, tooltip
|
||||||
|
@ -132,9 +132,9 @@ class ExportDialog(QDialog):
|
||||||
)
|
)
|
||||||
% cnt
|
% cnt
|
||||||
)
|
)
|
||||||
addHook("exportedMediaFiles", exportedMedia)
|
hooks.exported_media_files_hook.append(exportedMedia)
|
||||||
self.exporter.exportInto(file)
|
self.exporter.exportInto(file)
|
||||||
remHook("exportedMediaFiles", exportedMedia)
|
hooks.exported_media_files_hook.remove(exportedMedia)
|
||||||
period = 3000
|
period = 3000
|
||||||
if self.isVerbatim:
|
if self.isVerbatim:
|
||||||
msg = _("Collection exported.")
|
msg = _("Collection exported.")
|
||||||
|
|
|
@ -14,9 +14,8 @@ import anki.importing as importing
|
||||||
import aqt.deckchooser
|
import aqt.deckchooser
|
||||||
import aqt.forms
|
import aqt.forms
|
||||||
import aqt.modelchooser
|
import aqt.modelchooser
|
||||||
from anki.hooks import addHook, remHook
|
|
||||||
from anki.lang import _, ngettext
|
from anki.lang import _, ngettext
|
||||||
from aqt import AnkiQt
|
from aqt import AnkiQt, gui_hooks
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from aqt.utils import (
|
from aqt.utils import (
|
||||||
askUser,
|
askUser,
|
||||||
|
@ -87,7 +86,7 @@ class ImportDialog(QDialog):
|
||||||
self.setupOptions()
|
self.setupOptions()
|
||||||
self.modelChanged()
|
self.modelChanged()
|
||||||
self.frm.autoDetect.setVisible(self.importer.needDelimiter)
|
self.frm.autoDetect.setVisible(self.importer.needDelimiter)
|
||||||
addHook("currentModelChanged", self.modelChanged)
|
gui_hooks.current_note_type_did_change_hook.append(self.modelChanged)
|
||||||
self.frm.autoDetect.clicked.connect(self.onDelimiter)
|
self.frm.autoDetect.clicked.connect(self.onDelimiter)
|
||||||
self.updateDelimiterButtonText()
|
self.updateDelimiterButtonText()
|
||||||
self.frm.allowHTML.setChecked(self.mw.pm.profile.get("allowHTML", True))
|
self.frm.allowHTML.setChecked(self.mw.pm.profile.get("allowHTML", True))
|
||||||
|
@ -105,7 +104,7 @@ class ImportDialog(QDialog):
|
||||||
)
|
)
|
||||||
self.deck = aqt.deckchooser.DeckChooser(self.mw, self.frm.deckArea, label=False)
|
self.deck = aqt.deckchooser.DeckChooser(self.mw, self.frm.deckArea, label=False)
|
||||||
|
|
||||||
def modelChanged(self):
|
def modelChanged(self, unused=None):
|
||||||
self.importer.model = self.mw.col.models.current()
|
self.importer.model = self.mw.col.models.current()
|
||||||
self.importer.initMapping()
|
self.importer.initMapping()
|
||||||
self.showMapping()
|
self.showMapping()
|
||||||
|
@ -281,7 +280,7 @@ you can enter it here. Use \\t to represent tab."""
|
||||||
def reject(self):
|
def reject(self):
|
||||||
self.modelChooser.cleanup()
|
self.modelChooser.cleanup()
|
||||||
self.deck.cleanup()
|
self.deck.cleanup()
|
||||||
remHook("currentModelChanged", self.modelChanged)
|
gui_hooks.current_note_type_did_change_hook.remove(self.modelChanged)
|
||||||
QDialog.reject(self)
|
QDialog.reject(self)
|
||||||
|
|
||||||
def helpRequested(self):
|
def helpRequested(self):
|
||||||
|
|
|
@ -26,7 +26,7 @@ import aqt.toolbar
|
||||||
import aqt.webview
|
import aqt.webview
|
||||||
from anki import hooks
|
from anki import hooks
|
||||||
from anki.collection import _Collection
|
from anki.collection import _Collection
|
||||||
from anki.hooks import addHook, runHook
|
from anki.hooks import runHook
|
||||||
from anki.lang import _, ngettext
|
from anki.lang import _, ngettext
|
||||||
from anki.storage import Collection
|
from anki.storage import Collection
|
||||||
from anki.utils import devMode, ids2str, intTime, isMac, isWin, splitFields
|
from anki.utils import devMode, ids2str, intTime, isMac, isWin, splitFields
|
||||||
|
@ -1154,7 +1154,7 @@ Difference to correct time: %s."""
|
||||||
|
|
||||||
def setupHooks(self) -> None:
|
def setupHooks(self) -> None:
|
||||||
hooks.mod_schema_filter.append(self.onSchemaMod)
|
hooks.mod_schema_filter.append(self.onSchemaMod)
|
||||||
addHook("remNotes", self.onRemNotes)
|
hooks.remove_notes_hook.append(self.onRemNotes)
|
||||||
hooks.odue_invalid_hook.append(self.onOdueInvalid)
|
hooks.odue_invalid_hook.append(self.onOdueInvalid)
|
||||||
|
|
||||||
gui_hooks.mpv_will_play_hook.append(self.on_mpv_will_play)
|
gui_hooks.mpv_will_play_hook.append(self.on_mpv_will_play)
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright: Ankitects Pty Ltd and contributors
|
# Copyright: Ankitects Pty Ltd and contributors
|
||||||
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
|
|
||||||
from anki.hooks import addHook, remHook
|
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
from aqt import gui_hooks
|
from aqt import gui_hooks
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
|
@ -19,7 +18,7 @@ class ModelChooser(QHBoxLayout):
|
||||||
self.setContentsMargins(0, 0, 0, 0)
|
self.setContentsMargins(0, 0, 0, 0)
|
||||||
self.setSpacing(8)
|
self.setSpacing(8)
|
||||||
self.setupModels()
|
self.setupModels()
|
||||||
addHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.append(self.onReset)
|
||||||
self.widget.setLayout(self)
|
self.widget.setLayout(self)
|
||||||
|
|
||||||
def setupModels(self):
|
def setupModels(self):
|
||||||
|
@ -42,7 +41,7 @@ class ModelChooser(QHBoxLayout):
|
||||||
self.updateModels()
|
self.updateModels()
|
||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
remHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.remove(self.onReset)
|
||||||
|
|
||||||
def onReset(self):
|
def onReset(self):
|
||||||
self.updateModels()
|
self.updateModels()
|
||||||
|
|
|
@ -11,7 +11,6 @@ import threading
|
||||||
import time
|
import time
|
||||||
from typing import Any, Callable, Dict, List, Optional, Tuple
|
from typing import Any, Callable, Dict, List, Optional, Tuple
|
||||||
|
|
||||||
from anki.hooks import addHook
|
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
from anki.sound import allSounds
|
from anki.sound import allSounds
|
||||||
from anki.utils import isLin, isMac, isWin, tmpdir
|
from anki.utils import isLin, isMac, isWin, tmpdir
|
||||||
|
@ -378,7 +377,7 @@ def stopMplayer(*args) -> None:
|
||||||
cleanupOldMplayerProcesses()
|
cleanupOldMplayerProcesses()
|
||||||
|
|
||||||
|
|
||||||
addHook("unloadProfile", stopMplayer)
|
gui_hooks.profile_will_close_hook.append(stopMplayer)
|
||||||
|
|
||||||
# PyAudio recording
|
# PyAudio recording
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
|
|
||||||
import aqt
|
import aqt
|
||||||
from anki.hooks import addHook, remHook
|
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
|
from aqt import gui_hooks
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from aqt.utils import getOnlyText, openHelp, restoreGeom, saveGeom, shortcut, showInfo
|
from aqt.utils import getOnlyText, openHelp, restoreGeom, saveGeom, shortcut, showInfo
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ class StudyDeck(QDialog):
|
||||||
self.form.setupUi(self)
|
self.form.setupUi(self)
|
||||||
self.form.filter.installEventFilter(self)
|
self.form.filter.installEventFilter(self)
|
||||||
self.cancel = cancel
|
self.cancel = cancel
|
||||||
addHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.append(self.onReset)
|
||||||
self.geomKey = "studyDeck-" + geomKey
|
self.geomKey = "studyDeck-" + geomKey
|
||||||
restoreGeom(self, self.geomKey)
|
restoreGeom(self, self.geomKey)
|
||||||
if not cancel:
|
if not cancel:
|
||||||
|
@ -120,7 +120,7 @@ class StudyDeck(QDialog):
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
saveGeom(self, self.geomKey)
|
saveGeom(self, self.geomKey)
|
||||||
remHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.remove(self.onReset)
|
||||||
row = self.form.list.currentRow()
|
row = self.form.list.currentRow()
|
||||||
if row < 0:
|
if row < 0:
|
||||||
showInfo(_("Please select something."))
|
showInfo(_("Please select something."))
|
||||||
|
@ -130,7 +130,7 @@ class StudyDeck(QDialog):
|
||||||
|
|
||||||
def reject(self):
|
def reject(self):
|
||||||
saveGeom(self, self.geomKey)
|
saveGeom(self, self.geomKey)
|
||||||
remHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.remove(self.onReset)
|
||||||
QDialog.reject(self)
|
QDialog.reject(self)
|
||||||
|
|
||||||
def onAddDeck(self):
|
def onAddDeck(self):
|
||||||
|
@ -144,5 +144,5 @@ class StudyDeck(QDialog):
|
||||||
self.mw.col.decks.id(n)
|
self.mw.col.decks.id(n)
|
||||||
self.name = n
|
self.name = n
|
||||||
# make sure we clean up reset hook when manually exiting
|
# make sure we clean up reset hook when manually exiting
|
||||||
remHook("reset", self.onReset)
|
gui_hooks.state_did_reset_hook.remove(self.onReset)
|
||||||
QDialog.accept(self)
|
QDialog.accept(self)
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
import gc
|
import gc
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from anki.hooks import addHook, remHook
|
from anki import hooks
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
from anki.storage import Collection
|
from anki.storage import Collection
|
||||||
from anki.sync import FullSyncer, MediaSyncer, RemoteMediaServer, RemoteServer, Syncer
|
from anki.sync import FullSyncer, MediaSyncer, RemoteMediaServer, RemoteServer, Syncer
|
||||||
|
@ -406,10 +406,10 @@ class SyncThread(QThread):
|
||||||
self._abort = 2
|
self._abort = 2
|
||||||
raise Exception("sync cancelled")
|
raise Exception("sync cancelled")
|
||||||
|
|
||||||
addHook("sync", syncEvent)
|
hooks.sync_stage_hook.append(syncEvent)
|
||||||
addHook("syncMsg", syncMsg)
|
hooks.sync_progress_message_hook.append(syncMsg)
|
||||||
addHook("httpSend", sendEvent)
|
hooks.http_data_sent_hook.append(sendEvent)
|
||||||
addHook("httpRecv", recvEvent)
|
hooks.http_data_received_hook.append(recvEvent)
|
||||||
# run sync and catch any errors
|
# run sync and catch any errors
|
||||||
try:
|
try:
|
||||||
self._sync()
|
self._sync()
|
||||||
|
@ -419,10 +419,10 @@ class SyncThread(QThread):
|
||||||
finally:
|
finally:
|
||||||
# don't bump mod time unless we explicitly save
|
# don't bump mod time unless we explicitly save
|
||||||
self.col.close(save=False)
|
self.col.close(save=False)
|
||||||
remHook("sync", syncEvent)
|
hooks.sync_stage_hook.remove(syncEvent)
|
||||||
remHook("syncMsg", syncMsg)
|
hooks.sync_progress_message_hook.remove(syncMsg)
|
||||||
remHook("httpSend", sendEvent)
|
hooks.http_data_sent_hook.remove(sendEvent)
|
||||||
remHook("httpRecv", recvEvent)
|
hooks.http_data_received_hook.remove(recvEvent)
|
||||||
|
|
||||||
def _abortingSync(self):
|
def _abortingSync(self):
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue