Found some time this weekend to continue working on the contacts plasmoid and some basic functionality is now there. Kudos to the plasma team for the great API. The data engine now supports querying kopete, but is designed to support other contact backends in the future. Rumors say there’s going to be a nepomuk backend, and sooner or later a decibel backend should take care of the rest (including kopete).
Besides writing the kopete backend (and extending the kopete dbus api a bit for that), I focused on building the plasmoid itself in a generic way. Think of it as a table where each row represents a contact and each column some kind of information or a way to interact with a contact. Rows are each their own object (to ease a later integration of extenders), and cells (information or actions) are created by a factory. This makes integration of new content and customization of the look very easy. See this screenshot:
Both plasmoids shown are instances of the contacts plasmoid and just differ in the configuration settings, which allow you to alter the contacts “table” to your liking:
This works nice so far (it’s already possible to send messages from the input line shown in the first screenshot) and I plan to work on eye-candy (e.g. animations for changes) and more custom cells (like a clock showing a contact’s local time, plasma is all about clocks after all 😉 ) next.
More interesting things will likely happen around akademy, stay tuned
Disclaimer: The code is not yet available in KDE SVN.
On a totally unrelated sidenote, dynamic playlists in amarok 2 rock!