Monday, July 9, 2012

GSoC Report #4: Sharing Documents

 I spent the last week of June re-reading and cleaning up my code for the properties dialog and also planning sharing. My mentor, Cosimo, and Jon McCann suggested that I launch a webkit gtk+ webview containing the sharing dialog provided by the respective applications (e.g. Google Drive, etc). This dialog is parented to the main window of Documents. The webview itself is modelled on the new Online Accounts "add an account" dialog in System Settings. I also stole a lot of code from the html renderer in Sushi.

The first week of this was actually kind of a debacle -- I ran into a lot of problems with JHBuild. I finally have a successful build of gnome-online-accounts and gnome-control-center, but I was surprised to learn that to run gnome-online-accounts I have to replace the process using $jhbuild /opt/gnome/libexec/goa-daemon --replace and then use jhbuild run gnome-control-center to use the current version of the program. Consequently, I've been working with lots of windows open -- a terminal running gnome-online-accounts and control-center, a terminal cd'd into checkout/gnome/gnome-documents that I use to make and run Documents so I can test my code, and then terminals and emacs windows containing the code I'm working on so I can type, save, and git commit. Today I was having trouble with my miners, so I ended up running those with ZPJ_MINER_PERSIST=1 /opt/gnome/libexec/gd-tracker-zpj-miner and GDATA_MINER_PERSIST=1 /opt/gnome/libexec/gd-tracker-gdata-miner. It's a bit of a coding menagerie around here :)

So at this point  I am done with my first version of the gtk code for the dialog. During my meeting with Cosimo today we came up with a tentative plan for showing the native sharing dialog for Google Drive. There is no publicly accessible link for showing the sharing dialog associated with a particular document, so I asked posted a question on Stack Overflow
asking for advice. Claudio Cherubino, one of the developers at Google, answered right away (awesome!) and directed me to the new Drive API, which includes a launcher and sharing dialog for apps. It might be tricky to use this, but I think the benefits will outweigh the difficulty. 

The last thing I've been working on is helping to plan an OpenHatch Python Workshop here in Chicago. Sheila Miguez (a local programmer and FOSS activist) and Aisha Halim (who organized Flourish! this year) asked me to join them in planning the event, which will be here in Chicago August 17 - 18 at Orbitz. If you want to help out, sign up for the mailing list :) I'll post more details when we have them. Hope to see you there!