From c3619ae5a1fb0950edd2876700cee93f6d702f1f Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Fri, 18 Sep 2009 10:39:39 +0000 Subject: favoritesview.py: icon-color KeyError #976 --- diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py index 5680d3e..73ab327 100644 --- a/src/jarabe/desktop/favoritesview.py +++ b/src/jarabe/desktop/favoritesview.py @@ -42,7 +42,7 @@ from jarabe.view import launcher from jarabe.model.buddy import BuddyModel from jarabe.model import shell from jarabe.model import bundleregistry -from jarabe import journal +from jarabe.journal import misc from jarabe.desktop import schoolserver from jarabe.desktop.schoolserver import RegisterError @@ -458,11 +458,11 @@ class ActivityIcon(CanvasIcon): def _update(self): self.palette = None if not self._resume_mode or not self._journal_entries: - self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg() - self.props.fill_color = style.COLOR_TRANSPARENT.get_svg() + xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), + style.COLOR_TRANSPARENT.get_svg())) else: - first_entry = self._journal_entries[0] - self.props.xo_color = XoColor(first_entry['icon-color']) + xo_color = misc.get_icon_color(self._journal_entries[0]) + self.props.xo_color = xo_color def create_palette(self): palette = FavoritePalette(self._activity_info, self._journal_entries) @@ -528,8 +528,8 @@ class ActivityIcon(CanvasIcon): launcher.add_launcher(entry['activity_id'], self._activity_info.get_icon(), - XoColor(entry.get('icon-color', ''))) - journal.misc.resume(entry, self._activity_info.get_bundle_id()) + misc.get_icon_color(entry)) + misc.resume(entry, self._activity_info.get_bundle_id()) else: client = gconf.client_get_default() xo_color = XoColor(client.get_string('/desktop/sugar/user/color')) @@ -569,14 +569,14 @@ class FavoritePalette(ActivityPalette): def __init__(self, activity_info, journal_entries): ActivityPalette.__init__(self, activity_info) - if journal_entries and journal_entries[0].get('icon-color', ''): - color = XoColor(journal_entries[0]['icon-color']) + if not journal_entries: + xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), + style.COLOR_TRANSPARENT.get_svg())) else: - color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), - style.COLOR_WHITE.get_svg())) + xo_color = misc.get_icon_color(journal_entries[0]) self.props.icon = Icon(file=activity_info.get_icon(), - xo_color=color, + xo_color=xo_color, icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR) if journal_entries: @@ -584,8 +584,8 @@ class FavoritePalette(ActivityPalette): menu_items = [] for entry in journal_entries: - icon_file_name = journal.misc.get_icon_name(entry) - color = XoColor(entry.get('icon-color', None)) + icon_file_name = misc.get_icon_name(entry) + color = misc.get_icon_color(entry) menu_item = MenuItem(text_label=entry['title'], file_name=icon_file_name, @@ -604,7 +604,7 @@ class FavoritePalette(ActivityPalette): def __resume_entry_cb(self, menu_item, entry): if entry is not None: - journal.misc.resume(entry, entry['activity']) + misc.resume(entry, entry['activity']) class CurrentActivityIcon(CanvasIcon, hippo.CanvasItem): def __init__(self): diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py index fdf3478..94d90ed 100644 --- a/src/jarabe/journal/expandedentry.py +++ b/src/jarabe/journal/expandedentry.py @@ -180,13 +180,11 @@ class ExpandedEntry(hippo.CanvasBox): self._icon_button_release_event_cb) if misc.is_activity_bundle(self._metadata): - icon.props.fill_color = style.COLOR_TRANSPARENT.get_svg() - icon.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg() + xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), + style.COLOR_TRANSPARENT.get_svg())) else: - if self._metadata.has_key('icon-color') and \ - self._metadata['icon-color']: - icon.props.xo_color = XoColor( \ - self._metadata['icon-color']) + xo_color = misc.get_icon_color(self._metadata) + icon.props.xo_color = xo_color icon.set_palette(ObjectPalette(self._metadata)) diff --git a/src/jarabe/journal/listmodel.py b/src/jarabe/journal/listmodel.py index 917fbb1..32df853 100644 --- a/src/jarabe/journal/listmodel.py +++ b/src/jarabe/journal/listmodel.py @@ -132,10 +132,7 @@ class ListModel(gtk.GenericTreeModel, gtk.TreeDragSource): xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), style.COLOR_TRANSPARENT.get_svg())) else: - if metadata.get('icon-color', ''): - xo_color = XoColor(metadata['icon-color']) - else: - xo_color = None + xo_color = misc.get_icon_color(metadata) self._cached_row.append(xo_color) title = gobject.markup_escape_text(metadata.get('title', None)) diff --git a/src/jarabe/journal/misc.py b/src/jarabe/journal/misc.py index 5ea1d24..a9baec8 100644 --- a/src/jarabe/journal/misc.py +++ b/src/jarabe/journal/misc.py @@ -20,10 +20,12 @@ import os from gettext import gettext as _ import gio +import gconf from sugar.activity import activityfactory from sugar.activity.activityhandle import ActivityHandle from sugar.graphics.icon import get_icon_file_name +from sugar.graphics.xocolor import XoColor from sugar import mime from sugar.bundle.activitybundle import ActivityBundle from sugar.bundle.contentbundle import ContentBundle @@ -229,3 +231,9 @@ def is_bundle(metadata): return is_activity_bundle(metadata) or is_content_bundle(metadata) or \ is_journal_bundle(metadata) +def get_icon_color(metadata): + if metadata is None or not 'icon-color' in metadata: + client = gconf.client_get_default() + return XoColor(client.get_string('/desktop/sugar/user/color')) + else: + return XoColor(metadata['icon-color']) diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py index cd4985a..e0dfbf4 100644 --- a/src/jarabe/journal/palettes.py +++ b/src/jarabe/journal/palettes.py @@ -51,14 +51,7 @@ class ObjectPalette(Palette): activity_icon = Icon(icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR) activity_icon.props.file = misc.get_icon_name(metadata) - if metadata.has_key('icon-color') and \ - metadata['icon-color']: - activity_icon.props.xo_color = \ - XoColor(metadata['icon-color']) - else: - activity_icon.props.xo_color = \ - XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), - style.COLOR_TRANSPARENT.get_svg())) + activity_icon.props.xo_color = misc.get_icon_color(metadata) if metadata.has_key('title'): title = gobject.markup_escape_text(metadata['title']) -- cgit v0.9.1