[gnome-games/sudoku-tube] Fix error of saving trackers
- From: Zhang Sen <zhangsen src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-games/sudoku-tube] Fix error of saving trackers
- Date: Sat, 25 Jul 2009 14:38:05 +0000 (UTC)
commit 193eb8bde66fc5c84dbf8d06c550a2a06fdbf8b5
Author: Zhang Sen <zh jesse gmail com>
Date: Sat Jul 25 19:54:56 2009 +0800
Fix error of saving trackers
And other small fixes.
gnome-sudoku/src/lib/model.py | 2 ++
gnome-sudoku/src/lib/view.py | 11 ++++++++++-
2 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/gnome-sudoku/src/lib/model.py b/gnome-sudoku/src/lib/model.py
index ddb5039..82dc8fb 100644
--- a/gnome-sudoku/src/lib/model.py
+++ b/gnome-sudoku/src/lib/model.py
@@ -107,6 +107,8 @@ class NotesModel:
self._signal_observers([change])
def get_all_notes(self):
+ # These are all for keeping compatible with old saving format:
+ # notes was saved as a list of (x, y, top, bottom)
result = []
for (x, y) in self._notes:
top, bottom = self._notes[(x, y)]
diff --git a/gnome-sudoku/src/lib/view.py b/gnome-sudoku/src/lib/view.py
index 33d9a19..b3f1e6d 100644
--- a/gnome-sudoku/src/lib/view.py
+++ b/gnome-sudoku/src/lib/view.py
@@ -230,6 +230,7 @@ class SudokuView(SudokuNumberGrid, gobject.GObject):
for y in range(self.group_size):
self.set_value(x, y, 0)
self.set_readonly_appearance(x, y, False)
+ self.set_color(x, y, None)
def connect_to_model(self, model):
if not model:
@@ -262,6 +263,7 @@ class SudokuView(SudokuNumberGrid, gobject.GObject):
def set_value(self, x, y, value):
if not value:
+ # setting to empty should also delete it from trackers
tid = self._tracker.get_tracker_by_coord(x, y)
if tid is not None:
self._tracker.remove_from_tracker(tid, x, y)
@@ -397,7 +399,14 @@ class SudokuView(SudokuNumberGrid, gobject.GObject):
return self._tracker
def get_trackers(self):
- return self._tracker.get_trackers()
+ # We have to save not only the coordinates, but also the value.
+ # Maybe the values should be also tracked by _Tracker?
+ result = {}
+ trackers = self._tracker.get_trackers()
+ for tid in trackers:
+ result[tid] = [(x, y, self.get_value(x, y)) for (x, y) in
+ trackers[tid]]
+ return result
def get_trackers_tracking(self):
return self._tracker.get_trackers_tracking()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]