don't restore old position if we weren't in deck browser mode before

This commit is contained in:
Damien Elmes 2012-09-03 02:42:11 +09:00
parent 12f8526aac
commit f53a8f122e
2 changed files with 13 additions and 2 deletions

View file

@ -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

View file

@ -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)