mirror of
https://github.com/ankitects/anki.git
synced 2025-11-06 20:57:13 -05:00
Fix call_after_note_saved()
This commit is contained in:
parent
7c6fa98063
commit
8a0a21aba6
2 changed files with 13 additions and 1 deletions
|
|
@ -90,6 +90,7 @@ class NewEditor:
|
||||||
self.state: EditorState = EditorState.INITIAL
|
self.state: EditorState = EditorState.INITIAL
|
||||||
self._ready = False
|
self._ready = False
|
||||||
self._ready_callbacks: list[Callable[[], None]] = []
|
self._ready_callbacks: list[Callable[[], None]] = []
|
||||||
|
self._saved_callbacks: list[Callable[[], None]] = []
|
||||||
self._init_links()
|
self._init_links()
|
||||||
self.setupOuter()
|
self.setupOuter()
|
||||||
self.add_webview()
|
self.add_webview()
|
||||||
|
|
@ -461,14 +462,21 @@ require("anki/ui").loaded.then(() => require("anki/NoteEditor").instances[0].too
|
||||||
self, callback: Callable, keepFocus: bool = False
|
self, callback: Callable, keepFocus: bool = False
|
||||||
) -> None:
|
) -> None:
|
||||||
"Save unsaved edits then call callback()."
|
"Save unsaved edits then call callback()."
|
||||||
|
|
||||||
if not self.nid:
|
if not self.nid:
|
||||||
# calling code may not expect the callback to fire immediately
|
# calling code may not expect the callback to fire immediately
|
||||||
self.mw.progress.single_shot(10, callback)
|
self.mw.progress.single_shot(10, callback)
|
||||||
return
|
return
|
||||||
self.web.evalWithCallback("saveNow(%d)" % keepFocus, lambda res: callback())
|
self._saved_callbacks.append(callback)
|
||||||
|
self.web.eval("saveNow(%d)" % keepFocus)
|
||||||
|
|
||||||
saveNow = call_after_note_saved
|
saveNow = call_after_note_saved
|
||||||
|
|
||||||
|
def on_note_saved(self) -> None:
|
||||||
|
for callback in self._saved_callbacks:
|
||||||
|
callback()
|
||||||
|
self._saved_callbacks = []
|
||||||
|
|
||||||
def cleanup(self) -> None:
|
def cleanup(self) -> None:
|
||||||
av_player.stop_and_clear_queue_if_caller(self.editorMode)
|
av_player.stop_and_clear_queue_if_caller(self.editorMode)
|
||||||
self.set_note(None)
|
self.set_note(None)
|
||||||
|
|
@ -536,6 +544,7 @@ require("anki/ui").loaded.then(() => require("anki/NoteEditor").instances[0].too
|
||||||
paste=NewEditor.onPaste,
|
paste=NewEditor.onPaste,
|
||||||
cut=NewEditor.onCut,
|
cut=NewEditor.onCut,
|
||||||
copy=NewEditor.onCopy,
|
copy=NewEditor.onCopy,
|
||||||
|
saved=NewEditor.on_note_saved,
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_note_info(self, on_done: Callable[[NoteInfo], None]) -> None:
|
def get_note_info(self, on_done: Callable[[NoteInfo], None]) -> None:
|
||||||
|
|
|
||||||
|
|
@ -443,6 +443,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
closeMathjaxEditor?.();
|
closeMathjaxEditor?.();
|
||||||
$commitTagEdits();
|
$commitTagEdits();
|
||||||
await saveFieldNow();
|
await saveFieldNow();
|
||||||
|
if(!isLegacy) {
|
||||||
|
bridgeCommand("saved");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used for detecting changed sticky fields on close
|
// Used for detecting changed sticky fields on close
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue