[gnome-sudoku] Use QQwing for SudokuPrinter



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]