def loadNote(self, focusTo=None) -> None: if not self.note: return data = [(fld, self.mw.col.media.escape_media_filenames(val)) for fld, val in self.note.items()] self.widget.show() self.updateTags() def oncallback(arg): if not self.note: return self.setupForegroundButton() self.checkValid() if focusTo is not None: self.web.setFocus() gui_hooks.editor_did_load_note(self) js = "setFields(%s); setFonts(%s); focusField(%s); setNoteId(%s)" % ( json.dumps(data), json.dumps(self.fonts()), json.dumps(focusTo), json.dumps(self.note.id), ) js = gui_hooks.editor_will_load_note(js, self.note, self) self.web.evalWithCallback(js, oncallback)
def loadNote(self, focusTo: Optional[int] = None) -> None: if not self.note: return data = [(fld, self.mw.col.media.escape_media_filenames(val)) for fld, val in self.note.items()] self.widget.show() self.updateTags() dupe_status = self.note.duplicate_or_empty() def oncallback(arg: Any) -> None: if not self.note: return self.setupForegroundButton() # we currently do this synchronously to ensure we load before the # sidebar on browser startup self._update_duplicate_display(dupe_status) if focusTo is not None: self.web.setFocus() gui_hooks.editor_did_load_note(self) js = "setFields(%s); setFonts(%s); focusField(%s); setNoteId(%s);" % ( json.dumps(data), json.dumps(self.fonts()), json.dumps(focusTo), json.dumps(self.note.id), ) if self.addMode: sticky = [field["sticky"] for field in self.note.model()["flds"]] js += " setSticky(%s);" % json.dumps(sticky) js = gui_hooks.editor_will_load_note(js, self.note, self) self.web.evalWithCallback(js, oncallback)
def loadNote(self, focusTo: Optional[int] = None) -> None: if not self.note: return data = [(fld, self.mw.col.media.escape_media_filenames(val)) for fld, val in self.note.items()] self.widget.show() self.updateTags() def oncallback(arg: Any) -> None: if not self.note: return self.setupForegroundButton() self.checkValid() if focusTo is not None: self.web.setFocus() gui_hooks.editor_did_load_note(self) js = "setFields(%s); setFonts(%s); focusField(%s); setNoteId(%s);" % ( json.dumps(data), json.dumps(self.fonts()), json.dumps(focusTo), json.dumps(self.note.id), ) if self.addMode: sticky = [field["sticky"] for field in self.note.model()["flds"]] js += " setSticky(%s);" % json.dumps(sticky) js = gui_hooks.editor_will_load_note(js, self.note, self) self.web.evalWithCallback(js, oncallback)
def loadNote(self, focusTo: int | None = None) -> None: if not self.note: return data = [(fld, self.mw.col.media.escape_media_filenames(val)) for fld, val in self.note.items()] flds = self.note.note_type()["flds"] descriptions = [fld.get("description", "") for fld in flds] self.widget.show() note_fields_status = self.note.fields_check() def oncallback(arg: Any) -> None: if not self.note: return self.setupForegroundButton() # we currently do this synchronously to ensure we load before the # sidebar on browser startup self._update_duplicate_display(note_fields_status) if focusTo is not None: self.web.setFocus() gui_hooks.editor_did_load_note(self) text_color = self.mw.pm.profile.get("lastTextColor", "#00f") highlight_color = self.mw.pm.profile.get("lastHighlightColor", "#00f") js = "setFields({}); setDescriptions({}); setFonts({}); focusField({}); setNoteId({}); setColorButtons({}); setTags({}); ".format( json.dumps(data), json.dumps(descriptions), json.dumps(self.fonts()), json.dumps(focusTo), json.dumps(self.note.id), json.dumps([text_color, highlight_color]), json.dumps(self.note.tags), ) if self.addMode: sticky = [ field["sticky"] for field in self.note.note_type()["flds"] ] js += " setSticky(%s);" % json.dumps(sticky) js = gui_hooks.editor_will_load_note(js, self.note, self) self.web.evalWithCallback(f"noteEditorPromise.then(() => {{ {js} }})", oncallback)
def set_pitch_dialog(editor): # get user input hira = getOnlyText('Enter the reading to be set. (Example: はな)') LH_patt = getOnlyText( ('Enter the pitch accent pattern as a sequence of \'H\'s and \'L\'s. ' '(Example: LHL)')) # get note data data = [(fld, editor.mw.col.media.escapeImages(val)) for fld, val in editor.note.items()] # remove existing patt acc_patt = re.compile( r'<!-- (user_)?accent_start -->.+<!-- (user_)?accent_end -->', re.S) old_field_val = data[editor.web.editor.currentField][1] old_field_val_clean = re.sub(acc_patt, '', old_field_val) # generate SVG svg = pitch_svg(hira, LH_patt) if len(old_field_val_clean) > 0: separator = '<br><hr><br>' else: separator = '' new_field_val = ( '{}<!-- user_accent_start -->{}{}<!-- user_accent_end -->').format( old_field_val_clean, separator, svg) if hira == '' and LH_patt == '': new_field_val = old_field_val_clean # add new patt data[editor.web.editor.currentField] = ( data[editor.web.editor.currentField][0], # leave field name as is new_field_val # update field value ) js = 'setFields(%s); setFonts(%s); focusField(%s); setNoteId(%s)' % ( json.dumps(data), json.dumps(editor.fonts()), json.dumps(editor.web.editor.currentField), json.dumps(editor.note.id)) js = gui_hooks.editor_will_load_note(js, editor.note, editor) editor.web.eval(js)