From b699226cfd63618c57417ea992ddb1c36d366617 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 24 Mar 2011 18:13:58 +0900 Subject: [PATCH] congrats screen; add temporary hack for space bar and pass links through bridge --- aqt/reviewer.py | 28 +++++++++++++++------------- aqt/webview.py | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/aqt/reviewer.py b/aqt/reviewer.py index 5e1c66db7..b1915fbde 100644 --- a/aqt/reviewer.py +++ b/aqt/reviewer.py @@ -244,8 +244,8 @@ $(".ansbut").focus(); self._answerCard(key) return True - def _linkHandler(self, url): + print url if url == "ans": self._showAnswer() elif url.startswith("ease"): @@ -254,6 +254,8 @@ $(".ansbut").focus(); self.mw.onAddCard() elif url == "dlist": self.mw.close() + elif url == "ov": + self.mw.moveToState("overview") # CSS ########################################################################## @@ -439,22 +441,22 @@ div#filler { def _showCongrats(self): self.state = "congrats" self.card = None - self.deck.db.flush() - self.hideButtons() - self.disableCardMenuItems() - self.switchToCongratsScreen() - self.form.learnMoreButton.setEnabled( - not not self.deck.newAvail) - self.startRefreshTimer() - self.bodyView.setState(state) - # focus finish button - self.form.finishButton.setFocus() + self.mw.deck.save() + buf = """ +
+%s +

+%s +%s + +

""" % (self.mw.deck.sched.finishedMsg(), + _("Overview"), + _("Deck List")) + self.web.stdHtml(buf, css=self.mw.sharedCSS) runHook('deckFinished') def drawDeckFinishedMessage(self): "Tell the user the deck is finished." - self.main.mainWin.congratsLabel.setText( - self.main.deck.deckFinishedMsg()) # Deck empty case ########################################################################## diff --git a/aqt/webview.py b/aqt/webview.py index 114d94376..bf6662c8a 100644 --- a/aqt/webview.py +++ b/aqt/webview.py @@ -16,8 +16,14 @@ class Bridge(QObject): @pyqtSlot(str, result=str) def run(self, str): return unicode(self._bridge(unicode(str))) + @pyqtSlot(str) + def link(self, str): + print "link", str + self._linkHandler(unicode(str)) def setBridge(self, func): self._bridge = func + def setLinkHandler(self, func): + self._linkHandler = func # Page for debug messages ########################################################################## @@ -42,7 +48,6 @@ class AnkiWebView(QWebView): self._loadFinishedCB = None self.setPage(self._page) self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) - self.page().mainFrame().addToJavaScriptWindowObject("py", self._bridge) self.setLinkHandler() self.setKeyHandler() self.connect(self, SIGNAL("linkClicked(QUrl)"), self._linkHandler) @@ -65,6 +70,7 @@ class AnkiWebView(QWebView): self.linkHandler = handler else: self.linkHandler = self._openLinksExternally + self._bridge.setLinkHandler(self.linkHandler) def setKeyHandler(self, handler=None): # handler should return true if event should be swallowed self._keyHandler = handler @@ -72,11 +78,19 @@ class AnkiWebView(QWebView): if loadCB: self._loadFinishedCB = loadCB QWebView.setHtml(self, html) + self.page().mainFrame().addToJavaScriptWindowObject("py", self._bridge) def stdHtml(self, body, css="", bodyClass="", loadCB=None): self.setHtml(""" + %s""" % (css, bodyClass, body), loadCB) # ensure we're focused