diff --git a/proto/anki/decks.proto b/proto/anki/decks.proto
index ca360aed9..c91abb39a 100644
--- a/proto/anki/decks.proto
+++ b/proto/anki/decks.proto
@@ -109,12 +109,14 @@ message Deck {
repeated SearchTerm search_terms = 2;
// v1 scheduler only
repeated float delays = 3;
- // v2 scheduler only
- uint32 preview_again_mins = 4;
+ // v2 and old v3 scheduler only
+ uint32 preview_delay = 4;
// recent v3 scheduler only; 0 means card will be returned
- uint32 preview_hard_mins = 5;
+ uint32 preview_again_secs = 7;
// recent v3 scheduler only; 0 means card will be returned
- uint32 preview_good_mins = 6;
+ uint32 preview_hard_secs = 5;
+ // recent v3 scheduler only; 0 means card will be returned
+ uint32 preview_good_secs = 6;
}
// a container to store the deck specifics in the DB
// as a tagged enum
diff --git a/qt/aqt/filtered_deck.py b/qt/aqt/filtered_deck.py
index 56f5aa14b..acda4ef86 100644
--- a/qt/aqt/filtered_deck.py
+++ b/qt/aqt/filtered_deck.py
@@ -142,9 +142,9 @@ class FilteredDeckConfigDialog(QDialog):
form.order.setCurrentIndex(term1.order)
form.limit.setValue(term1.limit)
- form.preview_again.setValue(config.preview_again_mins)
- form.preview_hard.setValue(config.preview_hard_mins)
- form.preview_good.setValue(config.preview_good_mins)
+ form.preview_again.setValue(config.preview_again_secs)
+ form.preview_hard.setValue(config.preview_hard_secs)
+ form.preview_good.setValue(config.preview_good_secs)
if len(config.search_terms) > 1:
term2: FilteredDeckConfig.SearchTerm = config.search_terms[1]
@@ -277,9 +277,9 @@ class FilteredDeckConfigDialog(QDialog):
del config.search_terms[:]
config.search_terms.extend(terms)
- config.preview_again_mins = form.preview_again.value()
- config.preview_hard_mins = form.preview_hard.value()
- config.preview_good_mins = form.preview_good.value()
+ config.preview_again_secs = form.preview_again.value()
+ config.preview_hard_secs = form.preview_hard.value()
+ config.preview_good_secs = form.preview_good.value()
return True
diff --git a/qt/aqt/forms/filtered_deck.ui b/qt/aqt/forms/filtered_deck.ui
index d92dc32d5..0a90c40e5 100644
--- a/qt/aqt/forms/filtered_deck.ui
+++ b/qt/aqt/forms/filtered_deck.ui
@@ -7,7 +7,7 @@
0
0
526
- 567
+ 587
@@ -209,10 +209,18 @@
-
-
+
+
+ 99999
+
+
-
-
+
+
+ 99999
+
+
-
@@ -222,19 +230,23 @@
-
-
+
+
+ 99999
+
+
-
- decks_minutes
+ scheduling_seconds
-
- decks_minutes
+ scheduling_seconds
@@ -248,11 +260,11 @@
-
- decks_minutes
+ scheduling_seconds
- -
+
-
decks_zero_minutes_hint
diff --git a/rslib/src/decks/filtered.rs b/rslib/src/decks/filtered.rs
index 9df710775..dcc8585bb 100644
--- a/rslib/src/decks/filtered.rs
+++ b/rslib/src/decks/filtered.rs
@@ -22,8 +22,8 @@ impl Deck {
limit: 20,
order: FilteredSearchOrder::Due as i32,
});
- filt.preview_again_mins = 1;
- filt.preview_hard_mins = 10;
+ filt.preview_again_secs = 60;
+ filt.preview_hard_secs = 600;
filt.reschedule = true;
Deck {
id: DeckId(0),
diff --git a/rslib/src/decks/schema11.rs b/rslib/src/decks/schema11.rs
index 2efe0cf03..e10820ca1 100644
--- a/rslib/src/decks/schema11.rs
+++ b/rslib/src/decks/schema11.rs
@@ -154,14 +154,17 @@ pub struct FilteredDeckSchema11 {
// old scheduler
#[serde(default, deserialize_with = "default_on_invalid")]
delays: Option>,
+ // old scheduler
+ #[serde(default)]
+ preview_delay: u32,
// new scheduler
- #[serde(default, rename = "previewDelay")]
- preview_again_mins: u32,
#[serde(default)]
- preview_hard_mins: u32,
+ preview_again_secs: u32,
#[serde(default)]
- preview_good_mins: u32,
+ preview_hard_secs: u32,
+ #[serde(default)]
+ preview_good_secs: u32,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Default, Clone)]
pub struct DeckTodaySchema11 {
@@ -332,9 +335,10 @@ impl From for FilteredDeck {
reschedule: deck.resched,
search_terms: deck.terms.into_iter().map(Into::into).collect(),
delays: deck.delays.unwrap_or_default(),
- preview_again_mins: deck.preview_again_mins,
- preview_hard_mins: deck.preview_hard_mins,
- preview_good_mins: deck.preview_good_mins,
+ preview_delay: deck.preview_delay,
+ preview_again_secs: deck.preview_again_secs,
+ preview_hard_secs: deck.preview_hard_secs,
+ preview_good_secs: deck.preview_good_secs,
}
}
}
@@ -373,9 +377,10 @@ impl From for DeckSchema11 {
} else {
Some(filt.delays.clone())
},
- preview_again_mins: filt.preview_again_mins,
- preview_hard_mins: filt.preview_hard_mins,
- preview_good_mins: filt.preview_good_mins,
+ preview_delay: filt.preview_delay,
+ preview_again_secs: filt.preview_again_secs,
+ preview_hard_secs: filt.preview_hard_secs,
+ preview_good_secs: filt.preview_good_secs,
common: deck.into(),
}),
}
diff --git a/rslib/src/scheduler/answering/current.rs b/rslib/src/scheduler/answering/current.rs
index 67ef476f1..7aab58db5 100644
--- a/rslib/src/scheduler/answering/current.rs
+++ b/rslib/src/scheduler/answering/current.rs
@@ -51,7 +51,7 @@ impl CardStateUpdater {
.into()
} else {
PreviewState {
- scheduled_secs: filtered.preview_again_mins * 60,
+ scheduled_secs: filtered.preview_again_secs,
finished: false,
}
.into()
diff --git a/rslib/src/scheduler/answering/mod.rs b/rslib/src/scheduler/answering/mod.rs
index bad9f3dca..45c805fd8 100644
--- a/rslib/src/scheduler/answering/mod.rs
+++ b/rslib/src/scheduler/answering/mod.rs
@@ -93,9 +93,9 @@ impl CardStateUpdater {
in_filtered_deck: self.deck.is_filtered(),
preview_delays: if let DeckKind::Filtered(deck) = &self.deck.kind {
PreviewDelays {
- again: deck.preview_again_mins,
- hard: deck.preview_hard_mins,
- good: deck.preview_good_mins,
+ again: deck.preview_again_secs,
+ hard: deck.preview_hard_secs,
+ good: deck.preview_good_secs,
}
} else {
Default::default()
diff --git a/rslib/src/scheduler/filtered/custom_study.rs b/rslib/src/scheduler/filtered/custom_study.rs
index fda0901a2..e8e085c49 100644
--- a/rslib/src/scheduler/filtered/custom_study.rs
+++ b/rslib/src/scheduler/filtered/custom_study.rs
@@ -208,9 +208,10 @@ fn custom_study_config(
order: order as i32,
}],
delays: vec![],
- preview_again_mins: 1,
- preview_hard_mins: 10,
- preview_good_mins: 0,
+ preview_delay: 10,
+ preview_again_secs: 60,
+ preview_hard_secs: 600,
+ preview_good_secs: 0,
}
}
diff --git a/rslib/src/scheduler/states/preview_filter.rs b/rslib/src/scheduler/states/preview_filter.rs
index a4f16632a..93965cf25 100644
--- a/rslib/src/scheduler/states/preview_filter.rs
+++ b/rslib/src/scheduler/states/preview_filter.rs
@@ -33,15 +33,15 @@ impl PreviewState {
}
}
-fn delay_or_return(minutes: u32) -> CardState {
- if minutes == 0 {
+fn delay_or_return(seconds: u32) -> CardState {
+ if seconds == 0 {
PreviewState {
scheduled_secs: 0,
finished: true,
}
} else {
PreviewState {
- scheduled_secs: minutes * 60,
+ scheduled_secs: seconds,
finished: false,
}
}