Repo integration #15
+16
-10
@@ -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<RepetitionsMessage> 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<RepetitionsMessage> 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<EntityHandle<DeckSettings>, DeckViewData> {
|
||||
fn get_decks_from_state(
|
||||
state: &AppState,
|
||||
) -> BTreeMap<EntityHandle<DeckSettings>, 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)]
|
||||
|
||||
Reference in new issue
Block a user