mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
Use seconds instead of minutes for preview delay
Since this is not compatible with older clients, preview_delay has been brought back so the configured value will still sync.
This commit is contained in:
parent
9b00425209
commit
4678b0cc4a
9 changed files with 60 additions and 40 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>526</width>
|
||||
<height>567</height>
|
||||
<height>587</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -209,10 +209,18 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QSpinBox" name="preview_again"/>
|
||||
<widget class="QSpinBox" name="preview_again">
|
||||
<property name="maximum">
|
||||
<number>99999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QSpinBox" name="preview_hard"/>
|
||||
<widget class="QSpinBox" name="preview_hard">
|
||||
<property name="maximum">
|
||||
<number>99999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="again_delay_label">
|
||||
|
@ -222,19 +230,23 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QSpinBox" name="preview_good"/>
|
||||
<widget class="QSpinBox" name="preview_good">
|
||||
<property name="maximum">
|
||||
<number>99999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>decks_minutes</string>
|
||||
<string>scheduling_seconds</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3" colspan="2">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>decks_minutes</string>
|
||||
<string>scheduling_seconds</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -248,7 +260,7 @@
|
|||
<item row="2" column="3">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>decks_minutes</string>
|
||||
<string>scheduling_seconds</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -154,14 +154,17 @@ pub struct FilteredDeckSchema11 {
|
|||
// old scheduler
|
||||
#[serde(default, deserialize_with = "default_on_invalid")]
|
||||
delays: Option<Vec<f32>>,
|
||||
// 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<FilteredDeckSchema11> 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<Deck> 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(),
|
||||
}),
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue