Fix deck data collecting
This commit is contained in:
1 parent
c5e91b844c
commit
3f43676580
4 files changed
+63
-22
No files matched your search
+20
-10
@@ -87,6 +87,10 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
||||
drop(state);
|
||||
self.decks.remove(index);
|
||||
self.clear_selection();
|
||||
} else {
|
||||
self.decks[self.selected_deck_index.unwrap()].general_settings = state.decks[index].clone();
|
||||
drop(state);
|
||||
self.fill_deck_word_indices();
|
||||
}
|
||||
} else {
|
||||
drop(state);
|
||||
@@ -138,16 +142,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
||||
self.select_deck(index);
|
||||
let deck = self.selected_deck().unwrap();
|
||||
if deck.existing_words_indices.is_none() {
|
||||
let state = self.state.lock();
|
||||
let added: Vec<_> = load_stats_of_deck(deck, &state.connection)
|
||||
.iter()
|
||||
.map(|c| self.word_id_index_map[&c.word_id])
|
||||
.collect();
|
||||
let total = deck.get_word_list(&state);
|
||||
drop(state);
|
||||
let deck = self.selected_deck_mut().unwrap();
|
||||
deck.existing_words_indices = Some(added);
|
||||
deck.available_words_indices = Some(total);
|
||||
self.fill_deck_word_indices();
|
||||
}
|
||||
}
|
||||
Save => {
|
||||
@@ -618,6 +613,20 @@ impl RepetitionsState {
|
||||
fn clear_selection(&mut self) {
|
||||
self.selected_deck_index = None;
|
||||
}
|
||||
|
||||
fn fill_deck_word_indices(&mut self) {
|
||||
let state = &self.state.lock();
|
||||
let mut deck = self.selected_deck().unwrap().clone();
|
||||
let added: Vec<_> = load_stats_of_deck(&deck, &state.connection)
|
||||
.iter()
|
||||
.map(|c| self.word_id_index_map[&c.word_id])
|
||||
.collect();
|
||||
let total = deck.get_word_list(state);
|
||||
deck.existing_words_indices = Some(added);
|
||||
deck.available_words_indices = Some(total);
|
||||
self.decks[self.selected_deck_index.unwrap()] = deck;
|
||||
|
||||
}
|
||||
}
|
||||
#[derive(Clone)]
|
||||
pub enum RepetitionsMessage {
|
||||
@@ -648,6 +657,7 @@ struct DeckViewData {
|
||||
append_mode: AppendMode,
|
||||
index: Option<usize>,
|
||||
}
|
||||
|
||||
impl Deref for DeckViewData {
|
||||
type Target = DeckSettings;
|
||||
|
||||
|
||||
Reference in new issue
Block a user