General observation first:

this is a synchronous interface.

KDE's data access API for example is asynchronous, so in order to make this 
truely synchronous you will have to create a secondard thread that works with 
the asynchronous API and block the calling thread until the secondary thread 
has finished.

On Tuesday, 2013-06-18, Pali Rohár wrote:
>     /** @short Returns a list of matching contacts in the form "[Name
> <]a...@mail.com[>]" *

The classs should probably have a static method for formatting name + address 
to avoid having to re-implement that in every implementation of the interface.
Unless of course you already have such a helper function somewhere :)

> virtual QStringList complete(const QString &string, const QStringList
> &ignores, int max = -1) const = 0;

"string" is a bad argument name in C++ since there is std::string. If anyone 
ever write something like
using namespace std;
before including this header, then "string" will become a type.

Not likely in a Qt context, but not impossible.
I would suggest "input" instead.

>     virtual void openAddressbookWindow() const = 0;

>     virtual void openEditContactWindow(const QString
> &mail = QString(), const QString &name = QString()) const = 0;

In case these two are intended to be slots I would discard the const.

Cheers,
Kevin
-- 
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to