mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
fix onHeight error by not reloading toolbar each note
This commit is contained in:
parent
258a10edc7
commit
9c569ac35c
1 changed files with 51 additions and 35 deletions
|
@ -379,6 +379,7 @@ class Browser(QMainWindow):
|
||||||
|
|
||||||
def setupToolbar(self):
|
def setupToolbar(self):
|
||||||
self.toolbarWeb = AnkiWebView()
|
self.toolbarWeb = AnkiWebView()
|
||||||
|
self.toolbarWeb.title = "browser toolbar"
|
||||||
self.toolbar = BrowserToolbar(self.mw, self.toolbarWeb, self)
|
self.toolbar = BrowserToolbar(self.mw, self.toolbarWeb, self)
|
||||||
self.form.verticalLayout_3.insertWidget(0, self.toolbarWeb)
|
self.form.verticalLayout_3.insertWidget(0, self.toolbarWeb)
|
||||||
self.toolbar.draw()
|
self.toolbar.draw()
|
||||||
|
@ -600,7 +601,7 @@ class Browser(QMainWindow):
|
||||||
self.editor.card = self.card
|
self.editor.card = self.card
|
||||||
self.singleCard = True
|
self.singleCard = True
|
||||||
self._renderPreview(True)
|
self._renderPreview(True)
|
||||||
self.toolbar.draw()
|
self.toolbar.update()
|
||||||
|
|
||||||
def refreshCurrentCard(self, note):
|
def refreshCurrentCard(self, note):
|
||||||
self.model.refreshNote(note)
|
self.model.refreshNote(note)
|
||||||
|
@ -1693,44 +1694,59 @@ class BrowserToolbar(Toolbar):
|
||||||
Toolbar.__init__(self, mw, web)
|
Toolbar.__init__(self, mw, web)
|
||||||
|
|
||||||
def draw(self):
|
def draw(self):
|
||||||
mark = self.browser.isMarked()
|
self._loaded = False
|
||||||
pause = self.browser.isSuspended()
|
|
||||||
def borderImg(link, icon, on, title, tooltip=None):
|
|
||||||
if on:
|
|
||||||
fmt = '''\
|
|
||||||
<a class=hitem title="%s" href=# onclick="pycmd('%s')">\
|
|
||||||
<img valign=bottom style='border: 1px solid #aaa;' src="qrc:/icons/%s.png"> %s</a>'''
|
|
||||||
else:
|
|
||||||
fmt = '''\
|
|
||||||
<a class=hitem title="%s" href=# onclick="pycmd('%s')"><img style="padding: 1px;" valign=bottom src="qrc:/icons/%s.png"> %s</a>'''
|
|
||||||
return fmt % (tooltip or title, link, icon, title)
|
|
||||||
right = "<div>"
|
|
||||||
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 += "</div>"
|
|
||||||
self.web.onBridgeCmd = self._linkHandler
|
self.web.onBridgeCmd = self._linkHandler
|
||||||
self.web.onLoadFinished = self.onLoaded
|
self.web.onLoadFinished = self.onLoaded
|
||||||
self.web.stdHtml(self._body % (
|
self.web.stdHtml(self.html(), self.css())
|
||||||
"",
|
|
||||||
right, ""), 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 = '''\
|
||||||
|
<a class=hitem title="%s" href=# onclick="pycmd('%s')"><img id=%s valign=bottom src="qrc:/icons/%s.png"> %s</a>'''
|
||||||
|
return fmt % (tooltip or title, link, link, icon, title)
|
||||||
|
right = "<div>"
|
||||||
|
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 += "</div>"
|
||||||
|
return self._body % ("", right, "")
|
||||||
|
|
||||||
|
def css(self):
|
||||||
|
return self._css + """
|
||||||
#header { font-weight: normal; }
|
#header { font-weight: normal; }
|
||||||
a { margin-right: 1em; }
|
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
|
# Link handling
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
Loading…
Reference in a new issue