[gnome-sudoku] Limit amount of puzzles printed on one page by total amount of puzzles
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-sudoku] Limit amount of puzzles printed on one page by total amount of puzzles
- Date: Sat, 22 Aug 2020 22:53:24 +0000 (UTC)
commit 3fdc6650d285c5c3b5232377ffd4f01650fa342c
Author: Andrey Kutejko <andy128k gmail com>
Date: Sat Aug 22 02:12:01 2020 +0200
Limit amount of puzzles printed on one page by total amount of puzzles
src/print-dialog.vala | 29 ++++++++++++++++++++++-------
1 file changed, 22 insertions(+), 7 deletions(-)
---
diff --git a/src/print-dialog.vala b/src/print-dialog.vala
index b92dc66..e5f97cb 100644
--- a/src/print-dialog.vala
+++ b/src/print-dialog.vala
@@ -75,14 +75,29 @@ public class PrintDialog : Dialog
else
assert_not_reached ();
- wrap_adjustment ("print-multiple-sudokus-to-print", n_sudokus_button.get_adjustment ());
- wrap_adjustment ("print-multiple-sudokus-to-print-per-page",
n_sudokus_per_page_button.get_adjustment ());
- }
+ var initial_total_value = settings.get_int ("print-multiple-sudokus-to-print");
+ var initial_per_page_value = settings.get_int ("print-multiple-sudokus-to-print-per-page");
- private void wrap_adjustment (string key_name, Adjustment action)
- {
- action.set_value (settings.get_int (key_name));
- action.value_changed.connect (() => settings.set_int (key_name, (int) action.get_value ()));
+ var total = n_sudokus_button.get_adjustment ();
+ var per_page = n_sudokus_per_page_button.get_adjustment ();
+
+ total.set_value (initial_total_value);
+ per_page.set_value (int.min (initial_total_value, initial_per_page_value));
+ per_page.set_upper (initial_total_value);
+
+ total.value_changed.connect (() => {
+ var total_value = (int) total.get_value ();
+ settings.set_int ("print-multiple-sudokus-to-print", total_value);
+
+ var per_page_value = (int) per_page.get_value ();
+ per_page_value = int.min (per_page_value, total_value);
+ per_page.set_upper (total_value);
+ per_page.set_value (per_page_value);
+ });
+ per_page.value_changed.connect (() => {
+ var per_page_value = (int) per_page.get_value ();
+ settings.set_int ("print-multiple-sudokus-to-print-per-page", per_page_value);
+ });
}
public bool start_spinner_cb ()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]