mirror of
https://github.com/ankitects/anki.git
synced 2025-11-10 14:47:12 -05:00
note updated counts when returning to deck browser
This commit is contained in:
parent
b2a0398220
commit
90002a3073
3 changed files with 33 additions and 44 deletions
|
|
@ -38,19 +38,24 @@ class DeckBrowser(object):
|
|||
self._renderPage()
|
||||
|
||||
def _onClose(self):
|
||||
print "onClose"
|
||||
return
|
||||
if deck.finishScheduler:
|
||||
self.deck.finishScheduler()
|
||||
self.deck.reset()
|
||||
# update counts
|
||||
for d in self.browserDecks:
|
||||
if d['path'] == self.deck.path:
|
||||
d['due'] = self.deck.failedSoonCount + self.deck.revCount
|
||||
d['new'] = self.deck.newCount
|
||||
d['mod'] = self.deck.modified
|
||||
d['time'] = self.deck._dailyStats.reviewTime
|
||||
d['reps'] = self.deck._dailyStats.reps
|
||||
# update counts
|
||||
deck = self.mw.deck
|
||||
def add(d):
|
||||
counts = deck.sched.counts()
|
||||
d['due'] = counts[1]+counts[2]
|
||||
d['new'] = counts[0]
|
||||
d['mod'] = deck.mod
|
||||
d['time'] = deck.sched.timeToday()
|
||||
d['reps'] = deck.sched.repsToday()
|
||||
d['name'] = deck.name()
|
||||
for d in self._decks:
|
||||
if d['path'] == deck.path:
|
||||
add(d)
|
||||
return
|
||||
# not found; add new
|
||||
d = {'path': deck.path, 'state': 'ok'}
|
||||
add(d)
|
||||
self._decks.append(d)
|
||||
|
||||
# Toolbar
|
||||
##########################################################################
|
||||
|
|
|
|||
30
aqt/main.py
30
aqt/main.py
|
|
@ -545,15 +545,19 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
|||
##########################################################################
|
||||
|
||||
def onClose(self):
|
||||
if self.inMainWindow() or not self.app.activeWindow():
|
||||
aw = self.app.activeWindow()
|
||||
if not aw or aw == self:
|
||||
self.close()
|
||||
else:
|
||||
self.app.activeWindow().close()
|
||||
aw.close()
|
||||
|
||||
def close(self, showBrowser=True):
|
||||
"(Auto)save and close. Prompt if necessary. True if okay to proceed."
|
||||
if not self.deck:
|
||||
return
|
||||
# if we were cramming, restore the standard scheduler
|
||||
if self.deck.stdSched():
|
||||
self.deck.reset()
|
||||
runHook("deckClosing")
|
||||
print "focusOut() should be handled with deckClosing now"
|
||||
self.closeAllDeckWindows()
|
||||
|
|
@ -562,16 +566,14 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
|||
if showBrowser:
|
||||
self.moveToState("deckBrowser")
|
||||
|
||||
def inMainWindow(self):
|
||||
def raiseMain(self):
|
||||
if not self.app.activeWindow():
|
||||
# make sure window is shown
|
||||
self.setWindowState(self.windowState() & ~Qt.WindowMinimized)
|
||||
return True
|
||||
# FIXME: no longer necessary?
|
||||
return self.app.activeWindow() == self
|
||||
|
||||
def onNew(self, path=None, prompt=None):
|
||||
if not self.inMainWindow() and not path: return
|
||||
self.raiseMain()
|
||||
self.close()
|
||||
register = not path
|
||||
bad = ":/\\"
|
||||
|
|
@ -605,13 +607,9 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
|||
else:
|
||||
self.moveToState("deckBrowser")
|
||||
return
|
||||
self.deck = DeckStorage.Deck(path)
|
||||
self.deck.initUndo()
|
||||
self.deck.save()
|
||||
self.loadDeck(path)
|
||||
if register:
|
||||
self.updateRecentFiles(self.deck.path)
|
||||
self.browserLastRefreshed = 0
|
||||
self.moveToState("initial")
|
||||
|
||||
def ensureSyncParams(self):
|
||||
if not self.config['syncUsername'] or not self.config['syncPassword']:
|
||||
|
|
@ -646,7 +644,7 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
|||
self.config['syncPassword'] = unicode(passwd.text())
|
||||
|
||||
def onOpenOnline(self):
|
||||
if not self.inMainWindow(): return
|
||||
self.raiseMain()
|
||||
self.ensureSyncParams()
|
||||
self.close()
|
||||
# we need a disk-backed file for syncing
|
||||
|
|
@ -666,16 +664,16 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
|||
self.moveToState("initial")
|
||||
|
||||
def onGetSharedDeck(self):
|
||||
if not self.inMainWindow(): return
|
||||
self.raiseMain()
|
||||
aqt.getshared.GetShared(self, 0)
|
||||
self.browserLastRefreshed = 0
|
||||
|
||||
def onGetSharedPlugin(self):
|
||||
if not self.inMainWindow(): return
|
||||
self.raiseMain()
|
||||
aqt.getshared.GetShared(self, 1)
|
||||
|
||||
def onOpen(self):
|
||||
if not self.inMainWindow(): return
|
||||
self.raiseMain()
|
||||
key = _("Deck files (*.anki)")
|
||||
defaultDir = self.getDefaultDir()
|
||||
file = QFileDialog.getOpenFileName(self, _("Open deck"),
|
||||
|
|
@ -1504,7 +1502,7 @@ it to your friends.
|
|||
|
||||
def syncDeck(self, interactive=True, onlyMerge=False, reload=True):
|
||||
"Synchronise a deck with the server."
|
||||
if not self.inMainWindow() and interactive and interactive!=-1: return
|
||||
self.raiseMain()
|
||||
#self.setNotice()
|
||||
# vet input
|
||||
if interactive:
|
||||
|
|
|
|||
|
|
@ -128,7 +128,6 @@ $(".ansbut").focus();
|
|||
def _showQuestion(self):
|
||||
self.state = "question"
|
||||
# fixme: timeboxing
|
||||
# fixme: q/a separation
|
||||
# fixme: prevent audio from repeating
|
||||
# fixme: include placeholder for type answer result
|
||||
c = self.card
|
||||
|
|
@ -161,22 +160,9 @@ $(".ansbut").focus();
|
|||
# render
|
||||
runHook('showAnswer')
|
||||
|
||||
# Review buttons
|
||||
# Ease buttons
|
||||
##########################################################################
|
||||
|
||||
def _reviewButtons(self):
|
||||
# type answer area
|
||||
buf = self.typeAnsInput()
|
||||
# show answer button
|
||||
buf += """
|
||||
<a id=ansbut class="but ansbut" href=ans onclick="showans();">
|
||||
<div class=ansbut>%s</div>
|
||||
</a>
|
||||
""" % _("Show Answer")
|
||||
# ease buttons
|
||||
buf += self._answerButtons()
|
||||
return buf
|
||||
|
||||
def _defaultEase(self):
|
||||
if self.mw.deck.sched.answerButtons(self.card) == 4:
|
||||
return 3
|
||||
|
|
|
|||
Loading…
Reference in a new issue