Change time to int
This commit is contained in:
@@ -30,7 +30,7 @@ pub fn add_stat(stat: &mut CardStatistics, connection: &Connection) {
|
|||||||
&stat.word_id,
|
&stat.word_id,
|
||||||
&stat.set_id,
|
&stat.set_id,
|
||||||
&stat.score,
|
&stat.score,
|
||||||
&stat.last_open,
|
&stat.last_open.timestamp(),
|
||||||
),
|
),
|
||||||
|row| row.get(0)
|
|row| row.get(0)
|
||||||
)
|
)
|
||||||
@@ -45,7 +45,7 @@ pub fn update_stat_score(stat: &CardStatistics, connection: &Connection){
|
|||||||
"UPDATE card_stats SET score = ?1, last_opened = ?2 WHERE id = ?3",
|
"UPDATE card_stats SET score = ?1, last_opened = ?2 WHERE id = ?3",
|
||||||
(
|
(
|
||||||
&stat.score,
|
&stat.score,
|
||||||
&stat.last_open,
|
&stat.last_open.timestamp(),
|
||||||
&stat.id
|
&stat.id
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
use crate::{AppState, NavigatedPage, Page, RootMessage};
|
||||||
|
use iced::widget::*;
|
||||||
|
use iced::{Element, Fill, Left, Task};
|
||||||
|
use std::sync::{Arc, Mutex};
|
||||||
|
use HistoryMessage::Back;
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub struct HistoryState {
|
||||||
|
set_id: u32,
|
||||||
|
list: Vec<HistoryItem>
|
||||||
|
}
|
||||||
|
|
||||||
|
impl NavigatedPage<HistoryMessage> for HistoryState {
|
||||||
|
fn navigate(&self, message: &HistoryMessage) -> Option<Page> {
|
||||||
|
match message {
|
||||||
|
Back => Some(Page::PreviousPage),
|
||||||
|
_ => None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl HistoryState {
|
||||||
|
pub fn new(id: u32, state: Arc<Mutex<AppState>>) -> Self {
|
||||||
|
Self { set_id: id, list: vec![] }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn update(&mut self, message: HistoryMessage) -> Task<RootMessage> {
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn view(&self) -> Element<'_, HistoryMessage> {
|
||||||
|
container(
|
||||||
|
iced::widget::column![
|
||||||
|
button("Назад").on_press(HistoryMessage::Back),
|
||||||
|
// column![
|
||||||
|
//
|
||||||
|
// ]
|
||||||
|
// .height(Fill)
|
||||||
|
// .width(Fill)
|
||||||
|
]
|
||||||
|
.align_x(Left)
|
||||||
|
.width(Fill),
|
||||||
|
)
|
||||||
|
.center_x(Fill)
|
||||||
|
.padding(10)
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub enum HistoryMessage {
|
||||||
|
Back,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub struct HistoryItem{
|
||||||
|
|
||||||
|
}
|
||||||
+8
-6
@@ -11,6 +11,7 @@ mod selector;
|
|||||||
mod sync;
|
mod sync;
|
||||||
mod word;
|
mod word;
|
||||||
mod writing;
|
mod writing;
|
||||||
|
mod history;
|
||||||
|
|
||||||
use crate::data_provider::card_sets::load_sets;
|
use crate::data_provider::card_sets::load_sets;
|
||||||
use crate::data_provider::settings::get_setting;
|
use crate::data_provider::settings::get_setting;
|
||||||
@@ -26,18 +27,16 @@ use crate::selector::*;
|
|||||||
use crate::sync::{SyncMessage, SyncState};
|
use crate::sync::{SyncMessage, SyncState};
|
||||||
use crate::word::{WordMessage, WordState};
|
use crate::word::{WordMessage, WordState};
|
||||||
use crate::writing::{WritingMessage, WritingState};
|
use crate::writing::{WritingMessage, WritingState};
|
||||||
use crate::Page::{
|
use crate::Page::{Dictionary, DictionaryQuiz, History, Quiz, Randomizer, Repetition, Repetitions, Selector, Sync, Word, Writing};
|
||||||
Dictionary, DictionaryQuiz, Quiz, Randomizer, Repetition, Repetitions, Selector, Sync, Word,
|
|
||||||
Writing,
|
|
||||||
};
|
|
||||||
use crate::RootMessage::Keyboard;
|
use crate::RootMessage::Keyboard;
|
||||||
use iced::keyboard::Event;
|
use iced::keyboard::Event;
|
||||||
use iced::widget::text;
|
use iced::widget::text;
|
||||||
use iced::{keyboard, Element, Subscription};
|
use iced::{keyboard, Element, Program, Subscription};
|
||||||
use iced::{Font, Task};
|
use iced::{Font, Task};
|
||||||
use rusqlite::Connection;
|
use rusqlite::Connection;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
use crate::data_provider::sqlite::create_db;
|
use crate::data_provider::sqlite::create_db;
|
||||||
|
use crate::history::{HistoryMessage, HistoryState};
|
||||||
|
|
||||||
const DEFAULT_SPACING: f32 = 10.0;
|
const DEFAULT_SPACING: f32 = 10.0;
|
||||||
|
|
||||||
@@ -66,6 +65,7 @@ pub enum RootMessage {
|
|||||||
Repetition(RepetitionMessage),
|
Repetition(RepetitionMessage),
|
||||||
Word(WordMessage),
|
Word(WordMessage),
|
||||||
Sync(SyncMessage),
|
Sync(SyncMessage),
|
||||||
|
History(HistoryMessage),
|
||||||
Keyboard(Event),
|
Keyboard(Event),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,6 +80,7 @@ pub enum Page {
|
|||||||
Repetition(RepetitionState),
|
Repetition(RepetitionState),
|
||||||
Word(WordState),
|
Word(WordState),
|
||||||
Sync(SyncState),
|
Sync(SyncState),
|
||||||
|
History(HistoryState),
|
||||||
PreviousPage,
|
PreviousPage,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,7 +147,8 @@ impl ScreenState {
|
|||||||
Repetitions,
|
Repetitions,
|
||||||
Repetition,
|
Repetition,
|
||||||
Word,
|
Word,
|
||||||
Sync
|
Sync,
|
||||||
|
History
|
||||||
);
|
);
|
||||||
Task::none()
|
Task::none()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user