mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
add v3 scheduler to prefs screen
This commit is contained in:
parent
4e95cac5c8
commit
6cc713cbe8
5 changed files with 26 additions and 8 deletions
|
@ -141,6 +141,7 @@ class Collection:
|
|||
# Scheduler
|
||||
##########################################################################
|
||||
|
||||
# for backwards compatibility, v3 is represented as 2
|
||||
supportedSchedulerVersions = (1, 2)
|
||||
|
||||
def schedVer(self) -> Literal[1, 2]:
|
||||
|
@ -155,7 +156,7 @@ class Collection:
|
|||
if ver == 1:
|
||||
self.sched = V1Scheduler(self)
|
||||
elif ver == 2:
|
||||
if self.is_2021_test_scheduler_enabled():
|
||||
if self.v3_scheduler():
|
||||
self.sched = V3Scheduler(self)
|
||||
else:
|
||||
self.sched = V2Scheduler(self)
|
||||
|
@ -165,11 +166,11 @@ class Collection:
|
|||
self.clear_python_undo()
|
||||
self._loadScheduler()
|
||||
|
||||
def is_2021_test_scheduler_enabled(self) -> bool:
|
||||
def v3_scheduler(self) -> bool:
|
||||
return self.get_config_bool(Config.Bool.SCHED_2021)
|
||||
|
||||
def set_2021_test_scheduler_enabled(self, enabled: bool) -> None:
|
||||
if self.is_2021_test_scheduler_enabled() != enabled:
|
||||
def set_v3_scheduler(self, enabled: bool) -> None:
|
||||
if self.v3_scheduler() != enabled:
|
||||
if enabled and self.schedVer() != 2:
|
||||
raise Exception("must upgrade to v2 scheduler first")
|
||||
self.set_config_bool(Config.Bool.SCHED_2021, enabled)
|
||||
|
|
|
@ -27,7 +27,7 @@ def getEmptyCol():
|
|||
col = getEmptyColOrig()
|
||||
col.upgrade_to_v2_scheduler()
|
||||
if is_2021():
|
||||
col.set_2021_test_scheduler_enabled(True)
|
||||
col.set_v3_scheduler(True)
|
||||
return col
|
||||
|
||||
|
||||
|
|
|
@ -205,6 +205,16 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="sched2021">
|
||||
<property name="toolTip">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">2021 scheduler (experimental)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="newSpread"/>
|
||||
</item>
|
||||
|
@ -598,6 +608,7 @@
|
|||
<tabstop>showProgress</tabstop>
|
||||
<tabstop>dayLearnFirst</tabstop>
|
||||
<tabstop>legacy_timezone</tabstop>
|
||||
<tabstop>sched2021</tabstop>
|
||||
<tabstop>newSpread</tabstop>
|
||||
<tabstop>dayOffset</tabstop>
|
||||
<tabstop>lrnCutoff</tabstop>
|
||||
|
|
|
@ -58,9 +58,9 @@ class Preferences(QDialog):
|
|||
|
||||
version = scheduling.scheduler_version
|
||||
form.dayLearnFirst.setVisible(version == 2)
|
||||
# fixme: force on for v3
|
||||
form.legacy_timezone.setVisible(version >= 2)
|
||||
form.newSpread.setVisible(version < 3)
|
||||
form.sched2021.setVisible(version >= 2)
|
||||
|
||||
form.lrnCutoff.setValue(int(scheduling.learn_ahead_secs / 60.0))
|
||||
form.newSpread.addItems(list(newCardSchedulingLabels(self.mw.col).values()))
|
||||
|
@ -68,6 +68,7 @@ class Preferences(QDialog):
|
|||
form.dayLearnFirst.setChecked(scheduling.day_learn_first)
|
||||
form.dayOffset.setValue(scheduling.rollover)
|
||||
form.legacy_timezone.setChecked(not scheduling.new_timezone)
|
||||
form.sched2021.setChecked(version == 3)
|
||||
|
||||
reviewing = self.prefs.reviewing
|
||||
form.timeLimit.setValue(int(reviewing.time_limit_secs / 60.0))
|
||||
|
@ -108,6 +109,11 @@ class Preferences(QDialog):
|
|||
self.mw.col.set_preferences(self.prefs)
|
||||
self.mw.apply_collection_options()
|
||||
|
||||
if scheduling.scheduler_version > 1:
|
||||
want_v3 = form.sched2021.isChecked()
|
||||
if self.mw.col.v3_scheduler() != want_v3:
|
||||
self.mw.col.set_v3_scheduler(want_v3)
|
||||
|
||||
# Preferences stored in the profile
|
||||
######################################################################
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ impl OpChanges {
|
|||
let c = &self.changes;
|
||||
c.card
|
||||
|| (c.deck && self.op != Op::ExpandCollapse)
|
||||
|| (c.config && matches!(self.op, Op::SetCurrentDeck))
|
||||
|| (c.config && matches!(self.op, Op::SetCurrentDeck | Op::UpdatePreferences))
|
||||
|| c.deck_config
|
||||
|| c.note
|
||||
|| c.notetype
|
||||
|
@ -173,7 +173,7 @@ impl OpChanges {
|
|||
|
||||
c.card
|
||||
|| (c.deck && self.op != Op::ExpandCollapse)
|
||||
|| (c.config && matches!(self.op, Op::SetCurrentDeck))
|
||||
|| (c.config && matches!(self.op, Op::SetCurrentDeck | Op::UpdatePreferences))
|
||||
|| c.deck_config
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue