From a80a1ff660197057f59a1391b670ec701e815b12 Mon Sep 17 00:00:00 2001 From: Eugeni Dodonov Date: Tue, 20 Jan 2009 15:54:01 +0000 Subject: Implemented asking for saving changes. --- src/msec/msecgui.py | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/src/msec/msecgui.py b/src/msec/msecgui.py index b50f89a..1299718 100755 --- a/src/msec/msecgui.py +++ b/src/msec/msecgui.py @@ -142,7 +142,7 @@ class MsecGui: # running standalone self.window = gtk.Window() self.window.set_default_size(640, 480) - self.window.connect('destroy', self.quit) + self.window.connect('delete-event', self.quit) # are we enforcing a level self.enforced_level = None @@ -343,7 +343,7 @@ class MsecGui: response = dialog.run() if response != gtk.RESPONSE_OK: dialog.destroy() - return + return False dialog.destroy() # new base level @@ -358,6 +358,8 @@ class MsecGui: self.reload_config() + return True + def reload_config(self): """Reloads config files""" # msecconfig @@ -1040,8 +1042,41 @@ class MsecGui: model.set(iter, self.COLUMN_CUSTOM, custom) - def quit(self, param): + def quit(self, widget, event): """Quits the application""" + + # were there changes in configuration? + num_changes, allchanges, messages = self.check_for_changes(self.msecconfig, self.permconfig) + + if num_changes > 0: + # there were changes + print "Unsaved changes!" + # asks for new parameter value + dialog = gtk.Dialog(_("Save your changes?"), + self.window, 0, + (_("Cancel"), gtk.RESPONSE_CANCEL, + _("Ignore"), gtk.RESPONSE_CLOSE, + _("Save"), gtk.RESPONSE_OK)) + # option title + label = gtk.Label(_("Do you want to save changes before closing?")) + dialog.vbox.pack_start(label, False, False, padding=DEFAULT_SPACING) + + dialog.show_all() + response = dialog.run() + dialog.destroy() + print "response!" + if response == gtk.RESPONSE_OK: + ret = self.ok(widget) + if not ret: + # haven't saved + print "not saved" + return True + elif response == gtk.RESPONSE_CLOSE: + # leaving + gtk.main_quit() + else: + return True + print "Leaving.." gtk.main_quit() -- cgit v1.2.1