# HG changeset patch # User Simon Cross # Date 1259440308 0 # Node ID 95c71a13468c36660fcd85e27a1351c6582e1894 # Parent ecad90bbdc6168ec26cd9fd65632e8060e18fa68 Convert failed save/restore print messages to warning dialogs. diff -r ecad90bbdc61 -r 95c71a13468c gamelib/misc.py --- a/gamelib/misc.py Sat Nov 28 20:30:49 2009 +0000 +++ b/gamelib/misc.py Sat Nov 28 20:31:48 2009 +0000 @@ -117,6 +117,35 @@ return gui.Dialog.event(self, e) +class WarnDialog(gui.Dialog): + def __init__(self, title, message, **params): + title = gui.Label(title) + + body = gui.Table() + body.tr() + body.td(gui.Label(message), colspan=3) + body.tr() + body.td(gui.Spacer(0, 15), colspan=3) + + ok_button = gui.Button("Ok") + ok_button.connect(gui.CLICK, self.clicked) + + body.tr() + body.td(gui.Spacer(0, 0), colspan=2) + body.td(ok_button, align=-1) + + gui.Dialog.__init__(self, title, body, **params) + + def clicked(self): + self.close() + + def event(self, e): + if e.type == KEYDOWN and e.key == K_ESCAPE: + self.clicked() + return True + return gui.Dialog.event(self, e) + + # Utility layout functions def make_box(text, markup=False): diff -r ecad90bbdc61 -r 95c71a13468c gamelib/savegame.py --- a/gamelib/savegame.py Sat Nov 28 20:30:49 2009 +0000 +++ b/gamelib/savegame.py Sat Nov 28 20:31:48 2009 +0000 @@ -15,6 +15,7 @@ import version import gameboard import serializer +import misc TIMESTAMP_FORMAT = "%Y-%m-%dT%H:%M:%S" @@ -240,7 +241,7 @@ write_savegame(filename, data, snapshot, level_name, timestamp) except Exception, e: self._saved_func(False) - print "Failed to save game: %s" % (e,) + misc.WarnDialog("Save Failed", str(e)).open() return self._saved_func(True) @@ -260,17 +261,17 @@ try: data, screenshot, level_name, timestamp = read_savegame(filename) except Exception, e: - print "Failed to load game: %s" % (e,) + misc.WarnDialog("Restore Failed", str(e)).open() return if 'refid' not in data or 'class' not in data or data['class'] != gameboard.GameBoard.__name__: - print "Failed to load game: Invalid game data." + misc.WarnDialog("Restore Failed", "Saved game board state invalid.").open() return try: new_gameboard = serializer.unsimplify(data) except Exception, e: - print "Failed to load game: %s" % (e,) + misc.WarnDialog("Restore Failed", str(e)).open() return restore_func(new_gameboard)