Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/resources.py
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@gmail.com>2011-10-29 02:51:38 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2011-10-29 02:51:38 (GMT)
commit7dbbd3eba0434c8670fc93de50d8cf63124dc7b8 (patch)
tree78f47cec41a316e755684ce6de4d2a072fb1bf53 /resources.py
parentd3aec99f785437b3d6fffd3e3ce56c713ad0a612 (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.py33
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