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;
|
repeated SearchTerm search_terms = 2;
|
||||||
// v1 scheduler only
|
// v1 scheduler only
|
||||||
repeated float delays = 3;
|
repeated float delays = 3;
|
||||||
// v2 scheduler only
|
// v2 and old v3 scheduler only
|
||||||
uint32 preview_again_mins = 4;
|
uint32 preview_delay = 4;
|
||||||
// recent v3 scheduler only; 0 means card will be returned
|
// 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
|
// 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
|
// a container to store the deck specifics in the DB
|
||||||
// as a tagged enum
|
// as a tagged enum
|
||||||
|
|
|
@ -142,9 +142,9 @@ class FilteredDeckConfigDialog(QDialog):
|
||||||
form.order.setCurrentIndex(term1.order)
|
form.order.setCurrentIndex(term1.order)
|
||||||
form.limit.setValue(term1.limit)
|
form.limit.setValue(term1.limit)
|
||||||
|
|
||||||
form.preview_again.setValue(config.preview_again_mins)
|
form.preview_again.setValue(config.preview_again_secs)
|
||||||
form.preview_hard.setValue(config.preview_hard_mins)
|
form.preview_hard.setValue(config.preview_hard_secs)
|
||||||
form.preview_good.setValue(config.preview_good_mins)
|
form.preview_good.setValue(config.preview_good_secs)
|
||||||
|
|
||||||
if len(config.search_terms) > 1:
|
if len(config.search_terms) > 1:
|
||||||
term2: FilteredDeckConfig.SearchTerm = config.search_terms[1]
|
term2: FilteredDeckConfig.SearchTerm = config.search_terms[1]
|
||||||
|
@ -277,9 +277,9 @@ class FilteredDeckConfigDialog(QDialog):
|
||||||
|
|
||||||
del config.search_terms[:]
|
del config.search_terms[:]
|
||||||
config.search_terms.extend(terms)
|
config.search_terms.extend(terms)
|
||||||
config.preview_again_mins = form.preview_again.value()
|
config.preview_again_secs = form.preview_again.value()
|
||||||
config.preview_hard_mins = form.preview_hard.value()
|
config.preview_hard_secs = form.preview_hard.value()
|
||||||
config.preview_good_mins = form.preview_good.value()
|
config.preview_good_secs = form.preview_good.value()
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>526</width>
|
<width>526</width>
|
||||||
<height>567</height>
|
<height>587</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -209,10 +209,18 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="2">
|
<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>
|
||||||
<item row="2" column="2">
|
<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>
|
||||||
<item row="0" column="0" colspan="2">
|
<item row="0" column="0" colspan="2">
|
||||||
<widget class="QLabel" name="again_delay_label">
|
<widget class="QLabel" name="again_delay_label">
|
||||||
|
@ -222,19 +230,23 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="2">
|
<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>
|
||||||
<item row="0" column="3">
|
<item row="0" column="3">
|
||||||
<widget class="QLabel" name="label_13">
|
<widget class="QLabel" name="label_13">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>decks_minutes</string>
|
<string>scheduling_seconds</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="3" colspan="2">
|
<item row="3" column="3" colspan="2">
|
||||||
<widget class="QLabel" name="label_9">
|
<widget class="QLabel" name="label_9">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>decks_minutes</string>
|
<string>scheduling_seconds</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -248,11 +260,11 @@
|
||||||
<item row="2" column="3">
|
<item row="2" column="3">
|
||||||
<widget class="QLabel" name="label_8">
|
<widget class="QLabel" name="label_8">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>decks_minutes</string>
|
<string>scheduling_seconds</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0" colspan = "2">
|
<item row="4" column="0" colspan="2">
|
||||||
<widget class="QLabel" name="label_12">
|
<widget class="QLabel" name="label_12">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>decks_zero_minutes_hint</string>
|
<string>decks_zero_minutes_hint</string>
|
||||||
|
|
|
@ -22,8 +22,8 @@ impl Deck {
|
||||||
limit: 20,
|
limit: 20,
|
||||||
order: FilteredSearchOrder::Due as i32,
|
order: FilteredSearchOrder::Due as i32,
|
||||||
});
|
});
|
||||||
filt.preview_again_mins = 1;
|
filt.preview_again_secs = 60;
|
||||||
filt.preview_hard_mins = 10;
|
filt.preview_hard_secs = 600;
|
||||||
filt.reschedule = true;
|
filt.reschedule = true;
|
||||||
Deck {
|
Deck {
|
||||||
id: DeckId(0),
|
id: DeckId(0),
|
||||||
|
|
|
@ -154,14 +154,17 @@ pub struct FilteredDeckSchema11 {
|
||||||
// old scheduler
|
// old scheduler
|
||||||
#[serde(default, deserialize_with = "default_on_invalid")]
|
#[serde(default, deserialize_with = "default_on_invalid")]
|
||||||
delays: Option<Vec<f32>>,
|
delays: Option<Vec<f32>>,
|
||||||
|
// old scheduler
|
||||||
|
#[serde(default)]
|
||||||
|
preview_delay: u32,
|
||||||
|
|
||||||
// new scheduler
|
// new scheduler
|
||||||
#[serde(default, rename = "previewDelay")]
|
|
||||||
preview_again_mins: u32,
|
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
preview_hard_mins: u32,
|
preview_again_secs: u32,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
preview_good_mins: u32,
|
preview_hard_secs: u32,
|
||||||
|
#[serde(default)]
|
||||||
|
preview_good_secs: u32,
|
||||||
}
|
}
|
||||||
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Default, Clone)]
|
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Default, Clone)]
|
||||||
pub struct DeckTodaySchema11 {
|
pub struct DeckTodaySchema11 {
|
||||||
|
@ -332,9 +335,10 @@ impl From<FilteredDeckSchema11> for FilteredDeck {
|
||||||
reschedule: deck.resched,
|
reschedule: deck.resched,
|
||||||
search_terms: deck.terms.into_iter().map(Into::into).collect(),
|
search_terms: deck.terms.into_iter().map(Into::into).collect(),
|
||||||
delays: deck.delays.unwrap_or_default(),
|
delays: deck.delays.unwrap_or_default(),
|
||||||
preview_again_mins: deck.preview_again_mins,
|
preview_delay: deck.preview_delay,
|
||||||
preview_hard_mins: deck.preview_hard_mins,
|
preview_again_secs: deck.preview_again_secs,
|
||||||
preview_good_mins: deck.preview_good_mins,
|
preview_hard_secs: deck.preview_hard_secs,
|
||||||
|
preview_good_secs: deck.preview_good_secs,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -373,9 +377,10 @@ impl From<Deck> for DeckSchema11 {
|
||||||
} else {
|
} else {
|
||||||
Some(filt.delays.clone())
|
Some(filt.delays.clone())
|
||||||
},
|
},
|
||||||
preview_again_mins: filt.preview_again_mins,
|
preview_delay: filt.preview_delay,
|
||||||
preview_hard_mins: filt.preview_hard_mins,
|
preview_again_secs: filt.preview_again_secs,
|
||||||
preview_good_mins: filt.preview_good_mins,
|
preview_hard_secs: filt.preview_hard_secs,
|
||||||
|
preview_good_secs: filt.preview_good_secs,
|
||||||
common: deck.into(),
|
common: deck.into(),
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ impl CardStateUpdater {
|
||||||
.into()
|
.into()
|
||||||
} else {
|
} else {
|
||||||
PreviewState {
|
PreviewState {
|
||||||
scheduled_secs: filtered.preview_again_mins * 60,
|
scheduled_secs: filtered.preview_again_secs,
|
||||||
finished: false,
|
finished: false,
|
||||||
}
|
}
|
||||||
.into()
|
.into()
|
||||||
|
|
|
@ -93,9 +93,9 @@ impl CardStateUpdater {
|
||||||
in_filtered_deck: self.deck.is_filtered(),
|
in_filtered_deck: self.deck.is_filtered(),
|
||||||
preview_delays: if let DeckKind::Filtered(deck) = &self.deck.kind {
|
preview_delays: if let DeckKind::Filtered(deck) = &self.deck.kind {
|
||||||
PreviewDelays {
|
PreviewDelays {
|
||||||
again: deck.preview_again_mins,
|
again: deck.preview_again_secs,
|
||||||
hard: deck.preview_hard_mins,
|
hard: deck.preview_hard_secs,
|
||||||
good: deck.preview_good_mins,
|
good: deck.preview_good_secs,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Default::default()
|
Default::default()
|
||||||
|
|
|
@ -208,9 +208,10 @@ fn custom_study_config(
|
||||||
order: order as i32,
|
order: order as i32,
|
||||||
}],
|
}],
|
||||||
delays: vec![],
|
delays: vec![],
|
||||||
preview_again_mins: 1,
|
preview_delay: 10,
|
||||||
preview_hard_mins: 10,
|
preview_again_secs: 60,
|
||||||
preview_good_mins: 0,
|
preview_hard_secs: 600,
|
||||||
|
preview_good_secs: 0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,15 +33,15 @@ impl PreviewState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn delay_or_return(minutes: u32) -> CardState {
|
fn delay_or_return(seconds: u32) -> CardState {
|
||||||
if minutes == 0 {
|
if seconds == 0 {
|
||||||
PreviewState {
|
PreviewState {
|
||||||
scheduled_secs: 0,
|
scheduled_secs: 0,
|
||||||
finished: true,
|
finished: true,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
PreviewState {
|
PreviewState {
|
||||||
scheduled_secs: minutes * 60,
|
scheduled_secs: seconds,
|
||||||
finished: false,
|
finished: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue