[gnome-games/applygsoc2009: 1/76] Remove duplicate code of closing current game



commit f665e1dc17b30da79a3b1c70f2db8b88de1df18e
Author: Pablo Castellano <pablog src gnome org>
Date:   Thu Aug 26 04:23:43 2010 +0200

    Remove duplicate code of closing current game

 gnome-sudoku/src/lib/main.py |   46 ++++++++++++++++++-----------------------
 1 files changed, 20 insertions(+), 26 deletions(-)
---
diff --git a/gnome-sudoku/src/lib/main.py b/gnome-sudoku/src/lib/main.py
index c6fc586..a49730b 100644
--- a/gnome-sudoku/src/lib/main.py
+++ b/gnome-sudoku/src/lib/main.py
@@ -422,34 +422,28 @@ class UI (gconf_wrapper.GConfWrapper):
     @simple_debug
     @inactivate_new_game_etc
     def new_cb (self, *args):
-        if (self.gsd.grid and self.gsd.grid.is_changed() and not self.won):
-            try:
-                if dialog_extras.getBoolean(
-                    label = _("Save this game before starting new one?"),
-                    custom_yes = _("_Save game for later"),
-                    custom_no = _("_Abandon game"),
-                    ):
-                    self.save_game()
-                else:
-                    self.sudoku_tracker.abandon_game(self)
-            except dialog_extras.UserCancelledError:
-                # User cancelled new game
-                return
-        self.do_stop()
-        self.select_game()
-
-
-    @simple_debug
-    def stop_game (self):
-        if (self.gsd.grid
-            and self.gsd.grid.is_changed()
-            and (not self.won)):
-            try:
-                if dialog_extras.getBoolean(label = _("Save game before closing?")):
-                    self.save_game(self)
-            except dialog_extras.UserCancelledError:
-                return
-            self.do_stop()
+        if self._close_current_game():
+            self.select_game()
+
+    @simple_debug
+    def _close_current_game (self):
+        """Close current running game
+
+        Return True if game is closed, or else return False"""
+         if (self.gsd.grid and self.gsd.grid.is_changed() and not self.won):
+             try:
+                 if dialog_extras.getBoolean(
+                     label = _("Save current game?"),
+                     custom_yes = _("_Save"),
+                     custom_no = _("_Abandon"),
+                     ):
+                     self.save_game()
+                 else:
+                     self.sudoku_tracker.abandon_game(self)
+                 except dialog_extras.UserCancelledError:
+                     # User cancelled; current game is not closed
+					 return False
+        return True # also return True if game is not changed at all
 
     def do_stop (self):
         self.stop_dancer()



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]