Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2013-11-16 05:10:01 (GMT)
committer Walter Bender <walter@sugarlabs.org>2013-11-16 05:10:01 (GMT)
commit9ba1e280a70d49b8deb523b804d911d43a0c25c8 (patch)
treeceff70326ffe6020b0c4ec9285583488182f72c7
parentf14e6c4eb05be54609552542fc97322cbd3b265b (diff)
alan's patch
-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. '''