Before font remake

This commit is contained in:
2026-07-31 23:03:40 +03:00
parent 432c890166
commit b883600abf
5 changed files with 24 additions and 12 deletions
+2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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),
] ]
} }
} }