Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Jhonn Aguiar Schwyn <alanjas@hotmail.com>2013-11-15 17:59:34 (GMT)
committer Walter Bender <walter@sugarlabs.org>2013-11-15 17:59:34 (GMT)
commit4830f48b77ad1b17058619bb1503cad89b524292 (patch)
tree8369e0b3b3dd430f4ddc7df790753c4eac8e9591
parentbc68de554294518b4bf19386ff9fad41e96b2b62 (diff)
Alan's patch to offer cancel on quit
-rwxr-xr-xturtleblocks.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/turtleblocks.py b/turtleblocks.py
index 604d609..d8bd71b 100755
--- a/turtleblocks.py
+++ b/turtleblocks.py
@@ -482,33 +482,36 @@ return %s(self)" % (p, P, P)
''' Save changes on exit '''
project_empty = self.tw.is_project_empty()
if not project_empty:
- if self.tw.is_new_project():
- self._show_save_dialog(True)
- else:
- if self.tw.project_has_changed():
- self._show_save_dialog(False)
+ resp = self._show_save_dialog(e == None)
+ if resp == gtk.RESPONSE_YES:
+ if self.tw.is_new_project():
+ self._save_as()
+ else:
+ if self.tw.project_has_changed():
+ self._save_changes()
+ elif resp == gtk.RESPONSE_CANCEL:
+ return
+
for plugin in self.tw.turtleart_plugins:
if hasattr(plugin, 'quit'):
plugin.quit()
gtk.main_quit()
exit()
- def _show_save_dialog(self, new_project=True):
+ def _show_save_dialog(self, add_cancel=False):
''' Dialog for save project '''
dlg = gtk.MessageDialog(parent=None, type=gtk.MESSAGE_INFO,
buttons=gtk.BUTTONS_YES_NO,
message_format=_('You have unsaved work. \
Would you like to save before quitting?'))
+ if add_cancel:
+ dlg.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
dlg.set_title(_('Save project?'))
dlg.set_property('skip-taskbar-hint', False)
resp = dlg.run()
dlg.destroy()
- if resp == gtk.RESPONSE_YES:
- if new_project:
- self._save_as()
- else:
- self._save_changes()
+ return resp
def _do_new_cb(self, widget):
''' Callback for new project. '''