diff --git a/anki/collection.py b/anki/collection.py index 6c3c8a296..d5b4e9dd7 100644 --- a/anki/collection.py +++ b/anki/collection.py @@ -45,6 +45,7 @@ defaultConf = { 'sortType': "noteFld", 'sortBackwards': False, 'addToCur': True, # add new to currently selected deck? + 'dayLearnFirst': False, } # this is initialized by storage.Collection diff --git a/anki/schedv2.py b/anki/schedv2.py index 8325ad22a..ac78f03be 100644 --- a/anki/schedv2.py +++ b/anki/schedv2.py @@ -304,23 +304,34 @@ order by due""" % self._deckLimit(), c = self._getLrnCard() if c: return c + # new first, or time for one? if self._timeForNewCard(): c = self._getNewCard() if c: return c + + # day learning first and card due? + dayLearnFirst = self.col.conf.get("dayLearnFirst", False) + c = dayLearnFirst and self._getLrnDayCard() + if c: + return c + # card due for review? c = self._getRevCard() if c: return c + # day learning card due? - c = self._getLrnDayCard() + c = not dayLearnFirst and self._getLrnDayCard() if c: return c + # new cards left? c = self._getNewCard() if c: return c + # collapse or finish return self._getLrnCard(collapse=True) diff --git a/aqt/preferences.py b/aqt/preferences.py index 4f6e8eb89..33cdb9b16 100644 --- a/aqt/preferences.py +++ b/aqt/preferences.py @@ -83,8 +83,9 @@ class Preferences(QDialog): f.newSpread.addItems(list(c.newCardSchedulingLabels().values())) f.newSpread.setCurrentIndex(qc['newSpread']) f.useCurrent.setCurrentIndex(int(not qc.get("addToCur", True))) - - + f.dayLearnFirst.setChecked(qc.get("dayLearnFirst", False)) + if self.mw.col.schedVer() != 2: + self.dayLearnFirst.setVisible(False) def updateCollection(self): f = self.form @@ -97,6 +98,7 @@ class Preferences(QDialog): qc['timeLim'] = f.timeLimit.value()*60 qc['collapseTime'] = f.lrnCutoff.value()*60 qc['addToCur'] = not f.useCurrent.currentIndex() + qc['dayLearnFirst'] = f.dayLearnFirst.isChecked() self._updateDayCutoff() d.setMod() @@ -109,7 +111,6 @@ class Preferences(QDialog): else: self._setupDayCutoffV1() - def _setupDayCutoffV1(self): self.startDate = datetime.datetime.fromtimestamp(self.mw.col.crt) self.form.dayOffset.setValue(self.startDate.hour) diff --git a/designer/preferences.ui b/designer/preferences.ui index 7efd5e8bd..45ff8e9e0 100644 --- a/designer/preferences.ui +++ b/designer/preferences.ui @@ -85,6 +85,13 @@ + + + + Show learning cards with larger steps before reviews + + + @@ -437,18 +444,19 @@ showProgress pastePNG nightMode + dayLearnFirst useCurrent newSpread dayOffset lrnCutoff timeLimit - syncMedia - syncOnProgramOpen - syncDeauth - numBackups buttonBox + numBackups + syncOnProgramOpen tabWidget fullSync + syncMedia + syncDeauth