I spent the weekend attending the Gnome Location Hack-fest hosted by Mozilla at their London Community Space. Don't worry, I haven't switched, it's just another example of Gnome and KDE quietly collaborating on the shared plumbing we need. Mozilla kindly hosted us in their fantastic community space as we share common infrastructure and goals with Location services which we need to work together to achieve, which led to some interesting discussions about data privacy, FirefoxOS, and the future of the web and desktop computing in general.
My main goal for the weekend was to add a new plugin to QtLocation to use GeoClue2, which involved me getting up to speed on the QtLocation code base, the GeoClue2 api, and on using QtDBus. Being in the same room as the GeoClue mainatainer +Zeeshan Ali
allowed me to get quick feedback on how GeoClue works internally, and to discuss some new api that Qt needs. The result is a 75% complete new plugin that should debut in the Qt 5.4 release, and an ongoing discussion on how GeoClue2 might add the features we need. All round, a win for KDE, Qt and Gnome.
Rather surprisingly, the existing QtLocation plugin for GeoClue1 actually links at compile time to a glib library which then uses dbus-glib to call GeoClue1. The Gypsy GPS plugin does the same. The new GeoClue2 plugin obviously does things the "right" way by using QtDBus to call GeoClue2 directly, and I'm considering adding new GeoClue1 and Gypsy plugins also using QtDBus so the choice of plugin to use become a runtime determination. I may also submit some patches to the QtDBus docs, they're a little unclear on how
to actually use it.