Jump to content

KTp/Components/Buddy List: Difference between revisions

From KDE Community Wiki
< KTp
add some braindump on how we use Nepomuk
Mck182 (talk | contribs)
new content will be here soon
Line 1: Line 1:
==Braindump==
== This wiki-page is a work in progress, check back soon! ==


* use nepomuk for displaying everything.
Here's how to get the current code up and running:


* Nepomuk meta-contacts
<code>git clone kde:clones/telepathy-contact-list/mklapetek/telepathy-contact-list-new telepathy-contact-list
cd telepathy-contact-list
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=debugfull
</code> Now if you're running 64bit system, use this cmake command: <code>
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=debugfull -DLIB_SUFFIX=64 .. </code>


== Code ==
After successfull cmake, do <code>make</code> then you can do <code>sudo make install</code> and run it by <code>telepathy_contactlist_prototype</code> or you can simply run it by typing <code>./telepathy_contactlist_prototype</code>
 
Skeleton Implementation, that displays a rough buddy list, but doesn't do much else can be found at:
 
svn://svn.kde.org/home/kde/trunk/playground/network/telepathy-contactlist
 
== Design ==
 
*[[Real-Time_Communication_and_Collaboration/Components/Integration_Daemon|telepathy-integration-daemon]] pushes contacts into nepomuk and keeps them in sync with the servers through telepathy. It will get all contacts and their details when you initially connect to a account, and then it will (check periodically?) make sure that they stay up to date in nepomuk when they change on the server. It will also keep all contacts' presence set in nepomuk.
 
* buddy list is populated entirely from nepomuk. it only talks to Telepathy when requesting a channel to someone (ie you double click on them to chat or something). Even presence information comes from nepomuk. Metacontacts are also implemented in Nepomuk.
 
Why this way? Basically, we've tried every other possibility that we can think of (we being George and the Nepomuk folks mainly in this case) and all the other ideas fall apart at some point, whereas this one seems to be OK so far.
 
== How we Use Nepomuk ==
 
* Meta contacts are represented by a PIMO:Person
* Contacts are represented by a NCO:PersonContact
* PIMO:Person are only created when a user explicitly defines two NCO:PersonContacts to belong to the same Meta Contat.
* For NCO:PersonContacts without a PIMO:Person, the contact list UI generates a fake meta-contact with only one constituent child contact.
* Groups are treated like tags (no hierarchy). NCO:ContactGroup is used to represent them in Nepomuk.
* If a contact changes group on the server, if the meta contact it belongs to has all its subcontacts also in the same group, it is also moved. If only one of its subcontacts has moved group, leaving it with children in two or more groups, it stays in the original local group, and an overlay is displayed, which when clicked, allows the user to resolve the conflict in the various possible ways.
* Telepathy ontology (installed by telepathy-integration-daemon) is a temporary dumping ground for all extensions we need to the standard Nepomuk ontologies. Before we make any release, it should be reviewed by the Nepomuk developers and as much of possible of what it contains (ideally all of it) should be upstreamed to the Nepomuk ontologies.

Revision as of 18:17, 28 February 2011

This wiki-page is a work in progress, check back soon!

Here's how to get the current code up and running:

git clone kde:clones/telepathy-contact-list/mklapetek/telepathy-contact-list-new telepathy-contact-list cd telepathy-contact-list mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=debugfull Now if you're running 64bit system, use this cmake command: cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=debugfull -DLIB_SUFFIX=64 ..

After successfull cmake, do make then you can do sudo make install and run it by telepathy_contactlist_prototype or you can simply run it by typing ./telepathy_contactlist_prototype