ensure card list updated when editing html

using an extra hook is ugly, but there's a risk re-purposing
the editTimer hook will break an add-on that assumes the note
has already been loaded

https://anki.tenderapp.com/discussions/ankidesktop/30972-bug-editing-html-in-browser-not-saved-unless-tabbingclicking-to-other-field
This commit is contained in:
Damien Elmes 2018-11-27 17:58:38 +10:00
parent 35360df68d
commit ed665557d5
2 changed files with 6 additions and 0 deletions

View file

@ -672,6 +672,9 @@ class Browser(QMainWindow):
self.model.refreshNote(note)
self._renderPreview(False)
def onLoadNote(self, editor):
self.refreshCurrentCard(editor.note)
def refreshCurrentCardFilter(self, flag, note, fidx):
self.refreshCurrentCard(note)
return flag
@ -1689,6 +1692,7 @@ update cards set usn=?, mod=?, did=? where id in """ + scids,
addHook("undoState", self.onUndoState)
addHook("reset", self.onReset)
addHook("editTimer", self.refreshCurrentCard)
addHook("loadNote", self.onLoadNote)
addHook("editFocusLost", self.refreshCurrentCardFilter)
for t in "newTag", "newModel", "newDeck":
addHook(t, self.maybeRefreshSidebar)
@ -1696,6 +1700,7 @@ update cards set usn=?, mod=?, did=? where id in """ + scids,
def teardownHooks(self):
remHook("reset", self.onReset)
remHook("editTimer", self.refreshCurrentCard)
remHook("loadNote", self.onLoadNote)
remHook("editFocusLost", self.refreshCurrentCardFilter)
remHook("undoState", self.onUndoState)
for t in "newTag", "newModel", "newDeck":

View file

@ -401,6 +401,7 @@ class Editor:
warnings.simplefilter('ignore', UserWarning)
html = str(BeautifulSoup(html, "html.parser"))
self.note.fields[field] = html
self.note.flush()
self.loadNote(focusTo=field)
# Tag handling