diff options
-rw-r--r-- | char.py | 2 | ||||
-rw-r--r-- | ground.py | 2 | ||||
-rw-r--r-- | sound.py | 2 | ||||
-rw-r--r-- | theme.py | 22 |
4 files changed, 21 insertions, 7 deletions
@@ -101,7 +101,7 @@ class CustomFrame(Frame): def select(self): if self._orig: return True; - self.name, self.id, self._orig = theme.choose(lambda jobject: + self.name, self.id, self._orig = theme.choose_image(lambda jobject: (jobject.metadata['title'], jobject.object_id, theme.pixbuf(jobject.file_path)), (None, None, None)) @@ -62,7 +62,7 @@ class CustomGround(Ground): def select(self): try: - return theme.choose(lambda jobject: JournalGround(jobject)) + return theme.choose_image(lambda jobject: JournalGround(jobject)) except: return None @@ -85,7 +85,7 @@ class CustomSound(Sound): Sound.__init__(self, name, None, None, theme.SOUND_CUSTOM) def select(self): - sound = theme.choose(lambda jobject: JournalSound(jobject)) + sound = theme.choose_audio(lambda jobject: JournalSound(jobject)) if sound: sound.select() return sound @@ -16,9 +16,12 @@ import os import gtk import shutil from math import ceil +from gettext import gettext as _ from sugar.activity.activity import get_bundle_path, get_activity_root from sugar.graphics import style +from sugar import mime +from sugar.graphics.objectchooser import ObjectChooser SOUND_SPEAKER = 'images/sounds/speaker.png' SOUND_MUTE = 'images/sounds/mute.png' @@ -104,10 +107,7 @@ EMPTY_THUMB = scale(EMPTY_ORIG) CUSTOM_FRAME_ORIG = pixbuf('images/pics/custom.png') CUSTOM_FRAME_THUMB = scale(CUSTOM_FRAME_ORIG) -def choose(out_fun, default=None): - from sugar.graphics.objectchooser import ObjectChooser - - chooser = ObjectChooser() +def do_choose(out_fun, default, chooser): jobject = None try: @@ -124,6 +124,20 @@ def choose(out_fun, default=None): return default +def choose_image(out_fun, default=None): + if hasattr(mime, 'GENERIC_TYPE_IMAGE'): + return do_choose(out_fun, default, ObjectChooser(_('Choose image'), + what_filter=mime.GENERIC_TYPE_IMAGE)) + else: + return do_choose(out_fun, default, ObjectChooser(_('Choose image'))) + +def choose_audio(out_fun, default=None): + if hasattr(mime, 'GENERIC_TYPE_AUDIO'): + return do_choose(out_fun, default, ObjectChooser(_('Choose audio'), + what_filter=mime.GENERIC_TYPE_AUDIO)) + else: + return do_choose(out_fun, default, ObjectChooser(_('Choose audio'))) + def pixbuf2str(pixbuf): def push(data, buffer): buffer.write(data) |