Hello, I'm sending first version of qt plugin interface for Addressbook. I reused src/Gui/AbstractAddressbook.h and I think that Trojita GUI only needs additional functions for opening addressbook manager (now called from menu: IMAP --> Address Book) and function for opening add/edit window for new/existing contact (now called from button near "From" and "To" field in email). Because KAddressbook has own dialogs/windows, it is better to use native KDE application for KDE plugin.
And about interface for password storage, please look at my last email in
"Using QtKeychain" thread.
#ifndef ADDRESSBOOK_INTERFACE
#define ADDRESSBOOK_INTERFACE
#include <QtPlugin>
class QString;
class QStringList;
class AddressbookInterface {
public:
virtual ~AddressbookInterface() {}
/** @short Returns a list of matching contacts in the form "[Name
<][email protected][>]"
*
* - Matches are case INsensitive
* - The match aligns to either Name or [email protected], ie. "ja" or "jkt"
match
* "Jan Kundrát <[email protected]>" but "gentoo" does not
* - Strings in the ignore list are NOT included in the return, despite
they may match.
* - The return can be empty.
*
* - @p max defines the demanded maximum reply length
* It is intended to improve performance in the implementations
* If you reimplement this, please notice that the return can be longer,
but the client
* will not make use of that. Negative values mean "uncapped"
*/
// A maximum value is sufficient since typing "a" and getting a list with a
hundred entries which
// one will then navigate for the address unlikely a real use case - so
there's no point in presenting
// more than <place random number here> entries (or look them up, or
transmit them)
virtual QStringList complete(const QString &string, const QStringList
&ignores, int max = -1) const = 0;
/** @short Return a list of display names matching the given e-mail address
*/
virtual QStringList prettyNamesForAddress(const QString &mail) const = 0;
/** @short Open window for addressbook manager */
virtual void openAddressbookWindow() const = 0;
/** @short Open window for edit contact */
// first try to match contact by mail, then by name
// if contact not exist, open window for adding new contact and fill name
and mail strings
// empty mail and name strings means opening window for adding new contact
virtual void openEditContactWindow(const QString &mail = QString(), const
QString &name = QString()) const = 0;
};
Q_DECLARE_INTERFACE(AddressbookInterface, "AddressbookInterface");
#endif //ADDRESSBOOK_INTERFACE
--
Pali Rohár
[email protected]
signature.asc
Description: This is a digitally signed message part.
