The diary of a dedicated Ubuntu user that lucked into his dream job working on the Ubuntu team.

Tuesday, January 5, 2010

One feature a day Photobomb

Last Sunday evening I explored goocanvas enough to know that I wanted to create an app with it. At the same time, my vacation is over, and I am already a bit over committed with coding projects. But I reeaaallly want to work on this. So I decided to just add on feature a day, and see how far I get. See if I can just limit myself to just a little bit each day.

In the meantime, my Photobomb prototype code got a bit out of control and disorganized so I threw it all out and started from scratch. Since I know the API better, I was able to take a much more organized approach. So ...

Day 1 I added:

Ability to add images from disk to the surface (thanks Quidgets for making it a one-liner to get the image path from the user)

Resize the images

Drag around the images (kind of was buggy though)

Remove an image

Ok, so that's more than 1 feature, but it was still a bite sized amount of work, and was necessary to get to the juicier features.

Day 2 (tonight) I added:

SVG images for the button labels (thank you Inkscape)

Ability to rotate images

Ability to send an image to the bottom or bring it to the top of the stack

Fixed the buggy drag code (had to use convert_to_item_space or the whacky things happened with rotated images).

[edit]I cheated a little and added another feature, I sniped some of Segphault's code to implement saving as a png[/edit]

The attached screen shot show three images added, each resized and rotated to look cool.

Next up? I'll probably respond to the feature request to add thought balloons and stuff. But there is also inking.