Monday, June 25, 2012

GSoC Report #3: Documents Properties Dialog
I finished my first GSoC task, the new Properties Dialog for Documents. This is a first iteration based on a design by Jon McCann for the Nautilus properties menu. You may notice that I have not included some of the features of the design, such as the top bar :) Because these features are going to be implemented in Mutter in the future, I did not write code to mimic them with the current GTK.

The dialog displays Title, Author, Location, Source, Date Modified, Date Created, and Source. The Title metadata is editable for local documents, but not for remote documents. Likewise, Source displays a directory address for local documents, and otherwise displays the name of the remote location.

Currently, the edited title is written back to the database as the user types.

This coming week I plan to clean up the code a bit and start on my second task, which is writing a dialog which allows users to share documents via Google Docs, email clients, and (hopefully) SkyDrive.

I am hoping to complete the Sharing dialog before GUADEC so I can get feedback and spend the last month of my GSoC refining the implementation.

Tuesday, June 12, 2012

Thanks to the Foundation for Sponsoring Me...

I will be in A Coruna for the UX Hackfest and GUADEC. Hope to see everyone there :)

Saturday, June 9, 2012

GSoC Report #2

I spent the last week writing my first prototype for the properties dialog for  Documents. I decided to write the code in three steps: (1) to write the code to query Tracker for the metadata and display such information to the user; (2) to write the dialog code in gtk so that it followed the Design Team's proposed pattern for properties dialogs; and (3) to write the code which will allow in place editing of the metadata by writing new data back to Tracker (insert text by simply typing it...).

My learning curve has been somewhat steep. Last weekend I sent my mentor, Cosimo Cecchi, an email asking if I should be using an IDE (it seemed unlikely that there was an IDE that I could use for SPARQL, GJS, and GTK, but I thought that I might be using the terminal and Gedit out of ignorance)...Cosimo recommended Emacs. So there you have it; apparently what I was doing was basically logical...only now I am learning to use Emacs :/ Sometimes I am tempted to just try to insert break points somewhere, anywhere, out of sheer desperation :)

I really like programming using the terminal and JHBuild (though I find JHBuild to be really cryptic and frustrating at times). Stripping away the layers that an IDE adds makes the debugging process a bit harder but very interesting: today I got an error while trying to update my build, and Cosimo suggested that I look at a pkgconfig file ( /opt/gnome/lib/pkgconfig/gobject-introspection-1.0.pc) to find out what version of the module I had. During the past few months I have read a lot of JHBuild errors telling me to adjust my pkgconfig path environmental variable, so I was pleased to finally discover what role pkgconfig actually plays in my system and how I can hack it :) haha.

Climbing the steep part of the learning curve is frustrating at times and slower than I would like! I have completed step one of my dialog and I am in the process of testing it so that it works with new code that has been added to Documents in the past few weeks. Next week I will finish testing and work on style, and the third week I will complete my last step.