diff --git a/tawindow.py b/tawindow.py
index 58bb43c..89375e3 100644
a
|
b
|
class TurtleArtWindow(): |
284 | 284 | self._run_stack(blk) |
285 | 285 | return |
286 | 286 | |
| 287 | def is_project_empty(self): |
| 288 | return len(self.just_blocks()) == 1 |
| 289 | |
287 | 290 | def stop_button(self): |
288 | 291 | """ Stop button """ |
289 | 292 | stop_logo(self) |
diff --git a/turtleart.py b/turtleart.py
index e123aed..7bf3bf0 100755
a
|
b
|
class TurtleMain(): |
117 | 117 | win.move(self.x, self.y) |
118 | 118 | win.maximize() |
119 | 119 | win.set_title(_("Turtle Art")) |
120 | | win.connect("delete_event", lambda w, e: gtk.main_quit()) |
| 120 | win.connect("delete_event", self._quit_ta) |
121 | 121 | |
122 | 122 | menu = gtk.Menu() |
123 | 123 | |
… |
… |
class TurtleMain(): |
304 | 304 | self.tw.run_button(0) |
305 | 305 | self.tw.save_as_image(self.ta_file, canvas) |
306 | 306 | |
| 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 | |
307 | 325 | def _do_new_cb(self, widget): |
308 | 326 | """ Callback for new project. """ |
309 | 327 | self.tw.new_project() |
… |
… |
class TurtleMain(): |
319 | 337 | |
320 | 338 | def _do_save_as_cb(self, widget): |
321 | 339 | """ Callback for save-as project. """ |
| 340 | self._save_as() |
| 341 | |
| 342 | def _save_as(self): |
322 | 343 | self.tw.save_file_name = None |
323 | 344 | self.tw.save_file() |
324 | 345 | |