Ticket #976: sugar-976.patch

File sugar-976.patch, 8.0 KB (added by alsroot, 12 years ago)
  • src/jarabe/desktop/favoritesview.py

    From 9a5d3b7dc5e11552b3bb7c157d600fcd0942461b Mon Sep 17 00:00:00 2001
    From: Aleksey Lim <alsroot@member.fsf.org>
    Date: Wed, 16 Sep 2009 18:41:33 +0000
    Subject: favoritesview.py: icon-color KeyError #976
    
    ---
     src/jarabe/desktop/favoritesview.py |   30 +++++++++++++++---------------
     src/jarabe/journal/expandedentry.py |   10 ++++------
     src/jarabe/journal/listmodel.py     |    5 +----
     src/jarabe/journal/misc.py          |   11 +++++++++--
     src/jarabe/journal/palettes.py      |    9 +--------
     5 files changed, 30 insertions(+), 35 deletions(-)
    
    diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py
    index 5680d3e..73ab327 100644
    a b from jarabe.view import launcher 
    4242from jarabe.model.buddy import BuddyModel
    4343from jarabe.model import shell
    4444from jarabe.model import bundleregistry
    45 from jarabe import journal
     45from jarabe.journal import misc
    4646
    4747from jarabe.desktop import schoolserver
    4848from jarabe.desktop.schoolserver import RegisterError
    class ActivityIcon(CanvasIcon): 
    458458    def _update(self):
    459459        self.palette = None
    460460        if not self._resume_mode or not self._journal_entries:
    461             self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
    462             self.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
     461            xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(),
     462                                          style.COLOR_TRANSPARENT.get_svg()))
    463463        else:
    464             first_entry = self._journal_entries[0]
    465             self.props.xo_color = XoColor(first_entry['icon-color'])
     464            xo_color = misc.get_icon_color(self._journal_entries[0])
     465        self.props.xo_color = xo_color
    466466
    467467    def create_palette(self):
    468468        palette = FavoritePalette(self._activity_info, self._journal_entries)
    class ActivityIcon(CanvasIcon): 
    528528
    529529            launcher.add_launcher(entry['activity_id'],
    530530                                  self._activity_info.get_icon(),
    531                                   XoColor(entry.get('icon-color', '')))
    532             journal.misc.resume(entry, self._activity_info.get_bundle_id())
     531                                  misc.get_icon_color(entry))
     532            misc.resume(entry, self._activity_info.get_bundle_id())
    533533        else:
    534534            client = gconf.client_get_default()
    535535            xo_color = XoColor(client.get_string('/desktop/sugar/user/color'))
    class FavoritePalette(ActivityPalette): 
    569569    def __init__(self, activity_info, journal_entries):
    570570        ActivityPalette.__init__(self, activity_info)
    571571
    572         if journal_entries and journal_entries[0].get('icon-color', ''):
    573             color = XoColor(journal_entries[0]['icon-color'])
     572        if not journal_entries:
     573            xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(),
     574                                          style.COLOR_TRANSPARENT.get_svg()))
    574575        else:
    575             color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(),
    576                                        style.COLOR_WHITE.get_svg()))
     576            xo_color = misc.get_icon_color(journal_entries[0])
    577577
    578578        self.props.icon = Icon(file=activity_info.get_icon(),
    579                                xo_color=color,
     579                               xo_color=xo_color,
    580580                               icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
    581581
    582582        if journal_entries:
    class FavoritePalette(ActivityPalette): 
    584584
    585585            menu_items = []
    586586            for entry in journal_entries:
    587                 icon_file_name = journal.misc.get_icon_name(entry)
    588                 color = XoColor(entry.get('icon-color', None))
     587                icon_file_name = misc.get_icon_name(entry)
     588                color = misc.get_icon_color(entry)
    589589
    590590                menu_item = MenuItem(text_label=entry['title'],
    591591                                     file_name=icon_file_name,
    class FavoritePalette(ActivityPalette): 
    604604
    605605    def __resume_entry_cb(self, menu_item, entry):
    606606        if entry is not None:
    607             journal.misc.resume(entry, entry['activity'])
     607            misc.resume(entry, entry['activity'])
    608608
    609609class CurrentActivityIcon(CanvasIcon, hippo.CanvasItem):
    610610    def __init__(self):
  • src/jarabe/journal/expandedentry.py

    diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py
    index fdf3478..94d90ed 100644
    a b class ExpandedEntry(hippo.CanvasBox): 
    180180                           self._icon_button_release_event_cb)
    181181
    182182        if misc.is_activity_bundle(self._metadata):
    183             icon.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
    184             icon.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
     183            xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(),
     184                                          style.COLOR_TRANSPARENT.get_svg()))
    185185        else:
    186             if self._metadata.has_key('icon-color') and \
    187                    self._metadata['icon-color']:
    188                 icon.props.xo_color = XoColor( \
    189                     self._metadata['icon-color'])
     186            xo_color = misc.get_icon_color(self._metadata)
     187        icon.props.xo_color = xo_color
    190188
    191189        icon.set_palette(ObjectPalette(self._metadata))
    192190
  • src/jarabe/journal/listmodel.py

    diff --git a/src/jarabe/journal/listmodel.py b/src/jarabe/journal/listmodel.py
    index 917fbb1..32df853 100644
    a b class ListModel(gtk.GenericTreeModel, gtk.TreeDragSource): 
    132132            xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(),
    133133                                          style.COLOR_TRANSPARENT.get_svg()))
    134134        else:
    135             if metadata.get('icon-color', ''):
    136                 xo_color = XoColor(metadata['icon-color'])
    137             else:
    138                 xo_color = None
     135            xo_color = misc.get_icon_color(metadata)
    139136        self._cached_row.append(xo_color)
    140137
    141138        title = gobject.markup_escape_text(metadata.get('title', None))
  • src/jarabe/journal/misc.py

    diff --git a/src/jarabe/journal/misc.py b/src/jarabe/journal/misc.py
    index 5ea1d24..197fd48 100644
    a b  
    1717import logging
    1818import time
    1919import os
    20 from gettext import gettext as _
    21 
     20import gconf
    2221import gio
     22from gettext import gettext as _
    2323
    2424from sugar.activity import activityfactory
    2525from sugar.activity.activityhandle import ActivityHandle
    2626from sugar.graphics.icon import get_icon_file_name
     27from sugar.graphics.xocolor import XoColor
    2728from sugar import mime
    2829from sugar.bundle.activitybundle import ActivityBundle
    2930from sugar.bundle.contentbundle import ContentBundle
    def is_bundle(metadata): 
    229230    return is_activity_bundle(metadata) or is_content_bundle(metadata) or \
    230231            is_journal_bundle(metadata)
    231232
     233def get_icon_color(metadata):
     234    if metadata is None or not 'icon-color' in metadata:
     235        client = gconf.client_get_default()
     236        return XoColor(client.get_string('/desktop/sugar/user/color'))
     237    else:
     238        return XoColor(metadata['icon-color'])
  • src/jarabe/journal/palettes.py

    diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py
    index cd4985a..e0dfbf4 100644
    a b class ObjectPalette(Palette): 
    5151
    5252        activity_icon = Icon(icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
    5353        activity_icon.props.file = misc.get_icon_name(metadata)
    54         if metadata.has_key('icon-color') and \
    55                 metadata['icon-color']:
    56             activity_icon.props.xo_color = \
    57                 XoColor(metadata['icon-color'])
    58         else:
    59             activity_icon.props.xo_color = \
    60                 XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(),
    61                                    style.COLOR_TRANSPARENT.get_svg()))
     54        activity_icon.props.xo_color = misc.get_icon_color(metadata)
    6255
    6356        if metadata.has_key('title'):
    6457            title = gobject.markup_escape_text(metadata['title'])