diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2008-01-10 17:39:30 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2008-01-10 17:39:30 (GMT) |
commit | 986420ddf02b87a9d171753eccee551ad20815e2 (patch) | |
tree | 0bc857d0d344cca7f0ee0ea70766089e796aed1f | |
parent | e85a07e2d25036388168dfbb3eb67a607e0ac333 (diff) | |
parent | 802267cd2172eb0929bdadafc309f3c7322f4300 (diff) |
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
-rw-r--r-- | lib/sugar/activity/activity.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/sugar/activity/activity.py b/lib/sugar/activity/activity.py index d9886f9..f6dbd37 100644 --- a/lib/sugar/activity/activity.py +++ b/lib/sugar/activity/activity.py @@ -838,12 +838,24 @@ class Activity(Window, gtk.Container): if response_id == gtk.RESPONSE_OK: self.close(skip_save=True) - def close(self, skip_save=False): + def can_close(self): + """Activities should override this function if they want to perform + extra checks before actually closing.""" + + return True + + def close(self, force=False, skip_save=False): """Request that the activity be stopped and saved to the Journal Activities should not override this method, but should implement write_file() to - do any state saving instead. + do any state saving instead. If the application wants to control wether it can + close, it should override can_close(). """ + + if not force: + if not self.can_close(): + return + try: if not skip_save: self.save() |