Before font remake
This commit is contained in:
@@ -308,6 +308,7 @@ impl DictionaryState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn words_list(&self) -> iced::Element<'_, DictionaryMessage> {
|
fn words_list(&self) -> iced::Element<'_, DictionaryMessage> {
|
||||||
|
let time = Instant::now();
|
||||||
let mut col = Column::new().width(Length::Fill);
|
let mut col = Column::new().width(Length::Fill);
|
||||||
|
|
||||||
let mut range = (0..self.include_map.len()).collect::<Vec<_>>();
|
let mut range = (0..self.include_map.len()).collect::<Vec<_>>();
|
||||||
@@ -389,6 +390,7 @@ impl DictionaryState {
|
|||||||
col = col.push(line);
|
col = col.push(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
println!("Words rendering time: {:?}", time.elapsed());
|
||||||
scrollable(col).height(Length::Fill).into()
|
scrollable(col).height(Length::Fill).into()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+13
-3
@@ -31,7 +31,7 @@ use crate::Page::{Dictionary, DictionaryQuiz, History, Quiz, Randomizer, Repetit
|
|||||||
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, Program, Subscription};
|
use iced::{keyboard, Element, Program, Subscription, Theme};
|
||||||
use iced::{Font, Task};
|
use iced::{Font, Task};
|
||||||
use rusqlite::Connection;
|
use rusqlite::Connection;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
@@ -40,12 +40,22 @@ use crate::history::{HistoryMessage, HistoryState};
|
|||||||
|
|
||||||
const DEFAULT_SPACING: f32 = 10.0;
|
const DEFAULT_SPACING: f32 = 10.0;
|
||||||
|
|
||||||
|
const USER_FONT: Font = Font::with_name("Noto Sans JP");
|
||||||
|
|
||||||
fn main() -> iced::Result {
|
fn main() -> iced::Result {
|
||||||
iced::application(ScreenState::boot, ScreenState::update, ScreenState::view)
|
iced::application(ScreenState::boot, ScreenState::update, ScreenState::view)
|
||||||
.subscription(subscription)
|
.subscription(subscription)
|
||||||
.title("Kana learn app")
|
.title("Kana learn app")
|
||||||
|
.settings(iced::Settings{
|
||||||
|
default_text_size: iced::Pixels(16.0),
|
||||||
|
..iced::Settings::default()
|
||||||
|
})
|
||||||
|
.font(include_bytes!("../ibmplex.ttf"))
|
||||||
.font(include_bytes!("../noto.ttf"))
|
.font(include_bytes!("../noto.ttf"))
|
||||||
.default_font(Font::with_name("Noto Sans JP"))
|
.default_font(USER_FONT)
|
||||||
|
.scale_factor(|x| 1.5)
|
||||||
|
|
||||||
|
.theme(Theme::GruvboxDark)
|
||||||
.run()
|
.run()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,7 +134,7 @@ impl Default for ScreenState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn fill_state(mut state: &mut AppState) {
|
fn fill_state(state: &mut AppState) {
|
||||||
let list = load_words(&state.connection);
|
let list = load_words(&state.connection);
|
||||||
let sets = load_sets(&state.connection);
|
let sets = load_sets(&state.connection);
|
||||||
let groups = load_word_groups(&state.connection);
|
let groups = load_word_groups(&state.connection);
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
use crate::lang::KanaSet;
|
use crate::lang::KanaSet;
|
||||||
use crate::Page::PreviousPage;
|
use crate::Page::PreviousPage;
|
||||||
use crate::{NavigatedPage, Page, RootMessage, DEFAULT_SPACING};
|
use crate::{NavigatedPage, Page, RootMessage, DEFAULT_SPACING, USER_FONT};
|
||||||
use iced::widget::*;
|
use iced::widget::*;
|
||||||
use iced::{alignment, Element, Fill, Task};
|
use iced::{alignment, Element, Fill, Task};
|
||||||
use rand::seq::SliceRandom;
|
use rand::seq::SliceRandom;
|
||||||
@@ -101,7 +101,7 @@ impl QuizState {
|
|||||||
container(
|
container(
|
||||||
iced::widget::column![
|
iced::widget::column![
|
||||||
row![
|
row![
|
||||||
text!("{}", self.kana.to_uppercase()).size(54),
|
text!("{}", self.kana.to_uppercase()).size(54).font(USER_FONT),
|
||||||
text!(
|
text!(
|
||||||
"{}",
|
"{}",
|
||||||
if self.is_help {
|
if self.is_help {
|
||||||
|
|||||||
+5
-5
@@ -82,11 +82,11 @@ impl SelectorState {
|
|||||||
container(
|
container(
|
||||||
iced::widget::column![
|
iced::widget::column![
|
||||||
row![
|
row![
|
||||||
button("Переключить азбуки").on_press(SelectorMessage::Change),
|
button("あ ↔ ア").on_press(SelectorMessage::Change),
|
||||||
button("Словарь").on_press(SelectorMessage::ToDictionary),
|
button("Словарь").on_press(SelectorMessage::ToDictionary).style(button::text),
|
||||||
button("Рандомайзер").on_press(SelectorMessage::ToRandomize),
|
button("Рандомайзер").on_press(SelectorMessage::ToRandomize).style(button::text),
|
||||||
button("Повторение").on_press(SelectorMessage::ToRepetitions),
|
button("Повторение").on_press(SelectorMessage::ToRepetitions).style(button::text),
|
||||||
button("Синхронизация").on_press(SelectorMessage::ToSync)
|
button("Синхронизация").on_press(SelectorMessage::ToSync).style(button::text)
|
||||||
]
|
]
|
||||||
.spacing(DEFAULT_SPACING),
|
.spacing(DEFAULT_SPACING),
|
||||||
self.rows_selector(),
|
self.rows_selector(),
|
||||||
|
|||||||
+2
-2
@@ -185,7 +185,7 @@ impl SyncState {
|
|||||||
)
|
)
|
||||||
|
|
||||||
.style(rounded_box),
|
.style(rounded_box),
|
||||||
button("Скопировать в буффер обмена")
|
button("Скопировать в буфер обмена")
|
||||||
.on_press(SyncMessage::CopyKey)
|
.on_press(SyncMessage::CopyKey)
|
||||||
.width(Fill),
|
.width(Fill),
|
||||||
row![
|
row![
|
||||||
@@ -202,7 +202,7 @@ impl SyncState {
|
|||||||
} else {
|
} else {
|
||||||
column![
|
column![
|
||||||
button("Создать сохранение").on_press(SyncMessage::InitSync),
|
button("Создать сохранение").on_press(SyncMessage::InitSync),
|
||||||
button("Вставить ключ из буффера").on_press(SyncMessage::GetKey),
|
button("Вставить ключ из буфера").on_press(SyncMessage::GetKey),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user