Support for activity icons inside the bundle.

Patch by Gonzalo Odiard <godiard@gmail.com>
Modified by me to allow icon theme to override the bundle one.
This commit is contained in:
Marco Pesenti Gritti
2007-01-12 21:35:53 +01:00
parent 55339d4bea
commit 6971ddb9a4
8 changed files with 31 additions and 16 deletions
+9 -1
View File
@@ -3,6 +3,8 @@ import os
from ConfigParser import ConfigParser
import gtk
class Bundle:
"""Info about an activity bundle. Wraps the activity.info file."""
def __init__(self, path):
@@ -21,6 +23,8 @@ class Bundle:
self._valid = False
def _parse_info(self, info_path):
base_path = os.path.dirname(info_path)
cp = ConfigParser()
cp.read([info_path])
@@ -49,7 +53,11 @@ class Bundle:
self._show_launcher = False
if cp.has_option(section, 'icon'):
self._icon = cp.get(section, 'icon')
icon = cp.get(section, 'icon')
if gtk.icon_theme_get_default().has_icon(icon):
self._icon = 'theme:' + icon
else:
self._icon = os.path.join(base_path, icon + ".svg")
if cp.has_option(section, 'activity_version'):
self._activity_version = int(cp.get(section, 'activity_version'))
+8 -1
View File
@@ -52,7 +52,14 @@ class _IconCache:
return rsvg.Handle(data=data)
def get_handle(self, name, color, size):
info = self._theme.lookup_icon(name, int(size), 0)
if name[0:6] == "theme:":
icon = self._read_icon_from_name(name[6:], color, size)
else:
icon = self._read_icon(name, color)
return icon
def _read_icon_from_name(self, name, color, size):
info = self._theme.lookup_icon(name, size, 0)
if not info:
raise "Icon '" + name + "' not found."