diff options
author | Gonzalo Odiard <godiard@gmail.com> | 2011-10-29 02:51:38 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@gmail.com> | 2011-10-29 02:51:38 (GMT) |
commit | 7dbbd3eba0434c8670fc93de50d8cf63124dc7b8 (patch) | |
tree | 78f47cec41a316e755684ce6de4d2a072fb1bf53 /resources.py | |
parent | d3aec99f785437b3d6fffd3e3ce56c713ad0a612 (diff) |
Add ObjectChooser to select images in resources window
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
Diffstat (limited to 'resources.py')
-rw-r--r-- | resources.py | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/resources.py b/resources.py index 76f559e..5046e18 100644 --- a/resources.py +++ b/resources.py @@ -5,13 +5,14 @@ import logging from gettext import gettext as _ from sugar.graphics.icon import Icon - +from sugar.graphics.objectchooser import ObjectChooser class CollectResourcesWin(gtk.HBox): - def __init__(self, model): + def __init__(self, activity): + self._activity = activity gtk.HBox.__init__(self) - self.model = model + self.model = activity.model """ +---------+------------------------------+ |Listview | Title [ ] | @@ -58,7 +59,9 @@ class CollectResourcesWin(gtk.HBox): hbox_image.pack_start(self.image, True, padding=5) vbox_image = gtk.VBox() self.load_image_button = gtk.Button('Load Image') + self.load_image_button.connect('clicked', self.__load_image_cb) vbox_image.pack_start(self.load_image_button, False, padding=5) + self.size_label = gtk.Label('Image size:') vbox_image.pack_start(self.size_label, False, padding=5) hbox_image.pack_start(vbox_image, False, padding=5) @@ -77,6 +80,30 @@ class CollectResourcesWin(gtk.HBox): self._modified_data = False self._selected_key = None + def __load_image_cb(self, button): + try: + chooser = ObjectChooser(_('Choose image'), + self._activity, gtk.DIALOG_MODAL | + gtk.DIALOG_DESTROY_WITH_PARENT, what_filter='Image') + except: + chooser = ObjectChooser(_('Choose image'), + self._activity, gtk.DIALOG_MODAL | + gtk.DIALOG_DESTROY_WITH_PARENT) + try: + result = chooser.run() + if result == gtk.RESPONSE_ACCEPT: + logging.debug('ObjectChooser: %r', + chooser.get_selected_object()) + jobject = chooser.get_selected_object() + if jobject and jobject.file_path: + self.__load_image(jobject.file_path) + finally: + chooser.destroy() + del chooser + + def __load_image(self, file_path): + self.image.set_from_file(file_path) + def __information_changed_cb(self, entry): logging.debug('Data modified') self._modified_data = True |