KTp/libkpeople

From KDE Community Wiki

About

LibKPeople is a contact aggregation library for KDE.

It is *not* a KTp specific library, we are simply the first adopters as well as the developers so the wiki page is here for the time being. This page is about the libkpeople changes needed to make a release of KTp with libkpeople support.

Big discussions about libkpeople should CC the pim mailing list.

Setting up

Install libkpeople (https://projects.kde.org/projects/playground/network/libkpeople) Install ktp-nepomuk-service (https://projects.kde.org/projects/playground/network/telepathy/ktp-nepomuk-service)

start the nepomuk service either by logging out/in or by running "nepomukservicestub nepomuktelepathyservice"

Install and run ktp-contactlist branch mklapetek/kpeople

You may also want to install PersonViewer a tool to view all contact information from all sources (http://quickgit.kde.org/?p=scratch%2Fmklapetek%2FPersonViewer.git)

Tasks

libkpeople

Status Summary Notes Claimed By
TODO Add KPeople namespace 3 votes to 1 on kpeople vs people
IN PROGRESS Update Roles as per discussion [mailto:MCK182
 <MCK182

>]

DONE Restore updates on presence change https://git.reviewboard.kde.org/r/110801/ [mailto:Dave
 <Dave

>]

DONE Remove unused / commented out code [mailto:Dave
 <Dave

>]

IN PROGRESS Add dialog for finding duplicates [mailto:franck
 <franck

>]

DONE Add Dialog to view PersonData (see PersonViewer) in mck182 scratch [mailto:[email protected]
 <[email protected]

>]

TODO Add widget to PersonViewer to view associated websites
TODO Port away from QStandardItemModel It's slow and won't be accepted by PIM. PersonItem and ContactItem are fine, we just need to just not inherit from QStandardItem and do model stuff ourselves (apparently)
DONE Rename examples [mailto: Aleix Pol
 < Aleix Pol

>]

IN PROGRESS Fix tests PersonData 80% done. PersonsModel to do [mailto:[email protected]
 <[email protected]

>]

DONE Cache sub-resources in PersonsData Vishesh to implement in Nepomuk Core [mailto: vhanda
 < vhanda

>]

PIM Demos

Status Summary Notes Claimed By

KTp Stuff

Status Summary Notes Claimed By
TODO Move KTp plugins to k-ci-i
TODO Add PersonData method to KTp::ContactsModel runtime switch from libkpeople or not.
TODO Add PersonData method to KTp::Contact
TODO KTp Contact has helper methods to get name + avatar for person
TODO KTp ContactFactory can get personData as a feature on load, otherwise use Tp stuff.
TODO Fix the singleton AccountManager problem I don't know how many times I've shouted at people about the problem with using AM as a singleton.. and now we've done it in libkpeople. Brilliant.
DONE Restore Grouping [mailto:David
 <David

>]


Public API Review

Below are a list of issues, please resolve (either by fixing or discussing) then remove from this list

The list of public classes are:

  • PersonsModel
  • AbstractPersonsPlugin
  • BasePersonsDataSource
  • DuplicatesFinder
  • Match
  • MatchesSolver
  • PersonActionsModel
  • PersonsPluginManager
  • PersonData

Anything else in the main lib is private and thus I don't care.

PersonsModel

Why is addContactsToPerson async but removeContactsFromPerson syncronous?

I /think/ if you call removeContactsFromPerson that contact is now not in the model, not inserted as a contact anywhere.