KTp/libkpeople: Difference between revisions
Akreuzkamp (talk | contribs) fix link to libkpeople on projects.kde.org |
|||
(53 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
== | ==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/kpeople) | |||
Reinstall KTp, and you have metacontacts everywhere. | |||
You may also want to install PersonViewer a tool to view all contact information from all sources (http://quickgit.kde.org/?p=person-viewer.git) | |||
==Tasks== | |||
=== libkpeople=== | |||
{| class="sortable" border="1" cellpadding="4" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;" | {| class="sortable" border="1" cellpadding="4" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;" | ||
|- style="background: #ececec; white-space:nowrap;" | |- style="background: #ececec; white-space:nowrap;" | ||
! Status !! Summary !! Notes || Claimed By | ! Status !! Summary !! Notes || Claimed By | ||
{{ | {{FeatureProjectDone | ||
| Add KPeople namespace | | Add KPeople namespace | ||
| | | 3 votes to 1 on kpeople vs people | ||
| | | David | ||
}} | |||
{{FeatureProjectDone | |||
| Update Roles as per discussion | |||
| | |||
|MCK182 | |||
}} | }} | ||
{{ | {{FeatureProjectDone | ||
| Restore updates on presence change | | Restore updates on presence change | ||
|https://git.reviewboard.kde.org/r/110801/ | |||
|Dave | |||
}} | |||
{{FeatureProjectDone | |||
| Remove unused / commented out code | |||
| | | | ||
|Dave | |||
}} | |||
{{FeatureProjectDone | |||
| Add dialog for finding duplicates | |||
| | | | ||
|franck | |||
}} | }} | ||
{{ | {{FeatureProjectDone | ||
| | | Add Dialog to view PersonData | ||
| (see PersonViewer) in mck182 scratch | |||
}} | |||
{{FeatureProjectInProgress | |||
| Add widget to PersonViewer to view associated websites | |||
| | | | ||
| | | | ||
}} | }} | ||
{{FeatureProjectTodo | {{FeatureProjectTodo | ||
| | |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) | ||
| | | | ||
}} | }} | ||
{{ | {{FeatureProjectDone | ||
| | |Rename examples | ||
| | | | ||
| | | Aleix Pol | ||
}} | |||
{{FeatureProjectInProgress | |||
|Fix tests | |||
| PersonData 80% done. PersonsModel to do | |||
}} | |||
{{FeatureProjectDone | |||
|Cache sub-resources in PersonsData | |||
| Vishesh to implement in Nepomuk Core | |||
| vhanda | |||
}} | }} | ||
|} | |} | ||
==PIM Demos== | ===PIM Demos=== | ||
{| class="sortable" border="1" cellpadding="4" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;" | {| class="sortable" border="1" cellpadding="4" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;" | ||
|- style="background: #ececec; white-space:nowrap;" | |- style="background: #ececec; white-space:nowrap;" | ||
Line 38: | Line 86: | ||
|} | |} | ||
== KTp Stuff == | === KTp Stuff === | ||
{| class="sortable" border="1" cellpadding="4" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;" | {| class="sortable" border="1" cellpadding="4" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;" | ||
|- style="background: #ececec; white-space:nowrap;" | |- style="background: #ececec; white-space:nowrap;" | ||
! Status !! Summary !! Notes || Claimed By | ! Status !! Summary !! Notes || Claimed By | ||
{{ | {{FeatureProjectDone | ||
| Move KTp plugins to k-ci-i | | Move KTp plugins to k-ci-i | ||
| | |||
| | |||
}} | |||
{{FeatureProjectDone | |||
| Add method to KTp::ContactsModel runtime switch from libkpeople or not. | |||
| | | | ||
| | | | ||
Line 58: | Line 111: | ||
}} | }} | ||
{{FeatureProjectTodo | {{FeatureProjectTodo | ||
| KTp ContactFactory can get personData as a feature | | KTp ContactFactory can get personData as a feature on load, otherwise use Tp stuff. | ||
| | | | ||
| | | | ||
Line 64: | Line 117: | ||
{{FeatureProjectTodo | {{FeatureProjectTodo | ||
| Fix the singleton AccountManager problem | | 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 | | 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. | ||
| | | | ||
}} | }} | ||
{{FeatureProjectDone | |||
| Restore Grouping | |||
| | |||
|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 | |||
* PersonsModelFeature | |||
* 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. | |||
==Testing== | |||
See git://anongit.kde.org/scratch/mklapetek/PersonViewer for a generic "new addressbook" | |||
KTp has kpeople support merged as an optional dependency | |||
git://anongit.kde.org/scratch/vhanda/delete-pimo-people.git is a useful too for wiping all PIMO:Persons useful for testing merging repeatedly. |
Latest revision as of 16:18, 24 February 2015
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/kpeople)
Reinstall KTp, and you have metacontacts everywhere.
You may also want to install PersonViewer a tool to view all contact information from all sources (http://quickgit.kde.org/?p=person-viewer.git)
Tasks
libkpeople
Status | Summary | Notes | Claimed By |
---|---|---|---|
DONE | Add KPeople namespace | 3 votes to 1 on kpeople vs people | [mailto: David
< David >] |
DONE | 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 >] | |
DONE | Add dialog for finding duplicates | [mailto:franck
<franck >] | |
DONE | Add Dialog to view PersonData | (see PersonViewer) in mck182 scratch | [mailto:[email protected]
<[email protected] >] |
IN PROGRESS | 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 |
---|---|---|---|
DONE | Move KTp plugins to k-ci-i | ||
DONE | Add 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
- PersonsModelFeature
- 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.
Testing
See git://anongit.kde.org/scratch/mklapetek/PersonViewer for a generic "new addressbook" KTp has kpeople support merged as an optional dependency
git://anongit.kde.org/scratch/vhanda/delete-pimo-people.git is a useful too for wiping all PIMO:Persons useful for testing merging repeatedly.