add experimental scheduler to preferences

This commit is contained in:
Damien Elmes 2018-04-30 16:26:19 +10:00
parent d44ec04751
commit 560c21c59d
2 changed files with 65 additions and 6 deletions

View file

@ -5,7 +5,8 @@
import datetime, time
from aqt.qt import *
import anki.lang
from aqt.utils import openFolder, showWarning, getText, openHelp, showInfo
from aqt.utils import openFolder, showWarning, getText, openHelp, showInfo, \
askUser
import aqt
class Preferences(QDialog):
@ -86,6 +87,8 @@ class Preferences(QDialog):
f.dayLearnFirst.setChecked(qc.get("dayLearnFirst", False))
if self.mw.col.schedVer() != 2:
f.dayLearnFirst.setVisible(False)
else:
f.newSched.setChecked(True)
def updateCollection(self):
f = self.form
@ -100,8 +103,30 @@ class Preferences(QDialog):
qc['addToCur'] = not f.useCurrent.currentIndex()
qc['dayLearnFirst'] = f.dayLearnFirst.isChecked()
self._updateDayCutoff()
self._updateSchedVer(f.newSched.isChecked())
d.setMod()
# Scheduler version
######################################################################
def _updateSchedVer(self, wantNew):
haveNew = self.mw.col.schedVer() == 2
# nothing to do?
if haveNew == wantNew:
return
if haveNew and not wantNew:
if not askUser(_("This will reset any cards in learning, clear filtered decks, and change the scheduler version. Proceed?")):
return
self.mw.col.changeSchedulerVer(1)
return
if not askUser(_("The experimental scheduler could cause incorrect scheduling. Please ensure you have read the documentation first. Proceed?")):
return
self.mw.col.changeSchedulerVer(2)
# Day cutoff
######################################################################

View file

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>405</width>
<height>455</height>
<height>469</height>
</rect>
</property>
<property name="windowTitle">
@ -30,7 +30,16 @@
<property name="spacing">
<number>12</number>
</property>
<property name="margin">
<property name="leftMargin">
<number>12</number>
</property>
<property name="topMargin">
<number>12</number>
</property>
<property name="rightMargin">
<number>12</number>
</property>
<property name="bottomMargin">
<number>12</number>
</property>
<item>
@ -92,6 +101,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="newSched">
<property name="text">
<string>Experimental V2 scheduler</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="useCurrent">
<item>
@ -217,7 +233,16 @@
<property name="spacing">
<number>12</number>
</property>
<property name="margin">
<property name="leftMargin">
<number>12</number>
</property>
<property name="topMargin">
<number>12</number>
</property>
<property name="rightMargin">
<number>12</number>
</property>
<property name="bottomMargin">
<number>12</number>
</property>
<item>
@ -322,7 +347,16 @@
<property name="spacing">
<number>12</number>
</property>
<property name="margin">
<property name="leftMargin">
<number>12</number>
</property>
<property name="topMargin">
<number>12</number>
</property>
<property name="rightMargin">
<number>12</number>
</property>
<property name="bottomMargin">
<number>12</number>
</property>
<item>
@ -445,12 +479,12 @@
<tabstop>pastePNG</tabstop>
<tabstop>nightMode</tabstop>
<tabstop>dayLearnFirst</tabstop>
<tabstop>newSched</tabstop>
<tabstop>useCurrent</tabstop>
<tabstop>newSpread</tabstop>
<tabstop>dayOffset</tabstop>
<tabstop>lrnCutoff</tabstop>
<tabstop>timeLimit</tabstop>
<tabstop>buttonBox</tabstop>
<tabstop>numBackups</tabstop>
<tabstop>syncOnProgramOpen</tabstop>
<tabstop>tabWidget</tabstop>