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