commit 06cb6bb4bc4937f472ecf4ae0702b464c92b6588
parent 4eceb1ac312221c71a1d56c087913f1b4aa20025
Author: lumidify <nobody@lumidify.org>
Date: Thu, 9 Apr 2020 09:24:41 +0200
Add "View (no view increase)" button
Diffstat:
3 files changed, 38 insertions(+), 20 deletions(-)
diff --git a/README b/README
@@ -23,7 +23,16 @@ view the later one. In this case, the chain will still always be shown
in order, but the view counts for the flashcards in the chain won't
be the same.
-The actual program only has two buttons, "Next card" and "Reveal card",
-which should be obvious. The number of times the card was viewed is
-saved in `config.json` and a random card from the cards that have been
-viewed the least is displayed each time.
+The actual program only has four buttons:
+
+- "Next card" goes to the next card and increases the view count of the
+ currently viewed card (but only if the back was revealed).
+- "Next (no view increase)" does the same but never increases the view count.
+- "Reveal back" reveals the back of the card.
+- "Reload images" reloads the images from the cache (useful when editing
+ the LaTeX files since you can regenerate the cache and then just
+ reload images).
+
+The number of times the card was viewed is saved in `config.json`.
+The "next" buttons choose a random card from the cards that have been
+viewed the least each time.
diff --git a/config.json b/config.json
@@ -1 +1 @@
-{"cards":{"02":4,"03":5,"05":4,"04":10,"01":10,"06":4}}
+{"cards":{"01":0,"04":0,"02":1,"03":0,"06":0,"05":1}}
diff --git a/viewer2.pl b/viewer2.pl
@@ -143,11 +143,8 @@ sub gui {
my $view_count;
my $card_id;
- # so you can press "Reveal card" multiple times without increasing the view count again
- my $view_count_increased = 0;
my $vbox = Gtk2::VBox->new(FALSE, 5);
my $hbox = Gtk2::HBox->new(FALSE, 5);
- my $button = Gtk2::Button->new_with_mnemonic("_Next card");
my $image_front1 = Gtk2::Image->new();
my $image_front2 = Gtk2::Image->new();
@@ -158,32 +155,44 @@ sub gui {
return FALSE;
}, $window);
- $button->signal_connect(clicked => sub {
- $view_count_increased = 0;
- ($view_count, $card_id) = next_card $config, $cards, $cards_backreference, $image_front1, $image_front2, $window_w, $window, $card_id;
- $image_back->clear();
- }, $window);
- $hbox->pack_start($button, FALSE, FALSE, 0);
+ my $revealed = 0;
my $label = Gtk2::Label->new("");
- $button = Gtk2::Button->new_with_mnemonic("Reveal _back");
+ my $button = Gtk2::Button->new_with_mnemonic("_Next card");
$button->signal_connect(clicked => sub {
- if (!$view_count_increased) {
- load_image_back $image_back, $window_w, $image_back_h, $card_id;
- $view_count_increased = 1;
+ if ($revealed) {
$config->{cards}->{$card_id}++;
$cards->{$view_count+1}->{$card_id} = $cards->{$view_count}->{$card_id};
delete $cards->{$view_count}->{$card_id};
if (!%{$cards->{$view_count}}) {
delete $cards->{$view_count};
}
- $label->set_text("View count: " . ($view_count + 1));
+ }
+ $revealed = 0;
+ ($view_count, $card_id) = next_card $config, $cards, $cards_backreference, $image_front1, $image_front2, $window_w, $window, $card_id;
+ $label->set_text("View count: " . $view_count);
+ $image_back->clear();
+ }, $window);
+ $hbox->pack_start($button, FALSE, FALSE, 0);
+ $button = Gtk2::Button->new_with_mnemonic("Next (no _view increase)");
+ $button->signal_connect(clicked => sub {
+ $revealed = 0;
+ ($view_count, $card_id) = next_card $config, $cards, $cards_backreference, $image_front1, $image_front2, $window_w, $window, $card_id;
+ $label->set_text("View count: " . $view_count);
+ $image_back->clear();
+ }, $window);
+ $hbox->pack_start($button, FALSE, FALSE, 0);
+ $button = Gtk2::Button->new_with_mnemonic("Reveal _back");
+ $button->signal_connect(clicked => sub {
+ if (!$revealed) {
+ load_image_back $image_back, $window_w, $image_back_h, $card_id;
+ $revealed = 1;
}
}, $window);
$hbox->pack_start($button, FALSE, FALSE, 0);
$button = Gtk2::Button->new_with_mnemonic("_Reload images");
$button->signal_connect(clicked => sub {
load_images_front $image_front1, $image_front2, $window_w, $card_id;
- if ($view_count_increased) {
+ if ($revealed) {
load_image_back $image_back, $window_w, $image_back_h, $card_id;
}
}, $window);