Here is new version of addressbook interface: #ifndef ADDRESSBOOK_INTERFACE #define ADDRESSBOOK_INTERFACE
#include <QObject> #include <QStringList> #include <QtPlugin> class AddressbookInterface : public QObject { Q_OBJECT public: AddressbookInterface(QObject *parent) : QObject(parent) {} public slots: /** * @short Request a list of matching contacts in the form "[Name <]a...@mail.com[>]" and emit signal @see completionAvailable when finish * @p input is input string * @p ignores is list of strings which are NOT included in result * @p max is the demanded maximum reply length, negative value means "uncapped" **/ virtual void requestComplete(const QString &input, const QStringList &ignores = QStringList(), int max = -1) = 0; /** * @short Request a list of display names matching the given e-mail address and emit signal @see prettyNamesForAddressAvailable when finish * @p email is e-mail address **/ virtual void requestPrettyNamesForAddress(const QString &email) = 0; /** * @short Open window for addressbook manager **/ virtual void openAddressbookWindow() = 0; /** * @short Open window for edit contact * first try to match contact by email, then by name * if contact not exist, open window for adding new contact and fill name and email strings **/ virtual void openEditContactWindow(const QString &email, const QString &name) = 0; signals: /** * @short Emitted when @see requestComplete finish **/ void completionAvailable(const QString &input, const QStringList &list); /** * @short Emitted when @see requestPrettyNamesForAddress finish **/ void prettyNamesForAddressAvailable(const QString &email, const QStringList &displayNames); }; class AddressbookFactoryInterface { public: /** * @short Return name of plugin **/ virtual QString name() = 0; /** * @short Return description of plugin **/ virtual QString description() = 0; /** * @short Return true if this plugin is valid and can be used (e.g this addressbook is installed and usable) **/ virtual bool isValid() = 0; /** * @short Return new AddressbookInterface instance implemented by plugin **/ virtual AddressbookInterface *create(QObject *parent) = 0; }; Q_DECLARE_INTERFACE(AddressbookFactoryInterface, "AddressbookFactoryInterface"); #endif //ADDRESSBOOK_INTERFACE -- Pali Rohár pali.ro...@gmail.com
signature.asc
Description: This is a digitally signed message part.