From f53a8f122e2e3b6801d9a60b6d4f152709c4993f Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Mon, 3 Sep 2012 02:42:11 +0900 Subject: [PATCH] don't restore old position if we weren't in deck browser mode before --- aqt/deckbrowser.py | 12 ++++++++++-- aqt/webview.py | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/aqt/deckbrowser.py b/aqt/deckbrowser.py index 7020f4d23..b206022b4 100644 --- a/aqt/deckbrowser.py +++ b/aqt/deckbrowser.py @@ -100,6 +100,7 @@ body { margin: 1em; -webkit-user-select: none; } $( init ); function init() { + $("tr.deck").draggable({ scroll: false, @@ -135,12 +136,19 @@ body { margin: 1em; -webkit-user-select: none; } self._dueTree = self.mw.col.sched.deckDueTree() tree = self._renderDeckTree(self._dueTree) stats = self._renderStats() - oldPos = self.web.page().mainFrame().scrollPosition() + op = self._oldPos() self.web.stdHtml(self._body%dict(tree=tree, stats=stats), css=css, js=anki.js.jquery+anki.js.ui, loadCB=lambda ok:\ - self.web.page().mainFrame().setScrollPosition(oldPos)) + self.web.page().mainFrame().setScrollPosition(op)) + self.web.key = "deckBrowser" self._drawButtons() + def _oldPos(self): + if self.web.key == "deckBrowser": + return self.web.page().mainFrame().scrollPosition() + else: + return QPoint(0,0) + def _renderStats(self): cards, thetime = self.mw.col.db.first(""" select count(), sum(time)/1000 from revlog diff --git a/aqt/webview.py b/aqt/webview.py index e4893fe66..7991a61a4 100644 --- a/aqt/webview.py +++ b/aqt/webview.py @@ -57,6 +57,8 @@ class AnkiWebView(QWebView): self.connect(self, SIGNAL("linkClicked(QUrl)"), self._linkHandler) self.connect(self, SIGNAL("loadFinished(bool)"), self._loadFinished) self.allowDrops = False + # reset each time new html is set; used to detect if still in same state + self.key = None def keyPressEvent(self, evt): if evt.matches(QKeySequence.Copy): @@ -101,6 +103,7 @@ class AnkiWebView(QWebView): self._keyHandler = handler def setHtml(self, html, loadCB=None): + self.key = None self._loadFinishedCB = loadCB QWebView.setHtml(self, html)