[gnome-tetravex] Improve code.
- From: Arnaud B. <arnaudb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-tetravex] Improve code.
- Date: Fri, 20 Sep 2019 19:28:04 +0000 (UTC)
commit 090e7aea13b85bf0dce9d7f61a0c6a687d0cec4e
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date: Fri Sep 20 21:26:52 2019 +0200
Improve code.
src/gnome-tetravex.vala | 10 +++++-----
src/puzzle-view.vala | 19 -------------------
src/puzzle.vala | 10 +++-------
3 files changed, 8 insertions(+), 31 deletions(-)
---
diff --git a/src/gnome-tetravex.vala b/src/gnome-tetravex.vala
index d8ed49b..a7a71e2 100644
--- a/src/gnome-tetravex.vala
+++ b/src/gnome-tetravex.vala
@@ -331,7 +331,7 @@ private class Tetravex : Gtk.Application
puzzle_init_done = true;
puzzle.tick.connect (tick_cb);
puzzle.solved.connect (solved_cb);
- puzzle.solved_right.connect (solved_right_cb);
+ puzzle.notify ["is-solved-right"].connect (solved_right_cb);
puzzle.show_end_game.connect (show_end_game_cb);
view.puzzle = puzzle;
tick_cb ();
@@ -365,9 +365,9 @@ private class Tetravex : Gtk.Application
finish_action.set_enabled (false);
}
- private void solved_right_cb (Puzzle puzzle, bool is_solved)
+ private void solved_right_cb ()
{
- if (is_solved)
+ if (puzzle.is_solved_right)
{
solve_action.set_enabled (false);
finish_action.set_enabled (/* should never happen */ !puzzle.paused);
@@ -419,7 +419,7 @@ private class Tetravex : Gtk.Application
private void new_game_cb ()
{
- if (view.game_in_progress)
+ if (puzzle.game_in_progress)
{
MessageDialog dialog = new MessageDialog (window,
DialogFlags.MODAL,
@@ -507,7 +507,7 @@ private class Tetravex : Gtk.Application
if (size == settings.get_int (KEY_GRID_SIZE))
return;
- if (view.game_in_progress)
+ if (puzzle.game_in_progress)
{
MessageDialog dialog = new MessageDialog (window,
DialogFlags.MODAL,
diff --git a/src/puzzle-view.vala b/src/puzzle-view.vala
index dc01d2d..9bfb05c 100644
--- a/src/puzzle-view.vala
+++ b/src/puzzle-view.vala
@@ -134,25 +134,6 @@ private class PuzzleView : Gtk.DrawingArea
animation_timer.start ();
}
- [CCode (notify = false)] internal bool game_in_progress
- {
- internal get
- {
- if (puzzle.is_solved)
- return false;
-
- for (uint8 y = 0; y < puzzle.size; y++)
- {
- for (uint8 x = puzzle.size; x < puzzle.size * 2; x++)
- {
- if (puzzle.get_tile (x, y) == null)
- return true;
- }
- }
- return false;
- }
- }
-
private void redraw_tile (TileImage image)
{
queue_draw_area ((int) (image.x + 0.5),
diff --git a/src/puzzle.vala b/src/puzzle.vala
index b0feb0f..921ce36 100644
--- a/src/puzzle.vala
+++ b/src/puzzle.vala
@@ -235,11 +235,13 @@ private class Puzzle : Object
}
private uint timeout_id = 0;
- internal bool is_solved_right { internal get; private set; default = false; }
+ [CCode (notify = false)] internal bool game_in_progress { internal get; private set; default = false; }
+ [CCode (notify = true)] internal bool is_solved_right { internal get; private set; default = false; }
internal void switch_tiles (uint8 x0, uint8 y0, uint8 x1, uint8 y1, uint delay_if_finished = 0)
{
if (x0 == x1 && y0 == y1)
return;
+ game_in_progress = true;
Tile? t0 = board [x0, y0];
Tile? t1 = board [x1, y1];
@@ -265,15 +267,9 @@ private class Puzzle : Object
});
}
else if (solved_on_right ())
- {
is_solved_right = true;
- solved_right (true);
- }
else if (is_solved_right)
- {
is_solved_right = false;
- solved_right (false);
- }
}
/*\
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]