[gnome-games/sudoku-tube] Make clear-notes work
- From: Zhang Sen <zhangsen src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-games/sudoku-tube] Make clear-notes work
- Date: Sat, 18 Jul 2009 11:48:19 +0000 (UTC)
commit 4046fafbb0a7edbde8a62bb38d4f29d1e63769ef
Author: Zhang Sen <zh jesse gmail com>
Date: Sat Jul 18 19:08:47 2009 +0800
Make clear-notes work
gnome-sudoku/src/lib/gsudoku.py | 12 ++++++++++++
gnome-sudoku/src/lib/main.py | 9 +--------
2 files changed, 13 insertions(+), 8 deletions(-)
---
diff --git a/gnome-sudoku/src/lib/gsudoku.py b/gnome-sudoku/src/lib/gsudoku.py
index c68c1f5..0961b58 100644
--- a/gnome-sudoku/src/lib/gsudoku.py
+++ b/gnome-sudoku/src/lib/gsudoku.py
@@ -391,6 +391,14 @@ class NotesModel:
self.set_notes(x, y, bottom_note="X")
def _clear_hints(self):
+ self._clear_bottom_note()
+
+ def _clear_top_note(self):
+ for x in range(self._group_size):
+ for y in range(self._group_size):
+ self.set_notes(x, y, top_note="")
+
+ def _clear_bottom_note(self):
for x in range(self._group_size):
for y in range(self._group_size):
self.set_notes(x, y, bottom_note="")
@@ -401,6 +409,10 @@ class NotesModel:
def get_hints_count(self):
return self._hints_count
+ def clear_notes(self):
+ self._clear_top_note()
+ self._clear_bottom_note()
+
class SudokuModel:
def __init__ (self, grid, group_size):
diff --git a/gnome-sudoku/src/lib/main.py b/gnome-sudoku/src/lib/main.py
index 60e3bea..167d7dc 100644
--- a/gnome-sudoku/src/lib/main.py
+++ b/gnome-sudoku/src/lib/main.py
@@ -453,14 +453,7 @@ class UI (gconf_wrapper.GConfWrapper):
self._main_model.reset_grid()
def clear_notes_cb (self, *args):
- clearer = Undo.UndoableObject(
- lambda *args: self.cleared_notes.append(self.gsd.clear_notes()), #action
- # clear_notes returns a list of tuples indicating the cleared notes...
- # (x,y,(top,bottom)) -- this is what we need for undoing
- lambda *args: [self.gsd.__entries__[t[0], t[1]].set_notes(t[2]) for t in self.cleared_notes.pop()], #inverse
- self.history
- )
- clearer.perform()
+ self._notes_model.clear_notes()
def show_hint_cb (self, *args):
current = self._main_grid_vew.get_focus()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]