Part of the KDE PIM group is meeting over this weekend in Barcelona in the spacious BlueSystems offices, hacking on all sorts of things. Me and David Edmundson took the oportunity to do some super huge changes to our KPeople library that are needed and as the library is in its dawn, it's better to do it sooner than later. These are all internal and boring changes, but one of the changes we've been working on here is really cool and worth mentioning.
Contact details editing
One of the most requested features in KDE Telepathy is a way to rename a contact, especially a metacontact. Since we're now using KPeople to power our contact list, implementing this has become a lot easier. So we devised a plan, spend some time implementing it and voila, we now have a way to rename contacts in KPeople (and thus in KTp) but also a way to store any arbitrary data for a contact.
The boring stuff. Back in the days we were always using directly the contacts coming from Telepathy, so any change in the contact's name would have to be sent back to the server and then synced back, which obviously presents a problem for read-only networks. With KPeople we've created new data layer where the Telepathy contacts is just one of the backends. Thanks to this architecture we can modify the data locally in the KPeople layer and then just provide a way to prefer the local changes over the backend data when displaying things to the user. This data is all stored in Akonadi in a special resource with a special collection. You don't have to do anything for this to work, it's all set up behind the scenes the first time it's used.
This work layed the foundation for full local contacts editing which will come later as it's a bit more complex to get done properly in two days. But basically any custom data can now be stored with your contacts, including a timezone or gpg keys and then reused by any application using KPeople.
As all these changes add new APIs, we're aiming for KPeople 0.3 and KTp 0.9.
Good times ahead.