diff --git a/src/pages/repetitions.rs b/src/pages/repetitions.rs index 63d80d5..b4ac8a4 100644 --- a/src/pages/repetitions.rs +++ b/src/pages/repetitions.rs @@ -1,4 +1,3 @@ -use std::collections::BTreeMap; use crate::app::AppState; use crate::core::deck::DeckData; use crate::core::srs::{AppendMode, OrderMode}; @@ -15,7 +14,7 @@ use crate::push_error; use crate::push_error_task; use crate::styling::*; use chrono::{Days, Local, Utc}; -use hashbrown::{HashMap, HashSet}; +use hashbrown::HashSet; pub use iced::widget::button::{Catalog, Style}; use iced::widget::button::{Status, danger}; use iced::widget::tooltip::Position::Top; @@ -27,6 +26,7 @@ use iced::{Background, Border, Center, Color, Element, Fill, Length, Shadow, Tas use iced_core::Padding; use iced_core::border::Radius; use iced_core::svg::Handle; +use std::collections::BTreeMap; use std::ops::Deref; use std::sync::Arc; @@ -81,7 +81,14 @@ impl NavigatedPage for RepetitionsState { fn navigated(&mut self) { if let Some(index) = self.selected_deck_handle { let decks = self.state.decks.read(); - if let None = decks.get_static(index) { + if let Some(deck) = decks.get_static(index) { + { + let stored = self.decks.get_mut(&index).unwrap(); + stored.general_settings = deck; + } + drop(decks); + self.fill_deck_word_indices(); + } else { self.decks.remove(&index); drop(decks); self.clear_selection(); @@ -135,10 +142,8 @@ impl NavigatedPage for RepetitionsState { SelectSet(index) => { self.select_deck(index); let deck = self.selected_deck().unwrap(); - if !deck.indices_ready - && let Err(err) = self.fill_deck_word_indices() - { - return push_error_task!(err); + if !deck.indices_ready { + self.fill_deck_word_indices() } } Save => { @@ -251,7 +256,9 @@ impl RepetitionsState { } } - fn get_decks_from_state(state: &AppState) -> BTreeMap, DeckViewData> { + fn get_decks_from_state( + state: &AppState, + ) -> BTreeMap, DeckViewData> { state .decks .read() @@ -597,7 +604,7 @@ impl RepetitionsState { self.selected_deck_handle = None; } - fn fill_deck_word_indices(&mut self) -> MaybeError { + fn fill_deck_word_indices(&mut self) { let card_states = self.state.card_states.read(); let deck_id = self.selected_deck().unwrap().id; let added = card_states @@ -610,7 +617,6 @@ impl RepetitionsState { deck.existing_words_indices = added; deck.available_words_indices = total; self.decks.insert(self.selected_deck_handle.unwrap(), deck); - Ok(()) } } #[derive(Clone)]