[sugar] code reviews

Eben Eliason eben.eliason at gmail.com
Tue Mar 25 12:09:13 EDT 2008


>  hope you don't mind if I review some code of yours ;)

Please do. =)

>  * Colorize activities in Home view(s) on hover:
>
>  -        icon = CanvasIcon(size=style.STANDARD_ICON_SIZE, cache=True,
>  +        self.icon = CanvasIcon(size=style.STANDARD_ICON_SIZE, cache=True,
>
>  If icon is only used internally, then it is private and should start
>  with an underscore.

Indeed.

>  +    def __icon_hovering_changed_event_cb(self, icon, event):
>  +        if event:
>
>  What you call event should be a boolean called hovering.

Well, that would make more sense, huh?

>  +        self._profile = get_profile()
>
>  If the profile is not part of the state of the class, then I think we
>  shouldn't add a reference to it like that. Why don't you call
>  get_profile() each time it is needed?

Oops.  I meant to go back and change that.  I did it right in the
ActivityPalette class ;)

>  +        # passing the icon_size property to the Icon contructor doesn't work
>  +        activity_icon.props.icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR
>
>  Hmm, I think Simon pushed a fix for this some days ago? You may need
>  to sync your sugar-toolkit tree. Mind the spaces between operators and
>  operands.

I'd like confirmation on that one.  I know Simon pushed a fix which
would allow the passing of style.STANDARD_ICON_SIZE instead of
gtk.ICON_SIZE_LARGE_TOOLBAR.  I figured I could later push a change
which fixes all of these at once. However, I think that the inability
to initialize an icon with a size is an independent problem.  Perhaps
I'm wrong, or perhaps there is a fix for that as well.  Simon?

The lack of spaces result from it's previous place as a keyword arg to
the constructor.  My bad.

>  +        Palette.__init__(self, None, None, primary_text=activity_info.name,
>
>  Please name the parameters that is not clear what they are, like this:
>
>         Palette.__init__(self, label=None, accelerator=None,
>  primary_text=activity_info.name,

I wasn't aware that you could pass keyword args in place of regular
arguments.  Those two None values remain there for backward compatible
API and nothing more.  I opted to switch to the new property API in
all places where I modified the creation of a Palette.

>  * Add icons to palettes of objects in Groups/Neighborhood:
>
>  -        p = palette.Palette(self._model.activity.props.name)
>
>  I know it isn't your code, but please use more complete names unless
>  they get really big.

Fair enough.  I thought about changing them, but I decided not to in
order to keep the diff small.  There are many instances of single
letter variables in this file, and I thought that it would be best to
perform a later commit which does nothing but address that issue
instead.

Thanks for the review!  After hearing back on some of these points
I'll be happy to make the suggested changes.

- Eben


More information about the Sugar mailing list