mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
Merge pull request #527 from Arthur-Milchior/explode_on_bridge_cmd
Explode on bridge cmd
This commit is contained in:
commit
2264fe3f66
1 changed files with 50 additions and 39 deletions
|
@ -367,48 +367,56 @@ class Editor:
|
||||||
# shutdown
|
# shutdown
|
||||||
return
|
return
|
||||||
# focus lost or key/button pressed?
|
# focus lost or key/button pressed?
|
||||||
if cmd.startswith("blur") or cmd.startswith("key"):
|
splitted = cmd.split(":", 1)
|
||||||
(type, ord, nid, txt) = cmd.split(":", 3)
|
cmd = splitted[0]
|
||||||
ord = int(ord)
|
args = splitted[1:]
|
||||||
try:
|
if cmd in self._links:
|
||||||
nid = int(nid)
|
self._links[cmd](self, *args) # type: ignore
|
||||||
except ValueError:
|
|
||||||
nid = 0
|
|
||||||
if nid != self.note.id:
|
|
||||||
print("ignored late blur")
|
|
||||||
return
|
|
||||||
txt = unicodedata.normalize("NFC", txt)
|
|
||||||
txt = self.mungeHTML(txt)
|
|
||||||
# misbehaving apps may include a null byte in the text
|
|
||||||
txt = txt.replace("\x00", "")
|
|
||||||
# reverse the url quoting we added to get images to display
|
|
||||||
txt = self.mw.col.media.escapeImages(txt, unescape=True)
|
|
||||||
self.note.fields[ord] = txt
|
|
||||||
if not self.addMode:
|
|
||||||
self.note.flush()
|
|
||||||
self.mw.requireReset()
|
|
||||||
if type == "blur":
|
|
||||||
self.currentField = None
|
|
||||||
# run any filters
|
|
||||||
if gui_hooks.editor_did_unfocus_field(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_did_fire_typing_timer(self.note)
|
|
||||||
self.checkValid()
|
|
||||||
# focused into field?
|
|
||||||
elif cmd.startswith("focus"):
|
|
||||||
(type, num) = cmd.split(":", 1)
|
|
||||||
self.currentField = int(num)
|
|
||||||
gui_hooks.editor_did_focus_field(self.note, self.currentField)
|
|
||||||
elif cmd in self._links:
|
|
||||||
self._links[cmd](self)
|
|
||||||
else:
|
else:
|
||||||
print("uncaught cmd", cmd)
|
print("uncaught cmd", cmd)
|
||||||
|
|
||||||
|
def onBlurOrKey(self, args):
|
||||||
|
ord, nid, txt = args.split(":", 2)
|
||||||
|
ord = int(ord)
|
||||||
|
try:
|
||||||
|
nid = int(nid)
|
||||||
|
except ValueError:
|
||||||
|
nid = 0
|
||||||
|
if nid != self.note.id:
|
||||||
|
print("ignored late blur")
|
||||||
|
return
|
||||||
|
txt = unicodedata.normalize("NFC", txt)
|
||||||
|
txt = self.mungeHTML(txt)
|
||||||
|
# misbehaving apps may include a null byte in the text
|
||||||
|
txt = txt.replace("\x00", "")
|
||||||
|
# reverse the url quoting we added to get images to display
|
||||||
|
txt = self.mw.col.media.escapeImages(txt, unescape=True)
|
||||||
|
self.note.fields[ord] = txt
|
||||||
|
if not self.addMode:
|
||||||
|
self.note.flush()
|
||||||
|
self.mw.requireReset()
|
||||||
|
return ord
|
||||||
|
|
||||||
|
def onBlur(self, args):
|
||||||
|
ord = self.onBlurOrKey(args)
|
||||||
|
self.currentField = None
|
||||||
|
# run any filters
|
||||||
|
if gui_hooks.editor_did_unfocus_field(False, self.note, int(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()
|
||||||
|
|
||||||
|
def onKey(self, args):
|
||||||
|
self.onBlurOrKey(args)
|
||||||
|
gui_hooks.editor_did_fire_typing_timer(self.note)
|
||||||
|
self.checkValid()
|
||||||
|
|
||||||
|
def onFocus(self, num):
|
||||||
|
self.currentField = int(num)
|
||||||
|
gui_hooks.editor_did_focus_field(self.note, self.currentField)
|
||||||
|
|
||||||
def mungeHTML(self, txt):
|
def mungeHTML(self, txt):
|
||||||
if txt in ("<br>", "<div><br></div>"):
|
if txt in ("<br>", "<div><br></div>"):
|
||||||
return ""
|
return ""
|
||||||
|
@ -970,6 +978,9 @@ to a cloze type first, via Edit>Change Note Type."""
|
||||||
dupes=showDupes,
|
dupes=showDupes,
|
||||||
paste=onPaste,
|
paste=onPaste,
|
||||||
cutOrCopy=onCutOrCopy,
|
cutOrCopy=onCutOrCopy,
|
||||||
|
blur=onBlur,
|
||||||
|
focus=onFocus,
|
||||||
|
key=onKey,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue