Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-01-06 15:54:50 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-01-06 15:54:50 (GMT)
commitf74df908ffd3615ca2821d10bf9d4560099e0620 (patch)
treeb116c619945d0b122e67ce6d62bd2d6616d84392 /extensions
parent7a850bac16cb7a40dff18e4ea92cd18aba7db329 (diff)
try all available icons for removable devices
Diffstat (limited to 'extensions')
-rw-r--r--extensions/deviceicon/volume.py14
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()