diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-08-24 18:15:30 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-08-24 18:15:30 (GMT) |
commit | 628fe7b5da46b7618c391b91c9e130b30d4b6623 (patch) | |
tree | a851f646190ab6bb589ef5a2570332e7a93f70be | |
parent | ebe2b4765e4c17327dc00c4d38ec0c3fc5a468a5 (diff) |
Restore Icon's ability to load absolute file paths.
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | sugar/graphics/icon.py | 21 |
2 files changed, 18 insertions, 4 deletions
@@ -1,3 +1,4 @@ +* Restore Icon's ability to load absolute file paths. (tomeu) * #722 Show "charging" badge on battery. (danw) * #2010 Remember state when scrubbing. (marco) diff --git a/sugar/graphics/icon.py b/sugar/graphics/icon.py index e324d45..ff4e09a 100644 --- a/sugar/graphics/icon.py +++ b/sugar/graphics/icon.py @@ -66,15 +66,25 @@ class Icon(gtk.Image): icon_theme = gtk.icon_theme_get_for_screen(self.get_screen()) icon_set = gtk.IconSet() - if icon_theme.has_icon(self._icon_name): + if icon_theme.has_icon(self._icon_name) or os.path.exists(self._icon_name): source = gtk.IconSource() - source.set_icon_name(self._icon_name) + + if os.path.exists(self._icon_name): + source.set_filename(self._icon_name) + else: + source.set_icon_name(self._icon_name) + icon_set.add_source(source) inactive_name = self._icon_name + '-inactive' - if icon_theme.has_icon(inactive_name): + if icon_theme.has_icon(inactive_name) or os.path.exists(inactive_name): source = gtk.IconSource() - source.set_icon_name(inactive_name) + + if os.path.exists(inactive_name): + source.set_filename(inactive_name) + else: + source.set_icon_name(inactive_name) + source.set_state(gtk.STATE_INSENSITIVE) icon_set.add_source(source) @@ -109,6 +119,9 @@ class Icon(gtk.Image): self.set_from_pixbuf(pixbuf) def _get_real_name(self, name): + if os.path.exists(name): + return name + info = self._theme.lookup_icon(name, self.props.icon_size, 0) if not info: raise ValueError("Icon '" + name + "' not found.") |