[gnome-sudoku] Use QQwing for SudokuPrinter
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-sudoku] Use QQwing for SudokuPrinter
- Date: Mon, 11 Aug 2014 05:46:44 +0000 (UTC)
commit 3fa5c83a6b52b292dfde8c592133493d35d20514
Author: Parin Porecha <parinporecha gmail com>
Date: Wed Aug 6 17:13:48 2014 +0200
Use QQwing for SudokuPrinter
data/print-games.ui | 8 +++---
src/gnome-sudoku.vala | 5 +---
src/sudoku-printer.vala | 51 ++++++++++++++++++++++++-----------------------
3 files changed, 31 insertions(+), 33 deletions(-)
---
diff --git a/data/print-games.ui b/data/print-games.ui
index dd10823..62a5ef1 100644
--- a/data/print-games.ui
+++ b/data/print-games.ui
@@ -141,7 +141,7 @@
<property name="valign">start</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
- <object class="GtkRadioButton" id="easyRadioButton">
+ <object class="GtkRadioButton" id="simpleRadioButton">
<property name="label" translatable="yes">_Simple</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -157,7 +157,7 @@
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="mediumRadioButton">
+ <object class="GtkRadioButton" id="easyRadioButton">
<property name="label" translatable="yes">_Easy</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -173,7 +173,7 @@
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="hardRadioButton">
+ <object class="GtkRadioButton" id="intermediateRadioButton">
<property name="label" translatable="yes">_Intermediate</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -189,7 +189,7 @@
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="very_hardRadioButton">
+ <object class="GtkRadioButton" id="expertRadioButton">
<property name="label" translatable="yes">_Expert</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
diff --git a/src/gnome-sudoku.vala b/src/gnome-sudoku.vala
index 1cfdf4a..2b639f6 100644
--- a/src/gnome-sudoku.vala
+++ b/src/gnome-sudoku.vala
@@ -23,7 +23,6 @@ public class Sudoku : Gtk.Application
private Box undo_redo_box;
private Button back_button;
- private SudokuStore sudoku_store;
private SudokuSaver saver;
private SimpleAction undo_action;
@@ -140,9 +139,7 @@ public class Sudoku : Gtk.Application
clear_action = (SimpleAction) lookup_action ("reset");
print_action = (SimpleAction) lookup_action ("print");
- sudoku_store = new SudokuStore ();
saver = new SudokuSaver ();
-
var savegame = saver.get_savedgame ();
if (savegame != null)
start_game (savegame.board);
@@ -309,7 +306,7 @@ public class Sudoku : Gtk.Application
private void print_multiple_cb ()
{
- var printer = new GamePrinter (sudoku_store, saver, ref window);
+ var printer = new GamePrinter (saver, ref window);
printer.run_dialog ();
}
diff --git a/src/sudoku-printer.vala b/src/sudoku-printer.vala
index a184d43..5ccd2f3 100644
--- a/src/sudoku-printer.vala
+++ b/src/sudoku-printer.vala
@@ -216,25 +216,23 @@ public class SudokuPrinter : GLib.Object {
}
}
-public class GamePrinter: GLib.Object {
-
- private SudokuStore store;
+public class GamePrinter: GLib.Object
+{
private SudokuSaver saver;
private ApplicationWindow window;
private GLib.Settings settings;
private Gtk.Dialog dialog;
private SpinButton nsudokus_button;
+ private RadioButton simple_button;
private RadioButton easy_button;
- private RadioButton medium_button;
- private RadioButton hard_button;
- private RadioButton very_hard_button;
+ private RadioButton intermediate_button;
+ private RadioButton expert_button;
private const string DIFFICULTY_KEY_NAME = "print-multiple-sudoku-difficulty";
- public GamePrinter (SudokuStore store, SudokuSaver saver, ref ApplicationWindow window)
+ public GamePrinter (SudokuSaver saver, ref ApplicationWindow window)
{
- this.store = store;
this.saver = saver;
this.window = window;
this.settings = new GLib.Settings ("org.gnome.sudoku");
@@ -256,28 +254,28 @@ public class GamePrinter: GLib.Object {
SList<RadioButton> radio_group = new SList<RadioButton> ();
- easy_button = builder.get_object ("easyRadioButton") as RadioButton;
- easy_button.set_group (radio_group);
+ simple_button = builder.get_object ("simpleRadioButton") as RadioButton;
+ simple_button.set_group (radio_group);
- medium_button = builder.get_object ("mediumRadioButton") as RadioButton;
- medium_button.join_group (easy_button);
+ easy_button = builder.get_object ("easyRadioButton") as RadioButton;
+ easy_button.join_group (simple_button);
- hard_button = builder.get_object ("hardRadioButton") as RadioButton;
- hard_button.join_group (easy_button);
+ intermediate_button = builder.get_object ("intermediateRadioButton") as RadioButton;
+ intermediate_button.join_group (simple_button);
- very_hard_button = builder.get_object ("very_hardRadioButton") as RadioButton;
- very_hard_button.join_group (easy_button);
+ expert_button = builder.get_object ("expertRadioButton") as RadioButton;
+ expert_button.join_group (simple_button);
var saved_difficulty = (DifficultyCategory) settings.get_enum (DIFFICULTY_KEY_NAME);
if (saved_difficulty == DifficultyCategory.SIMPLE)
- easy_button.set_active (true);
+ simple_button.set_active (true);
else if (saved_difficulty == DifficultyCategory.EASY)
- medium_button.set_active (true);
+ easy_button.set_active (true);
else if (saved_difficulty == DifficultyCategory.INTERMEDIATE)
- hard_button.set_active (true);
+ intermediate_button.set_active (true);
else if (saved_difficulty == DifficultyCategory.EXPERT)
- very_hard_button.set_active (true);
+ expert_button.set_active (true);
nsudokus_button = builder.get_object ("sudokusToPrintSpinButton") as SpinButton;
wrap_adjustment ("print-multiple-sudokus-to-print", nsudokus_button.get_adjustment ());
@@ -299,21 +297,24 @@ public class GamePrinter: GLib.Object {
var nsudokus = (int) nsudokus_button.get_adjustment ().get_value ();
DifficultyCategory level;
+ var boards = new SudokuBoard[nsudokus];
- if (easy_button.get_active ())
+ if (simple_button.get_active ())
level = DifficultyCategory.SIMPLE;
- else if (medium_button.get_active ())
+ else if (easy_button.get_active ())
level = DifficultyCategory.EASY;
- else if (hard_button.get_active ())
+ else if (intermediate_button.get_active ())
level = DifficultyCategory.INTERMEDIATE;
- else if (very_hard_button.get_active ())
+ else if (expert_button.get_active ())
level = DifficultyCategory.EXPERT;
else
assert_not_reached ();
settings.set_enum (DIFFICULTY_KEY_NAME, level);
- var boards = store.get_boards_sorted (nsudokus, level, true);
+ for (var i = 0; i < nsudokus; i++)
+ boards[i] = SudokuGenerator.generate_board (level);
+
SudokuPrinter printer = new SudokuPrinter (boards, ref window);
PrintOperationResult result = printer.print_sudoku ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]