0b633dbf40
Initially, I wanted to solve the bug reported on https://github.com/Arthur-Milchior/anki-html-src-in-field/issues/1 After some research, I finally discovered that the trouble was that, when we change the note type in add card, the method `aqt.editor.Editor.loadNote` is called twice. In itself, it would not be a problem, but given the way callback works, its call back is called twice on the last version of the webview. Which means that `gui_hooks.editor_did_load_note` is called twice, which breaks this add-on. The reason why loadNote is called twice is because `setNote` is called twice in `aqt.modelchooser.onModelChange`. The first time through `gui_hooks.current_note_type_did_change` which calls `addcards.AddCards.onModelChange` which calls `loadNote`, the second time through `self.mw.reset()` which calls `gui_hooks.state_did_reset()` which calls `addcards.AddCards.onReset` which calls `setAndFocusNote` which calls `setNote`. I should note furthermore that currently, `gui_hooks.current_note_type_did_change` is called only when the model chooser change a model. And `addCards.onModelChange` is never called, only added to the hook `gui_hooks.current_note_type_did_change`. So removing the line of code removed in this commit will have no side effect in Anki itself. It will only affect the fact that this method is called twice. I do not know of any add-on calling `onModelChange` or `gui_hooks.current_note_type_did_change`, but it means little, so of course, it may always mean an add-on will break because of this change. No way of being sure. |
||
---|---|---|
.. | ||
aqt | ||
aqt_data/web | ||
designer | ||
ftl | ||
po | ||
tests | ||
tools | ||
ts | ||
.gitignore | ||
.isort.cfg | ||
.pylintrc | ||
anki.1 | ||
anki.desktop | ||
anki.png | ||
anki.xml | ||
anki.xpm | ||
Makefile | ||
mypy.ini | ||
pkgkey.asc | ||
requirements.dev | ||
requirements.qt | ||
runanki | ||
setup.py |