mirror of
https://github.com/ankitects/anki.git
synced 2025-11-11 07:07:13 -05:00
congrats screen; add temporary hack for space bar and pass links through bridge
This commit is contained in:
parent
b5f393c7fe
commit
b699226cfd
2 changed files with 30 additions and 14 deletions
|
|
@ -244,8 +244,8 @@ $(".ansbut").focus();
|
||||||
self._answerCard(key)
|
self._answerCard(key)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def _linkHandler(self, url):
|
def _linkHandler(self, url):
|
||||||
|
print url
|
||||||
if url == "ans":
|
if url == "ans":
|
||||||
self._showAnswer()
|
self._showAnswer()
|
||||||
elif url.startswith("ease"):
|
elif url.startswith("ease"):
|
||||||
|
|
@ -254,6 +254,8 @@ $(".ansbut").focus();
|
||||||
self.mw.onAddCard()
|
self.mw.onAddCard()
|
||||||
elif url == "dlist":
|
elif url == "dlist":
|
||||||
self.mw.close()
|
self.mw.close()
|
||||||
|
elif url == "ov":
|
||||||
|
self.mw.moveToState("overview")
|
||||||
|
|
||||||
# CSS
|
# CSS
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
@ -439,22 +441,22 @@ div#filler {
|
||||||
def _showCongrats(self):
|
def _showCongrats(self):
|
||||||
self.state = "congrats"
|
self.state = "congrats"
|
||||||
self.card = None
|
self.card = None
|
||||||
self.deck.db.flush()
|
self.mw.deck.save()
|
||||||
self.hideButtons()
|
buf = """
|
||||||
self.disableCardMenuItems()
|
<center>
|
||||||
self.switchToCongratsScreen()
|
%s
|
||||||
self.form.learnMoreButton.setEnabled(
|
<p>
|
||||||
not not self.deck.newAvail)
|
<a class=but id=ov href=ov>%s</a>
|
||||||
self.startRefreshTimer()
|
<a class=but href=dlist>%s</a>
|
||||||
self.bodyView.setState(state)
|
<script>$("#ov").focus();</script>
|
||||||
# focus finish button
|
</center>""" % (self.mw.deck.sched.finishedMsg(),
|
||||||
self.form.finishButton.setFocus()
|
_("Overview"),
|
||||||
|
_("Deck List"))
|
||||||
|
self.web.stdHtml(buf, css=self.mw.sharedCSS)
|
||||||
runHook('deckFinished')
|
runHook('deckFinished')
|
||||||
|
|
||||||
def drawDeckFinishedMessage(self):
|
def drawDeckFinishedMessage(self):
|
||||||
"Tell the user the deck is finished."
|
"Tell the user the deck is finished."
|
||||||
self.main.mainWin.congratsLabel.setText(
|
|
||||||
self.main.deck.deckFinishedMsg())
|
|
||||||
|
|
||||||
# Deck empty case
|
# Deck empty case
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,14 @@ class Bridge(QObject):
|
||||||
@pyqtSlot(str, result=str)
|
@pyqtSlot(str, result=str)
|
||||||
def run(self, str):
|
def run(self, str):
|
||||||
return unicode(self._bridge(unicode(str)))
|
return unicode(self._bridge(unicode(str)))
|
||||||
|
@pyqtSlot(str)
|
||||||
|
def link(self, str):
|
||||||
|
print "link", str
|
||||||
|
self._linkHandler(unicode(str))
|
||||||
def setBridge(self, func):
|
def setBridge(self, func):
|
||||||
self._bridge = func
|
self._bridge = func
|
||||||
|
def setLinkHandler(self, func):
|
||||||
|
self._linkHandler = func
|
||||||
|
|
||||||
# Page for debug messages
|
# Page for debug messages
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
@ -42,7 +48,6 @@ class AnkiWebView(QWebView):
|
||||||
self._loadFinishedCB = None
|
self._loadFinishedCB = None
|
||||||
self.setPage(self._page)
|
self.setPage(self._page)
|
||||||
self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
|
self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
|
||||||
self.page().mainFrame().addToJavaScriptWindowObject("py", self._bridge)
|
|
||||||
self.setLinkHandler()
|
self.setLinkHandler()
|
||||||
self.setKeyHandler()
|
self.setKeyHandler()
|
||||||
self.connect(self, SIGNAL("linkClicked(QUrl)"), self._linkHandler)
|
self.connect(self, SIGNAL("linkClicked(QUrl)"), self._linkHandler)
|
||||||
|
|
@ -65,6 +70,7 @@ class AnkiWebView(QWebView):
|
||||||
self.linkHandler = handler
|
self.linkHandler = handler
|
||||||
else:
|
else:
|
||||||
self.linkHandler = self._openLinksExternally
|
self.linkHandler = self._openLinksExternally
|
||||||
|
self._bridge.setLinkHandler(self.linkHandler)
|
||||||
def setKeyHandler(self, handler=None):
|
def setKeyHandler(self, handler=None):
|
||||||
# handler should return true if event should be swallowed
|
# handler should return true if event should be swallowed
|
||||||
self._keyHandler = handler
|
self._keyHandler = handler
|
||||||
|
|
@ -72,11 +78,19 @@ class AnkiWebView(QWebView):
|
||||||
if loadCB:
|
if loadCB:
|
||||||
self._loadFinishedCB = loadCB
|
self._loadFinishedCB = loadCB
|
||||||
QWebView.setHtml(self, html)
|
QWebView.setHtml(self, html)
|
||||||
|
self.page().mainFrame().addToJavaScriptWindowObject("py", self._bridge)
|
||||||
def stdHtml(self, body, css="", bodyClass="", loadCB=None):
|
def stdHtml(self, body, css="", bodyClass="", loadCB=None):
|
||||||
self.setHtml("""
|
self.setHtml("""
|
||||||
<html><head><style>%s</style>
|
<html><head><style>%s</style>
|
||||||
<script src="qrc:/jquery.min.js"></script>
|
<script src="qrc:/jquery.min.js"></script>
|
||||||
<script src="qrc:/jquery.flot.min.js"></script>
|
<script src="qrc:/jquery.flot.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).keydown(function(e) {
|
||||||
|
if(e.which==32 && document.activeElement.nodeName == "A") {
|
||||||
|
py.link(document.activeElement.href);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body class="%s">%s</body></html>""" % (css, bodyClass, body), loadCB)
|
<body class="%s">%s</body></html>""" % (css, bodyClass, body), loadCB)
|
||||||
# ensure we're focused
|
# ensure we're focused
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue