From 30d1d57c78a2b949e09da9a0c28fac487e9a01b5 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sun, 4 Oct 2020 22:41:18 +0200 Subject: [PATCH 1/5] Rewrite so all editor toolbar buttons use _addButton --- qt/aqt/editor.py | 103 ++++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 51 deletions(-) diff --git a/qt/aqt/editor.py b/qt/aqt/editor.py index ec7fe117a..8e27fe45f 100644 --- a/qt/aqt/editor.py +++ b/qt/aqt/editor.py @@ -118,6 +118,25 @@ class Editor: self.web.set_bridge_command(self.onBridgeCmd, self) self.outerLayout.addWidget(self.web, 1) + lefttopbtns: List[str] = [ + self._addButton( + None, + "fields", + _("Customize Fields"), + _("Fields") + "...", + class_="", + disables=False, + ), + self._addButton( + None, + "cards", + _("Customize Card Templates (Ctrl+L)"), + _("Cards") + "...", + class_="", + disables=False, + ), + ] + righttopbtns: List[str] = [ self._addButton("text_bold", "bold", _("Bold text (Ctrl+B)"), id="bold"), self._addButton( @@ -131,68 +150,47 @@ class Editor: ), self._addButton("text_sub", "sub", _("Subscript (Ctrl+=)"), id="subscript"), self._addButton("text_clear", "clear", _("Remove formatting (Ctrl+R)")), + self._addButton( + None, + "colour", + _("Set foreground colour (F7)"), + """ +
""", + ), + self._addButton( + None, + "changeCol", + _("Change colour (F8)"), + """ +
""", + ), + self._addButton("text_cloze", "cloze", _("Cloze deletion (Ctrl+Shift+C)")), + self._addButton( + "paperclip", "attach", _("Attach pictures/audio/video (F3)") + ), + self._addButton("media-record", "record", _("Record audio (F5)")), + self._addButton("more", "more"), ] - # The color selection buttons do not use an icon so the HTML must be specified manually - tip = _("Set foreground colour (F7)") - righttopbtns.append( - """ """.format( - tip - ) - ) - tip = _("Change colour (F8)") - righttopbtns.extend( - [ - """""".format( - tip - ), - self._addButton( - "text_cloze", "cloze", _("Cloze deletion (Ctrl+Shift+C)") - ), - self._addButton( - "paperclip", "attach", _("Attach pictures/audio/video (F3)") - ), - self._addButton("media-record", "record", _("Record audio (F5)")), - self._addButton("more", "more"), - ] - ) + gui_hooks.editor_did_init_buttons(righttopbtns, self) # legacy filter righttopbtns = runFilter("setupEditorButtons", righttopbtns, self) + topbuts = """
- - + %(leftbts)s
%(rightbts)s
""" % dict( - flds=_("Fields"), - cards=_("Cards"), + leftbts="".join(lefttopbtns), rightbts="".join(righttopbtns), - fldsTitle=_("Customize Fields"), - cardsTitle=shortcut(_("Customize Card Templates (Ctrl+L)")), ) bgcol = self.mw.app.palette().window().color().name() # type: ignore # then load page @@ -227,6 +225,7 @@ class Editor: toggleable: bool = False, keys: str = None, disables: bool = True, + class_: str = "linkb", ): """Assign func to bridge cmd, register shortcut, return button""" if func: @@ -245,6 +244,7 @@ class Editor: id=id, toggleable=toggleable, disables=disables, + class_=class_, ) return btn @@ -257,6 +257,7 @@ class Editor: id: Optional[str] = None, toggleable: bool = False, disables: bool = True, + class_: str = "linkb", ) -> str: if icon: if icon.startswith("qrc:/"): @@ -281,7 +282,7 @@ class Editor: else: toggleScript = "" tip = shortcut(tip) - theclass = "linkb" + theclass = class_ if not disables: theclass += " perm" return """