[gnome-games/sudoku-tube] Fix error of saving trackers



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]