diff --git a/aqt/browser.py b/aqt/browser.py
index c659078fd..00ed44228 100644
--- a/aqt/browser.py
+++ b/aqt/browser.py
@@ -379,6 +379,7 @@ class Browser(QMainWindow):
def setupToolbar(self):
self.toolbarWeb = AnkiWebView()
+ self.toolbarWeb.title = "browser toolbar"
self.toolbar = BrowserToolbar(self.mw, self.toolbarWeb, self)
self.form.verticalLayout_3.insertWidget(0, self.toolbarWeb)
self.toolbar.draw()
@@ -600,7 +601,7 @@ class Browser(QMainWindow):
self.editor.card = self.card
self.singleCard = True
self._renderPreview(True)
- self.toolbar.draw()
+ self.toolbar.update()
def refreshCurrentCard(self, note):
self.model.refreshNote(note)
@@ -1693,44 +1694,59 @@ class BrowserToolbar(Toolbar):
Toolbar.__init__(self, mw, web)
def draw(self):
- mark = self.browser.isMarked()
- pause = self.browser.isSuspended()
- def borderImg(link, icon, on, title, tooltip=None):
- if on:
- fmt = '''\
-\
-
%s'''
- else:
- fmt = '''\
-
%s'''
- return fmt % (tooltip or title, link, icon, title)
- right = "
"
- right += borderImg("add", "add16", False, _("Add"),
- shortcut(_("Add Note (Ctrl+E)")))
- right += borderImg("info", "info", False, _("Info"),
- shortcut(_("Card Info (Ctrl+Shift+I)")))
- right += borderImg("mark", "star16", mark, _("Mark"),
- shortcut(_("Mark Note (Ctrl+K)")))
- right += borderImg("pause", "pause16", pause, _("Suspend"),
- shortcut(_("Suspend Card (Ctrl+J)")))
- right += borderImg("setDeck", "deck16", False, _("Change Deck"),
- shortcut(_("Move To Deck (Ctrl+D)")))
- right += borderImg("addtag", "addtag16", False, _("Add Tags"),
- shortcut(_("Bulk Add Tags (Ctrl+Shift+T)")))
- right += borderImg("deletetag", "deletetag16", False,
- _("Remove Tags"), shortcut(_(
- "Bulk Remove Tags (Ctrl+Alt+T)")))
- right += borderImg("delete", "delete16", False, _("Delete"))
- right += "
"
+ self._loaded = False
self.web.onBridgeCmd = self._linkHandler
self.web.onLoadFinished = self.onLoaded
- self.web.stdHtml(self._body % (
- "",
- right, ""), self._css + """
+ self.web.stdHtml(self.html(), self.css())
+
+ def onLoaded(self):
+ super().onLoaded()
+ self._loaded = True
+ self.update()
+
+ def update(self):
+ if not self._loaded:
+ return
+ for link, enabled in (
+ ("mark", self.browser.isMarked()),
+ ("pause", self.browser.isSuspended())):
+ if enabled:
+ self.web.eval("$('#%s').addClass('buttonOn')" % link)
+ else:
+ self.web.eval("$('#%s').removeClass('buttonOn')" % link)
+
+ def html(self):
+ def borderImg(link, icon, title, tooltip=None):
+ fmt = '''\
+
%s'''
+ return fmt % (tooltip or title, link, link, icon, title)
+ right = ""
+ right += borderImg("add", "add16", _("Add"),
+ shortcut(_("Add Note (Ctrl+E)")))
+ right += borderImg("info", "info", _("Info"),
+ shortcut(_("Card Info (Ctrl+Shift+I)")))
+ right += borderImg("mark", "star16", _("Mark"),
+ shortcut(_("Mark Note (Ctrl+K)")))
+ right += borderImg("pause", "pause16", _("Suspend"),
+ shortcut(_("Suspend Card (Ctrl+J)")))
+ right += borderImg("setDeck", "deck16", _("Change Deck"),
+ shortcut(_("Move To Deck (Ctrl+D)")))
+ right += borderImg("addtag", "addtag16", _("Add Tags"),
+ shortcut(_("Bulk Add Tags (Ctrl+Shift+T)")))
+ right += borderImg("deletetag", "deletetag16", _("Remove Tags"), shortcut(_(
+ "Bulk Remove Tags (Ctrl+Alt+T)")))
+ right += borderImg("delete", "delete16", _("Delete"))
+ right += "
"
+ return self._body % ("", right, "")
+
+ def css(self):
+ return self._css + """
#header { font-weight: normal; }
a { margin-right: 1em; }
-.hitem { overflow: hidden; white-space: nowrap;}
-""")
+.hitem { overflow: hidden; white-space: nowrap; }
+.hitem img { padding: 1px; }
+.buttonOn { border: 1px solid #aaa; padding: 0px !important; }
+"""
# Link handling
######################################################################