[Sugar-devel] [PATCH] implements http://bugs.sugarlabs.org/ticket/1106 - Browse: No preview in Journal for downloaded image

Sascha Silbe sascha-ml-reply-to-2010-3 at silbe.org
Thu Sep 23 15:11:38 EDT 2010

Excerpts from godiard's message of Thu Sep 23 15:42:15 +0200 2010:

> this patch adressed comments from silbe about segregate the check of a image mime type and use of sugar.style constant colors
> now opens the image in the original size because we don't want scale up small images
> also i did changes sugested by simon

Please adjust summary and description (and add a changelog) as explained
by Tomeu and Simon.

> +

Methods should only be separated by one blank line, not two. Normally I
would recommend running pep8, but I haven't had time to clean up Browse
yet so it's hard to find new complaints among all the previously
existing ones, sorry. You might try redirecting the output to a file
and using comm:

$ git stash save
$ ~/sugar-jhbuild/sugar-jhbuild run pep8 --repeat *.py > pep8-old.log
$ git stash pop
$ ~/sugar-jhbuild/sugar-jhbuild run pep8 --repeat *.py > pep8-new.log
$ comm -3 pep8-old.log pep8-new.log |less

This will report a lot of line number changes, but the first few lines
of the output might be interesting.

> +    def _get_preview_image(self):
> +        preview_width, preview_height = style.zoom(300), style.zoom(225)

I still think using zoom(300) here is a bad idea, but will stop arguing
about it for now as sugar-toolkit does the same. We'll fix it up later.

> +        pixbuf = gtk.gdk.pixbuf_new_from_file(self._target_file.path)
> +        width, height = pixbuf.get_width(), pixbuf.get_height()

> +
> +

Blocks inside methods should be separated by a single blank line only.

> +        if (width > preview_width) or (height > preview_height):
> +            scale_x = float(width) / preview_width
> +            scale_y = float(height) / preview_height
> +            scale = max(scale_x, scale_y)
> +
> +            pixbuf = pixbuf.scale_simple(float(width) / scale, height / scale,
> +                                     gtk.gdk.INTERP_BILINEAR)

I guess you meant "width / scale"? scale_simple() expects integers.
If you use scale(), you can get rid of one pixbuf (currently you use up
to three).

> +        width, height = pixbuf.get_width(), pixbuf.get_height()

> +        pixbuf2 = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, pixbuf.get_has_alpha(),
> +            pixbuf.get_bits_per_sample(), preview_width, preview_height)

This creates a border around an image that's smaller than the preview
size, thus wasting disk space. Please use width and height instead.

Thanks again for working on this!


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
Url : http://lists.sugarlabs.org/archive/sugar-devel/attachments/20100923/7b9db87e/attachment.pgp 

More information about the Sugar-devel mailing list