Adding new screenshots.
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 20 KiB |
BIN
Screenshot from 2024-11-27 17-27-10.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
Screenshot from 2024-11-27 17-28-21.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
Screenshot from 2024-11-27 17-28-35.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
Screenshot from 2024-11-27 17-31-28.png
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
Screenshot from 2024-11-27 17-31-46.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
Screenshot from 2024-11-27 17-31-53.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
Screenshot from 2024-11-27 17-32-18.png
Normal file
After Width: | Height: | Size: 34 KiB |
@ -71,12 +71,15 @@ sub _migrate_kanji($self) {
|
||||
pipe $read, $write;
|
||||
my $parent_pid = $$;
|
||||
my $pid = fork;
|
||||
|
||||
if ( !$pid ) {
|
||||
$self->_kanji->populate_kanji( $parent_pid, $write );
|
||||
exit;
|
||||
}
|
||||
my $n_characters;
|
||||
Glib::Timeout->add(1_000, sub {
|
||||
Glib::Timeout->add(
|
||||
1_000,
|
||||
sub {
|
||||
$n_characters = <$read>;
|
||||
chomp $n_characters;
|
||||
say 'Copying ' . $n_characters . ' kanji';
|
||||
@ -90,7 +93,8 @@ sub _migrate_kanji($self) {
|
||||
$last_number = $line;
|
||||
}
|
||||
if ($last_number) {
|
||||
$progress_bar->set_fraction($last_number / $n_characters);
|
||||
$progress_bar->set_fraction(
|
||||
$last_number / $n_characters );
|
||||
}
|
||||
if ( 0 == waitpid $pid, WNOHANG ) {
|
||||
return 1;
|
||||
@ -100,7 +104,8 @@ sub _migrate_kanji($self) {
|
||||
}
|
||||
);
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
sub _select_kanji($self) {
|
||||
@ -117,20 +122,31 @@ sub _select_kanji($self) {
|
||||
|
||||
my $discord = Gtk::Button->new_with_label('Report bugs and share feedback');
|
||||
|
||||
$discord->signal_connect(clicked => sub {
|
||||
$discord->signal_connect(
|
||||
clicked => sub {
|
||||
$self->app->launch_discord;
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
$discord->add_css_class('destructive-action');
|
||||
$discord->set_halign('center');
|
||||
|
||||
my $label = Gtk::Label->new(
|
||||
'This feature is in BETA and will become for paid users when stabilized.
|
||||
Your kanji progress until stabilized may be lost between updates because
|
||||
the processing of Kanji may vary wildly.'
|
||||
);
|
||||
|
||||
$box->append(Gtk::Label->new('This feature is in BETA and will become for paid users when stabilized, your kanji progress until stabilized may be lost between updates because the processing of Kanji may vary wildly.'));
|
||||
$label->set_margin_top(20);
|
||||
$box->append($label);
|
||||
|
||||
my $button = Gtk::Button->new_with_label("Study everything ordered by grade");
|
||||
$button->signal_connect(clicked => sub {
|
||||
my $button =
|
||||
Gtk::Button->new_with_label("Study everything ordered by grade");
|
||||
$button->signal_connect(
|
||||
clicked => sub {
|
||||
JapaChar::View::KanjiLesson->new( app => $self->app )->run;
|
||||
});
|
||||
}
|
||||
);
|
||||
$button->set_margin_top(20);
|
||||
$button->add_css_class('accent');
|
||||
$button->set_halign('center');
|
||||
@ -138,17 +154,27 @@ sub _select_kanji($self) {
|
||||
$box->append($button);
|
||||
for my $grade (@$grades) {
|
||||
my $button = Gtk::Button->new_with_label("Study kanji grade $grade");
|
||||
$button->signal_connect(clicked => sub {
|
||||
JapaChar::View::KanjiLesson->new(app => $self->app, type => $grade)->run;
|
||||
});
|
||||
$button->signal_connect(
|
||||
clicked => sub {
|
||||
JapaChar::View::KanjiLesson->new(
|
||||
app => $self->app,
|
||||
type => $grade
|
||||
)->run;
|
||||
}
|
||||
);
|
||||
$button->set_halign('center');
|
||||
$button->set_property( 'width-request', 330 );
|
||||
$box->append($button);
|
||||
}
|
||||
$button = Gtk::Button->new_with_label("Study unclassified kanjis");
|
||||
$button->signal_connect(clicked => sub {
|
||||
JapaChar::View::KanjiLesson->new(app => $self->app, type => undef)->run;
|
||||
});
|
||||
$button->signal_connect(
|
||||
clicked => sub {
|
||||
JapaChar::View::KanjiLesson->new(
|
||||
app => $self->app,
|
||||
type => undef
|
||||
)->run;
|
||||
}
|
||||
);
|
||||
$button->set_property( 'width-request', 330 );
|
||||
$button->set_halign('center');
|
||||
$box->append($button);
|
||||
|