diff options
author | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-01-06 15:54:50 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-01-06 15:54:50 (GMT) |
commit | f74df908ffd3615ca2821d10bf9d4560099e0620 (patch) | |
tree | b116c619945d0b122e67ce6d62bd2d6616d84392 /extensions | |
parent | 7a850bac16cb7a40dff18e4ea92cd18aba7db329 (diff) |
try all available icons for removable devices
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/deviceicon/volume.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/extensions/deviceicon/volume.py b/extensions/deviceicon/volume.py index c0d265b..9457d83 100644 --- a/extensions/deviceicon/volume.py +++ b/extensions/deviceicon/volume.py @@ -29,6 +29,7 @@ from sugar.graphics.palette import Palette from sugar.graphics.menuitem import MenuItem from sugar.graphics.icon import Icon from sugar.graphics.xocolor import XoColor +from sugar.graphics import style from jarabe.journal import journalactivity @@ -42,8 +43,17 @@ class DeviceView(TrayIcon): TrayIcon.__init__(self) self._mount = mount - # TODO: fallback to the more generic icons when needed - self.get_icon().props.icon_name = self._mount.get_icon().props.names[0] + icon_theme = gtk.icon_theme_get_default() + for icon_name in self._mount.get_icon().props.names: + icon_info = icon_theme.lookup_icon(icon_name, + style.STANDARD_ICON_SIZE, 0) + if icon_info is not None: + self.get_icon().props.icon_name = icon_name + icon_info.free() + break + + if self.get_icon().props.icon_name is None: + self.get_icon().props.icon_name = 'drive' # TODO: retrieve the colors from the owner of the device client = gconf.client_get_default() |