Ticket #2028: save-before-quit.patch

File save-before-quit.patch, 1.9 KB (added by rgs, 14 years ago)
  • tawindow.py

    diff --git a/tawindow.py b/tawindow.py
    index 58bb43c..89375e3 100644
    a b class TurtleArtWindow(): 
    284284                self._run_stack(blk)
    285285        return
    286286
     287    def is_project_empty(self):
     288        return len(self.just_blocks()) == 1
     289
    287290    def stop_button(self):
    288291        """ Stop button """
    289292        stop_logo(self)
  • turtleart.py

    diff --git a/turtleart.py b/turtleart.py
    index e123aed..7bf3bf0 100755
    a b class TurtleMain(): 
    117117            win.move(self.x, self.y)
    118118            win.maximize()
    119119            win.set_title(_("Turtle Art"))
    120             win.connect("delete_event", lambda w, e: gtk.main_quit())
     120            win.connect("delete_event", self._quit_ta)
    121121
    122122            menu = gtk.Menu()
    123123
    class TurtleMain(): 
    304304            self.tw.run_button(0)
    305305            self.tw.save_as_image(self.ta_file, canvas)
    306306
     307
     308    def _quit_ta(self, widget, e):
     309        project_empty = self.tw.is_project_empty()
     310
     311        if project_empty == False:
     312            dlg = gtk.MessageDialog(parent=None, type=gtk.MESSAGE_INFO,
     313                                    buttons=gtk.BUTTONS_OK_CANCEL,
     314                                    message_format = _("You have un-saved work. Would you like to save before quitting?"))
     315            dlg.set_title("Save project?")
     316            dlg.set_property("skip-taskbar-hint", False)
     317
     318            resp = dlg.run()
     319            dlg.destroy()
     320            if resp == gtk.RESPONSE_OK:
     321                self._save_as()
     322
     323        gtk.main_quit()
     324
    307325    def _do_new_cb(self, widget):
    308326        """ Callback for new project. """
    309327        self.tw.new_project()
    class TurtleMain(): 
    319337
    320338    def _do_save_as_cb(self, widget):
    321339        """ Callback for save-as project. """
     340        self._save_as()
     341
     342    def _save_as(self):
    322343        self.tw.save_file_name = None
    323344        self.tw.save_file()
    324345