Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/tautils.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-10-11 15:42:07 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-10-11 15:42:07 (GMT)
commit8fcccae06415542040431d046dbd2bced51e65f5 (patch)
tree61e434b4e46e31c9b4b5564fa7055a30d15ca91e /TurtleArt/tautils.py
parent24e80496c68b5712f1404bc7a1abc792b1abd432 (diff)
more consolidation of chooser code
Diffstat (limited to 'TurtleArt/tautils.py')
-rw-r--r--TurtleArt/tautils.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/TurtleArt/tautils.py b/TurtleArt/tautils.py
index 9e9d2c3..47c2768 100644
--- a/TurtleArt/tautils.py
+++ b/TurtleArt/tautils.py
@@ -156,6 +156,28 @@ def get_save_name(suffix, load_save_folder, save_file_name):
return do_dialog(_dialog, suffix, load_save_folder)
+def chooser(caller, filter, action):
+ """ Choose an object from the datastore and take some action """
+ from sugar.graphics.objectchooser import ObjectChooser
+
+ _chooser = None
+ try:
+ _chooser = ObjectChooser(parent=caller, what_filter=filter)
+ except TypeError:
+ _chooser = ObjectChooser(None, caller,
+ gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
+ if _chooser is not None:
+ try:
+ result = _chooser.run()
+ if result == gtk.RESPONSE_ACCEPT:
+ dsobject = _chooser.get_selected_object()
+ action(dsobject)
+ dsobject.destroy()
+ finally:
+ _chooser.destroy()
+ del _chooser
+
+
def data_from_file(ta_file):
""" Open the .ta file, ignoring any .png file that might be present. """
file_handle = open(ta_file, "r")