diff --git a/qt/aqt/deckbrowser.py b/qt/aqt/deckbrowser.py index 3977edf7b..565079f06 100644 --- a/qt/aqt/deckbrowser.py +++ b/qt/aqt/deckbrowser.py @@ -402,7 +402,7 @@ class DeckBrowser: defaultno=True, ): prefs = self.mw.col.get_preferences() - prefs.sched.new_timezone = False + prefs.scheduling.new_timezone = False self.mw.col.set_preferences(prefs) showInfo(tr(TR.SCHEDULING_UPDATE_DONE)) diff --git a/qt/aqt/preferences.py b/qt/aqt/preferences.py index aacd48a1d..ea9726c77 100644 --- a/qt/aqt/preferences.py +++ b/qt/aqt/preferences.py @@ -112,7 +112,7 @@ class Preferences(QDialog): f.useCurrent.setCurrentIndex(int(not qc.get("addToCur", True))) - s = self.prefs.sched + s = self.prefs.scheduling f.lrnCutoff.setValue(int(s.learn_ahead_secs / 60.0)) f.timeLimit.setValue(int(s.time_limit_secs / 60.0)) f.showEstimates.setChecked(s.show_intervals_on_buttons) @@ -153,7 +153,7 @@ class Preferences(QDialog): qc = d.conf qc["addToCur"] = not f.useCurrent.currentIndex() - s = self.prefs.sched + s = self.prefs.scheduling s.show_remaining_due_counts = f.showProgress.isChecked() s.show_intervals_on_buttons = f.showEstimates.isChecked() s.new_review_mix = f.newSpread.currentIndex() diff --git a/rslib/backend.proto b/rslib/backend.proto index 608a52e6e..cbbdf3de1 100644 --- a/rslib/backend.proto +++ b/rslib/backend.proto @@ -1022,30 +1022,30 @@ message CheckDatabaseOut { repeated string problems = 1; } -message CollectionSchedulingSettings { - enum NewReviewMix { - DISTRIBUTE = 0; - REVIEWS_FIRST = 1; - NEW_FIRST = 2; +message Preferences { + message Scheduling { + enum NewReviewMix { + DISTRIBUTE = 0; + REVIEWS_FIRST = 1; + NEW_FIRST = 2; + } + + // read only + uint32 scheduler_version = 1; + + uint32 rollover = 2; + uint32 learn_ahead_secs = 3; + NewReviewMix new_review_mix = 4; + bool show_remaining_due_counts = 5; + bool show_intervals_on_buttons = 6; + uint32 time_limit_secs = 7; + + // v2 only + bool new_timezone = 8; + bool day_learn_first = 9; } - // read only - uint32 scheduler_version = 1; - - uint32 rollover = 2; - uint32 learn_ahead_secs = 3; - NewReviewMix new_review_mix = 4; - bool show_remaining_due_counts = 5; - bool show_intervals_on_buttons = 6; - uint32 time_limit_secs = 7; - - // v2 only - bool new_timezone = 8; - bool day_learn_first = 9; -} - -message Preferences { - CollectionSchedulingSettings sched = 1; + Scheduling scheduling = 1; } message ClozeNumbersInNoteOut { diff --git a/rslib/src/preferences.rs b/rslib/src/preferences.rs index ae45fb9b9..b2a59addd 100644 --- a/rslib/src/preferences.rs +++ b/rslib/src/preferences.rs @@ -3,8 +3,7 @@ use crate::{ backend_proto::{ - collection_scheduling_settings::NewReviewMix as NewRevMixPB, CollectionSchedulingSettings, - Preferences, + preferences::scheduling::NewReviewMix as NewRevMixPB, preferences::Scheduling, Preferences, }, collection::Collection, config::BoolKey, @@ -15,20 +14,20 @@ use crate::{ impl Collection { pub fn get_preferences(&self) -> Result { Ok(Preferences { - sched: Some(self.get_collection_scheduling_settings()?), + scheduling: Some(self.get_collection_scheduling_settings()?), }) } pub fn set_preferences(&mut self, prefs: Preferences) -> Result<()> { - if let Some(sched) = prefs.sched { + if let Some(sched) = prefs.scheduling { self.set_collection_scheduling_settings(sched)?; } Ok(()) } - pub fn get_collection_scheduling_settings(&self) -> Result { - Ok(CollectionSchedulingSettings { + pub fn get_collection_scheduling_settings(&self) -> Result { + Ok(Scheduling { scheduler_version: match self.scheduler_version() { crate::config::SchedulerVersion::V1 => 1, crate::config::SchedulerVersion::V2 => 2, @@ -50,7 +49,7 @@ impl Collection { pub(crate) fn set_collection_scheduling_settings( &mut self, - settings: CollectionSchedulingSettings, + settings: Scheduling, ) -> Result<()> { let s = settings;