Leaving the mockup phase

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!

6 Replies to “Leaving the mockup phase”

  1. cool; some thoughts:

    it should automatically collapse down to the a “one line” display when put into a Horizontal or Vertical FormFactor (with a popup listing showing all the lines?)

    if kopete has a mimetype for drag and drop of contacts, it would be good to associate this plasmoid with that content type (done vai the .desktop file) so that dropping a kopete contact would result in a new contact plasmoid for that person!

    can’t wait to see this in svn, btw.

  2. A Nepomuk backend…hmmm.

    So, in theory does this mean that user info for contacts will automatically be able to be fetched through Nepomuk? So, in theory:
    -A contact in my contacts book in Kontact uses AIM.
    -I have his AIM added on Kopete.
    -Instead of just displaying his avatar on this plasmoid’s “Login” notification, it could show his contact photo.
    -His information from the contact book would be on his profile card in Kopete.
    -The notification plasmoid could show whatever information you want from them, and the contact photo you have stored.

    Am I correct on this concept of how the underlying technology could work?

    If so…amazing.

  3. Excellent work!
    As Sean said, if this works as expected, KDE4 would be a truly integrated social platform, which is revolutionary in many ways!
    For every posts in the planet I read, I’m a little bit more convinced that KDE4 is THE future.

    Keep up the good work 🙂

  4. Really great job, man!

    You’re awesome, and Plasma is awesome to make it possible to do this stuff so quickly. Good stuff!

Comments are closed.