Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-04-09 16:05:06 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-04-09 16:05:06 (GMT)
commit1af713b345b75cd7c9dd112879a79d6c3f8dd881 (patch)
treec0208abc7b21d459bbe362565e27301661d7ed88
parenta5c9f6aac0c9432944e276fb2034dbf90ced8b87 (diff)
Add filter to ObjectChooser invoking
-rw-r--r--char.py2
-rw-r--r--ground.py2
-rw-r--r--sound.py2
-rw-r--r--theme.py22
4 files changed, 21 insertions, 7 deletions
diff --git a/char.py b/char.py
index c91c9b9..c5d9f6a 100644
--- a/char.py
+++ b/char.py
@@ -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))
diff --git a/ground.py b/ground.py
index 1f97514..85bf608 100644
--- a/ground.py
+++ b/ground.py
@@ -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
diff --git a/sound.py b/sound.py
index 9a3e311..8e90c44 100644
--- a/sound.py
+++ b/sound.py
@@ -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
diff --git a/theme.py b/theme.py
index 6021cb6..160b202 100644
--- a/theme.py
+++ b/theme.py
@@ -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)