mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
add perDay config option, more updates for libanki sched changes
- new review early / learn more handling - reset() when showing study stats - only run the update timer on study screen & finished screen
This commit is contained in:
parent
afba9529fe
commit
d698c3d310
4 changed files with 30 additions and 14 deletions
|
@ -63,6 +63,8 @@ class DeckProperties(QDialog):
|
||||||
self.dialog.collapse.setCheckState(self.d.collapseTime
|
self.dialog.collapse.setCheckState(self.d.collapseTime
|
||||||
and Qt.Checked or Qt.Unchecked)
|
and Qt.Checked or Qt.Unchecked)
|
||||||
self.dialog.failedCardMax.setText(unicode(self.d.failedCardMax))
|
self.dialog.failedCardMax.setText(unicode(self.d.failedCardMax))
|
||||||
|
self.dialog.perDay.setCheckState(self.d.getBool("perDay")
|
||||||
|
and Qt.Checked or Qt.Unchecked)
|
||||||
# sources
|
# sources
|
||||||
self.sources = self.d.s.all("select id, name from sources")
|
self.sources = self.d.s.all("select id, name from sources")
|
||||||
self.sourcesToRemove = []
|
self.sourcesToRemove = []
|
||||||
|
@ -266,6 +268,8 @@ class DeckProperties(QDialog):
|
||||||
was = self.d.modified
|
was = self.d.modified
|
||||||
self.updateField(self.d, 'collapseTime',
|
self.updateField(self.d, 'collapseTime',
|
||||||
self.dialog.collapse.isChecked() and 1 or 0)
|
self.dialog.collapse.isChecked() and 1 or 0)
|
||||||
|
if self.dialog.perDay.isChecked() != self.d.getBool("perDay"):
|
||||||
|
self.d.setVar('perDay', self.dialog.perDay.isChecked())
|
||||||
self.updateField(self.d,
|
self.updateField(self.d,
|
||||||
"highPriority",
|
"highPriority",
|
||||||
unicode(self.dialog.highPriority.text()))
|
unicode(self.dialog.highPriority.text()))
|
||||||
|
|
|
@ -329,7 +329,7 @@ Please do not file a bug report with Anki.<br>""")
|
||||||
if self.deck.isEmpty():
|
if self.deck.isEmpty():
|
||||||
return self.moveToState("deckEmpty")
|
return self.moveToState("deckEmpty")
|
||||||
else:
|
else:
|
||||||
if not self.deck.reviewEarly:
|
if not self.deck.finishScheduler:
|
||||||
if (self.config['showStudyScreen'] and
|
if (self.config['showStudyScreen'] and
|
||||||
not self.deck.sessionStartTime):
|
not self.deck.sessionStartTime):
|
||||||
return self.moveToState("studyScreen")
|
return self.moveToState("studyScreen")
|
||||||
|
@ -390,7 +390,8 @@ Please do not file a bug report with Anki.<br>""")
|
||||||
return self.moveToState("showQuestion")
|
return self.moveToState("showQuestion")
|
||||||
elif state == "studyScreen":
|
elif state == "studyScreen":
|
||||||
self.currentCard = None
|
self.currentCard = None
|
||||||
self.deck.resetAfterReviewEarly()
|
if self.deck.finishScheduler:
|
||||||
|
self.deck.finishScheduler()
|
||||||
self.disableCardMenuItems()
|
self.disableCardMenuItems()
|
||||||
self.showStudyScreen()
|
self.showStudyScreen()
|
||||||
self.updateViews(state)
|
self.updateViews(state)
|
||||||
|
@ -841,8 +842,8 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
||||||
self.closeAllDeckWindows()
|
self.closeAllDeckWindows()
|
||||||
synced = False
|
synced = False
|
||||||
if self.deck is not None:
|
if self.deck is not None:
|
||||||
if self.deck.reviewEarly:
|
if self.deck.finishScheduler:
|
||||||
self.deck.resetAfterReviewEarly()
|
self.deck.finishScheduler()
|
||||||
# update counts
|
# update counts
|
||||||
for d in self.browserDecks:
|
for d in self.browserDecks:
|
||||||
if d['path'] == self.deck.path:
|
if d['path'] == self.deck.path:
|
||||||
|
@ -1531,6 +1532,7 @@ later by using File>Close.
|
||||||
uf(self.deck, 'newCardOrder', ncOrd)
|
uf(self.deck, 'newCardOrder', ncOrd)
|
||||||
|
|
||||||
def updateStudyStats(self):
|
def updateStudyStats(self):
|
||||||
|
self.deck.reset()
|
||||||
wasReached = self.deck.sessionLimitReached()
|
wasReached = self.deck.sessionLimitReached()
|
||||||
sessionColour = '<font color=#0000ff>%s</font>'
|
sessionColour = '<font color=#0000ff>%s</font>'
|
||||||
cardColour = '<font color=#0000ff>%s</font>'
|
cardColour = '<font color=#0000ff>%s</font>'
|
||||||
|
@ -2065,13 +2067,13 @@ it to your friends.
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def onLearnMore(self):
|
def onLearnMore(self):
|
||||||
self.deck.newEarly = True
|
self.deck.setupLearnMoreScheduler()
|
||||||
self.reset()
|
self.reset()
|
||||||
self.showToolTip(_("""\
|
self.showToolTip(_("""\
|
||||||
<h1>Learning More</h1>Click the stopwatch at the top to finish."""))
|
<h1>Learning More</h1>Click the stopwatch at the top to finish."""))
|
||||||
|
|
||||||
def onReviewEarly(self):
|
def onReviewEarly(self):
|
||||||
self.deck.reviewEarly = True
|
self.deck.setupReviewEarlyScheduler()
|
||||||
self.reset()
|
self.reset()
|
||||||
self.showToolTip(_("""\
|
self.showToolTip(_("""\
|
||||||
<h1>Reviewing Early</h1>Click the stopwatch at the top to finish."""))
|
<h1>Reviewing Early</h1>Click the stopwatch at the top to finish."""))
|
||||||
|
|
|
@ -164,8 +164,6 @@ class StatusView(object):
|
||||||
remStr += "<b>0</b>"
|
remStr += "<b>0</b>"
|
||||||
elif self.state == "deckEmpty":
|
elif self.state == "deckEmpty":
|
||||||
remStr += "<b>0</b>"
|
remStr += "<b>0</b>"
|
||||||
elif self.main.deck.reviewEarly:
|
|
||||||
remStr += "<b>0</b>"
|
|
||||||
else:
|
else:
|
||||||
# remaining string, bolded depending on current card
|
# remaining string, bolded depending on current card
|
||||||
if sys.platform.startswith("linux"):
|
if sys.platform.startswith("linux"):
|
||||||
|
@ -187,10 +185,7 @@ class StatusView(object):
|
||||||
"<u>%(new1)s</u>")
|
"<u>%(new1)s</u>")
|
||||||
stats['failed1'] = '<font color=#990000>%s</font>' % stats['failed']
|
stats['failed1'] = '<font color=#990000>%s</font>' % stats['failed']
|
||||||
stats['rev1'] = '<font color=#000000>%s</font>' % stats['rev']
|
stats['rev1'] = '<font color=#000000>%s</font>' % stats['rev']
|
||||||
if self.main.deck.newEarly:
|
new = stats['new']
|
||||||
new = self.main.deck.newCount
|
|
||||||
else:
|
|
||||||
new = stats['new']
|
|
||||||
stats['new1'] = '<font color=#0000ff>%s</font>' % new
|
stats['new1'] = '<font color=#0000ff>%s</font>' % new
|
||||||
self.remText.setText(remStr % stats)
|
self.remText.setText(remStr % stats)
|
||||||
stats['spaced'] = self.main.deck.spacedCardCount()
|
stats['spaced'] = self.main.deck.spacedCardCount()
|
||||||
|
@ -287,7 +282,7 @@ You should aim to answer each question within<br>
|
||||||
|
|
||||||
def flashTimer(self):
|
def flashTimer(self):
|
||||||
if not (self.main.deck.sessionStartTime and
|
if not (self.main.deck.sessionStartTime and
|
||||||
self.main.deck.sessionTimeLimit) or self.main.deck.reviewEarly:
|
self.main.deck.sessionTimeLimit): # or self.main.deck.reviewEarly:
|
||||||
return
|
return
|
||||||
t = time.time() - self.main.deck.sessionStartTime
|
t = time.time() - self.main.deck.sessionStartTime
|
||||||
t = self.main.deck.sessionTimeLimit - t
|
t = self.main.deck.sessionTimeLimit - t
|
||||||
|
@ -302,7 +297,7 @@ You should aim to answer each question within<br>
|
||||||
return
|
return
|
||||||
if not self.main.deck:
|
if not self.main.deck:
|
||||||
return
|
return
|
||||||
if self.state in ("showQuestion", "showAnswer", "studyScreen"):
|
if self.state in ("deckFinished", "studyScreen"):
|
||||||
self.main.deck.reset()
|
self.main.deck.reset()
|
||||||
self.redraw()
|
self.redraw()
|
||||||
self.main.updateTitleBar()
|
self.main.updateTitleBar()
|
||||||
|
|
|
@ -589,6 +589,20 @@
|
||||||
<item row="5" column="2">
|
<item row="5" column="2">
|
||||||
<widget class="QSpinBox" name="leechFails"/>
|
<widget class="QSpinBox" name="leechFails"/>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QLabel" name="label_23">
|
||||||
|
<property name="text">
|
||||||
|
<string><b>Per-day scheduling</b></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="2">
|
||||||
|
<widget class="QCheckBox" name="perDay">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
@ -648,6 +662,7 @@
|
||||||
<tabstop>timeOffset</tabstop>
|
<tabstop>timeOffset</tabstop>
|
||||||
<tabstop>suspendLeeches</tabstop>
|
<tabstop>suspendLeeches</tabstop>
|
||||||
<tabstop>leechFails</tabstop>
|
<tabstop>leechFails</tabstop>
|
||||||
|
<tabstop>perDay</tabstop>
|
||||||
<tabstop>buttonBox</tabstop>
|
<tabstop>buttonBox</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|
Loading…
Reference in a new issue