KTp/Components/Buddy List: Difference between revisions

From KDE Community Wiki
< KTp
(add some braindump on how we use Nepomuk)
m (Drdanz moved page Real-Time Communication and Collaboration/Components/Buddy List to KTp/Components/Buddy List: As discussed at IRC meeting Real-Time_Communication_and_Collaboration is too long, we are moving all our pages to KTp)
 
(41 intermediate revisions by 5 users not shown)
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: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-kde-contactlist</code> or you can simply run it from the build/ folder (without the make install part) by typing <code>./telepathy-kde-contactlist</code>


Skeleton Implementation, that displays a rough buddy list, but doesn't do much else can be found at:
== TODO: ==


svn://svn.kde.org/home/kde/trunk/playground/network/telepathy-contactlist
{| border="1"
 
! Status !! Task!! Developers
== Design ==
|- style="background: lime;"
 
| DONE || Dynamically add/remove accounts || Marty K. <martin dot klapetek at gmail dot com>
*[[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.
|- style="background: orange;"
 
| IN PROGRESS || Grouping model (also groupping by groups or by account) || Marty K <martin dot klapetek at gmail dot com>
* 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.
|- style="background: lime;"
 
| DONE || Sorting by name or presence || R Greinhofer <remy dot greinhofer at gmail dot com>
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.
|- style="background: lime;"
 
| DONE || Searching in CL || Marty K. <martin dot klapetek at gmail dot com>
== How we Use Nepomuk ==
|- style="background: orange;"
 
| IN PROGRESS || Display message icon with contact when the contact writes a message || D Edmundson <david at davidedmundson dot co dot uk>
* Meta contacts are represented by a PIMO:Person
|- style="background: lime;"
* Contacts are represented by a NCO:PersonContact
| DONE || Adding new contacts || D Edmundson <david at davidedmundson dot co dot uk>
* 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.
| NOT ASSIGNED || Make sure the contacts that just confirmed your "add request" shows up in the list || See mailing list thread add/remove contacts for details or ask D Edmundson
* Groups are treated like tags (no hierarchy). NCO:ContactGroup is used to represent them in Nepomuk.
|-style="background: lime;"
* 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.
| DONE || Remove Contacts || F Nwokeka <francesco dot nwokeka at gmail dot com>
* 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.
|-
| NOT ASSIGNED || Contacts with subscription state Ask should appear even when showOfflineUsers is unchecked  ||
|-
| NOT ASSIGNED || Refactor && clean the overlay buttons code ||
|- style="background: lime;"
| DONE || Show contact properties || Keith R. <xzekecomax at gmail dot com>
|- style="background: lime;"
| DONE || Add contact context menu || Keith R. <xzekecomax at gmail dot com>
|-
| NOT ASSIGNED || Way to set all accounts at once to some presence type ||
|- style="background: lime;"
| DONE || Setting a status message ||  Marty K. <martin dot klapetek at gmail dot com>
|-
| NOT ASSIGNED || Connect all error messages to the messageFrame ||
|-
| NOT ASSIGNED || Themeable status icons || (Low priority)
|-
| NOT ASSIGNED || Add some config options (and way to open the KCM modules) ||
|- style="background: lime;"
| DONE || Change the status in AccountButton when changed outside of CL || Marty K. <martin dot klapetek at gmail dot com>
|-
| NOT ASSIGNED || Change the icon in AccountButton when changed outside of CL ||  possibly fixed now...  
|-
|}

Latest revision as of 00:31, 10 November 2012

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: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-kde-contactlist or you can simply run it from the build/ folder (without the make install part) by typing ./telepathy-kde-contactlist

TODO:

Status Task Developers
DONE Dynamically add/remove accounts Marty K. <martin dot klapetek at gmail dot com>
IN PROGRESS Grouping model (also groupping by groups or by account) Marty K <martin dot klapetek at gmail dot com>
DONE Sorting by name or presence R Greinhofer <remy dot greinhofer at gmail dot com>
DONE Searching in CL Marty K. <martin dot klapetek at gmail dot com>
IN PROGRESS Display message icon with contact when the contact writes a message D Edmundson <david at davidedmundson dot co dot uk>
DONE Adding new contacts D Edmundson <david at davidedmundson dot co dot uk>
NOT ASSIGNED Make sure the contacts that just confirmed your "add request" shows up in the list See mailing list thread add/remove contacts for details or ask D Edmundson
DONE Remove Contacts F Nwokeka <francesco dot nwokeka at gmail dot com>
NOT ASSIGNED Contacts with subscription state Ask should appear even when showOfflineUsers is unchecked
NOT ASSIGNED Refactor && clean the overlay buttons code
DONE Show contact properties Keith R. <xzekecomax at gmail dot com>
DONE Add contact context menu Keith R. <xzekecomax at gmail dot com>
NOT ASSIGNED Way to set all accounts at once to some presence type
DONE Setting a status message Marty K. <martin dot klapetek at gmail dot com>
NOT ASSIGNED Connect all error messages to the messageFrame
NOT ASSIGNED Themeable status icons (Low priority)
NOT ASSIGNED Add some config options (and way to open the KCM modules)
DONE Change the status in AccountButton when changed outside of CL Marty K. <martin dot klapetek at gmail dot com>
NOT ASSIGNED Change the icon in AccountButton when changed outside of CL possibly fixed now...