Migrate to parking_lot
This commit is contained in:
+11
-10
@@ -23,7 +23,8 @@ use iced_core::Padding;
|
||||
use iced_core::border::Radius;
|
||||
use iced_core::svg::Handle;
|
||||
use std::ops::Deref;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::sync::Arc;
|
||||
use parking_lot::Mutex;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct RepetitionsState {
|
||||
@@ -47,7 +48,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
||||
|
||||
let selected_set = self.selected_deck_mut().unwrap();
|
||||
if selected_set.append_mode == AppendMode::Full {
|
||||
Self::append_all_words(&mut clone.lock().unwrap(), selected_set);
|
||||
Self::append_all_words(&mut clone.lock(), selected_set);
|
||||
selected_set.existing_words_indices = selected_set.available_words_indices.clone();
|
||||
} else {
|
||||
if selected_set
|
||||
@@ -80,7 +81,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
||||
}
|
||||
fn navigated(&mut self) {
|
||||
let index = self.selected_deck_index.unwrap();
|
||||
let state = self.state.lock().unwrap();
|
||||
let state = self.state.lock();
|
||||
if let Some(global_deck) = state.decks.get(index) {
|
||||
if global_deck.id != self.selected_deck().unwrap().id {
|
||||
drop(state);
|
||||
@@ -116,7 +117,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
||||
self.clear_selection();
|
||||
let deck = self.decks.remove(index);
|
||||
if deck.id.is_valid() {
|
||||
let mut state = self.state.lock().unwrap();
|
||||
let mut state = self.state.lock();
|
||||
state.decks.remove(index);
|
||||
self.decks = self
|
||||
.decks
|
||||
@@ -137,7 +138,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().unwrap();
|
||||
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])
|
||||
@@ -151,7 +152,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
||||
}
|
||||
Save => {
|
||||
let mut deck = self.selected_deck().unwrap().clone();
|
||||
let mut state = self.state.lock().unwrap();
|
||||
let mut state = self.state.lock();
|
||||
{
|
||||
update_deck(&mut deck.general_settings, &state.connection);
|
||||
if let Some(index) = deck.index {
|
||||
@@ -176,7 +177,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
||||
deck.general_settings.filter = value;
|
||||
}
|
||||
TryFilter => {
|
||||
let state = self.state.lock().unwrap();
|
||||
let state = self.state.lock();
|
||||
let deck = self.selected_deck().unwrap();
|
||||
let count = deck.get_word_list(&state).len();
|
||||
drop(state);
|
||||
@@ -220,7 +221,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
||||
}
|
||||
|
||||
let deck = self.selected_deck().unwrap();
|
||||
let mut state = self.state.lock().unwrap();
|
||||
let mut state = self.state.lock();
|
||||
Self::append_words(&mut state, &deck.general_settings, adding.into_iter());
|
||||
}
|
||||
}
|
||||
@@ -253,7 +254,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
|
||||
|
||||
impl RepetitionsState {
|
||||
pub(crate) fn new(state: Arc<Mutex<AppState>>) -> RepetitionsState {
|
||||
let state_ = state.lock().unwrap();
|
||||
let state_ = state.lock();
|
||||
let mut map = HashMap::with_capacity(state_.dictionary.len());
|
||||
|
||||
state_
|
||||
@@ -408,7 +409,7 @@ impl RepetitionsState {
|
||||
fn activity_bar(&self, deck: &DeckSettings) -> Element<'_, RepetitionsMessage> {
|
||||
const MAX_DAY_COUNT: f32 = 128.0;
|
||||
|
||||
let state = self.state.lock().unwrap();
|
||||
let state = self.state.lock();
|
||||
let history = state.activity.get(&deck.id);
|
||||
let mut counts: Vec<u32> = vec![0; 30 * 7];
|
||||
let now = Local::now().date_naive();
|
||||
|
||||
Reference in New Issue
Block a user