Review Request: Add Telepathy capabilities to tp-contactlist, and enable removing/adding contacts from/to a group

Dario Freddi drf54321 at gmail.com
Mon Mar 29 20:36:57 CEST 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/3415/
-----------------------------------------------------------

(Updated 2010-03-29 18:36:57.182536)


Review request for telepathy and George Goldberg.


Changes
-------

Yet another big phat change to this patch. This time I reworked the patch and the API to be based upon KJob. This adds a lot of nice things like:

 - Modular code, a lot more maintainable
 - The user has no longer to deal with any part of Tp-Qt4 library (it looked quite stupid to draw just Tp::PendingOperation from it)
 - Error handling is now implemented through KJob

Implementation of adding and removing contacts to/from a group is already 100% working. In mainwidget I used an eventloop to check for the job result, but again this is just a proof of concept to demostrate that everything works.

Small caveat: the error code returned by the KJobs lies in an enum in TelepathyBridge. I did it this way because I'd like to keep TelepathyBaseJobs & reimplementations private, it would be stupid to make TelepathyBaseJob public just for an enum.


Summary
-------

This patch adds two new classes (already ready to be librarized) for creating a Nepomuk->Telepathy bridge, making it very easy to retrieve Telepathy objects out of Nepomuk resources. Performance overhead looks trascurable.

By using this new class, contactlist is now able to add/remove people from a group.

Error handling is still missing, but I wanted an heads up before I go on and implement all the rest.

Also, how are we going to handle metacontacts in this particular regard? My take is to move/remove all contacts to/out of a group, and eventually creating a group for those accounts who still don't have a group named as such in case of addition.

Beware: until t-i-d will be able to catch these changes and update nepomuk accordingly, this is probably going to screw up your nepomuk DB when moving contacts around groups.


Diffs (updated)
-----

  /trunk/playground/network/telepathy-contactlist/CMakeLists.txt 1107773 
  /trunk/playground/network/telepathy-contactlist/add-contacts-to-group-job.h PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/add-contacts-to-group-job.cpp PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/contact-item.h 1107996 
  /trunk/playground/network/telepathy-contactlist/contact-item.cpp 1107996 
  /trunk/playground/network/telepathy-contactlist/main-widget.h 1107996 
  /trunk/playground/network/telepathy-contactlist/main-widget.cpp 1107996 
  /trunk/playground/network/telepathy-contactlist/main-widget.ui 1107667 
  /trunk/playground/network/telepathy-contactlist/meta-contact-item.h 1107996 
  /trunk/playground/network/telepathy-contactlist/meta-contact-item.cpp 1107996 
  /trunk/playground/network/telepathy-contactlist/remove-contacts-from-group-job.h PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/remove-contacts-from-group-job.cpp PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/telepathy-account-proxy.h PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/telepathy-account-proxy.cpp PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/telepathy-base-job.h PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/telepathy-base-job.cpp PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/telepathy-base-job_p.h PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/telepathy-bridge.h PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/telepathy-bridge.cpp PRE-CREATION 
  /trunk/playground/network/telepathy-contactlist/telepathy-bridge_p.h PRE-CREATION 

Diff: http://reviewboard.kde.org/r/3415/diff


Testing
-------

Works, empathy recognizes the changes correctly.


Thanks,

Dario



More information about the KDE-Telepathy mailing list