Repo integration #15
+16
-10
@@ -1,4 +1,3 @@
|
|||||||
use std::collections::BTreeMap;
|
|
||||||
use crate::app::AppState;
|
use crate::app::AppState;
|
||||||
use crate::core::deck::DeckData;
|
use crate::core::deck::DeckData;
|
||||||
use crate::core::srs::{AppendMode, OrderMode};
|
use crate::core::srs::{AppendMode, OrderMode};
|
||||||
@@ -15,7 +14,7 @@ use crate::push_error;
|
|||||||
use crate::push_error_task;
|
use crate::push_error_task;
|
||||||
use crate::styling::*;
|
use crate::styling::*;
|
||||||
use chrono::{Days, Local, Utc};
|
use chrono::{Days, Local, Utc};
|
||||||
use hashbrown::{HashMap, HashSet};
|
use hashbrown::HashSet;
|
||||||
pub use iced::widget::button::{Catalog, Style};
|
pub use iced::widget::button::{Catalog, Style};
|
||||||
use iced::widget::button::{Status, danger};
|
use iced::widget::button::{Status, danger};
|
||||||
use iced::widget::tooltip::Position::Top;
|
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::Padding;
|
||||||
use iced_core::border::Radius;
|
use iced_core::border::Radius;
|
||||||
use iced_core::svg::Handle;
|
use iced_core::svg::Handle;
|
||||||
|
use std::collections::BTreeMap;
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
@@ -81,7 +81,14 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
|||||||
fn navigated(&mut self) {
|
fn navigated(&mut self) {
|
||||||
if let Some(index) = self.selected_deck_handle {
|
if let Some(index) = self.selected_deck_handle {
|
||||||
let decks = self.state.decks.read();
|
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);
|
self.decks.remove(&index);
|
||||||
drop(decks);
|
drop(decks);
|
||||||
self.clear_selection();
|
self.clear_selection();
|
||||||
@@ -135,10 +142,8 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
|||||||
SelectSet(index) => {
|
SelectSet(index) => {
|
||||||
self.select_deck(index);
|
self.select_deck(index);
|
||||||
let deck = self.selected_deck().unwrap();
|
let deck = self.selected_deck().unwrap();
|
||||||
if !deck.indices_ready
|
if !deck.indices_ready {
|
||||||
&& let Err(err) = self.fill_deck_word_indices()
|
self.fill_deck_word_indices()
|
||||||
{
|
|
||||||
return push_error_task!(err);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Save => {
|
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
|
state
|
||||||
.decks
|
.decks
|
||||||
.read()
|
.read()
|
||||||
@@ -597,7 +604,7 @@ impl RepetitionsState {
|
|||||||
self.selected_deck_handle = None;
|
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 card_states = self.state.card_states.read();
|
||||||
let deck_id = self.selected_deck().unwrap().id;
|
let deck_id = self.selected_deck().unwrap().id;
|
||||||
let added = card_states
|
let added = card_states
|
||||||
@@ -610,7 +617,6 @@ impl RepetitionsState {
|
|||||||
deck.existing_words_indices = added;
|
deck.existing_words_indices = added;
|
||||||
deck.available_words_indices = total;
|
deck.available_words_indices = total;
|
||||||
self.decks.insert(self.selected_deck_handle.unwrap(), deck);
|
self.decks.insert(self.selected_deck_handle.unwrap(), deck);
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
|
|||||||
Reference in new issue
Block a user