The addressbook provided with KDE 1 was useful and provided enough features to please most users. The design of KAB 1 was, however, too simple to provide for features such as multiple addressbooks, remote addressbooks and filter plugins (for importing from other formats).
The design of KAB 2 is intended to make use of the advanced mechanisms provided by KDE 2. In the future it is hoped that access to kab2 may be provided via CORBA communication. This would give excellent network transparency while preserving a useful API.
KAB 2 will be a distributed system. A simple shared library will provide the API for applications. This library will know about the addressbooks that the user wishes to access. The library will contact the addressbooks upon startup and query them to discover whether they are usable at that time. Any usable addressbooks will appear in the user interface, and be accessible through the API.
Addressbooks will be communicated with via DCOP. A standard protocol will be used that provides a consistent interface and allows for accessing entities within each addressbook. This interface will not be visible to the user nor the application programmer as it will be hidden behind the API.
At any point in time, on user request, an addressbook object may attempt to import records from an unknown format. To accomplish this, it will attempt to load a 'filter' plugin. If the plugin is available for the format, and the data to be imported is available, the plugin will be asked to import all records from its data source. The plugin will then attempt to create records within the addressbook by reading its data source and constructing new records as best as it can.
The API documentation (in kdoc format) for libkab2 is available in kdoc or doxygen format.
A draft IDL for kab2 is available here (A pretty HTML version is here).
Responsibility | Name | Email address |
KAB 2 designer and coder | Rik Hemsley | rik@kde.org |
KAB 2 UI designer and coder | Don Sanders | dsanders@cch.com.au |
KAB 1 designer and coder | Mirko Sucker | mirko@kde.org |