On Saturday, 2013-06-29, Pali Rohár wrote:

> > - Not sure whether you need to #include <QPointer>; perhaps a
> > forward declaration is enough (haven't checked, might be
> > wrong)
> 
> This will not work, because in class is full QPointer object -
> not pointer or reference.

Could still be possible to forward declare, I think you would only need to add 
a non-inline destructor to the class that has the QPointer member.

> > - While common in the existing desktop software, I don't find
> > "Default Trojita Addressbook" to be meaningful description.
> > As a user, I'd like to know that it's accessing an
> > abook-formatted file which can be shared with mutt, not that
> > it happens to be used by trojita by default.
> 
> Ok.

Also name() and description() should probably be marked for translation.

Some other suggestions:

- Since you are discarding the error value, why not just have one signal that 
is emitted regardless of success or error?

- the start() methods of synchronous jobs should probably not emit signals, 
better use QMetaObject::invokeMethod() or a QTimer on a private slots to 
trigger the actual job code.
This way start() will always return before any result is delivered, making 
their behavior more like the ones really asynchronous jobs will have.

- Never ever delete an object in a slot called by the object's signals. Always 
use deleteLater()

- AbookAddressbook has lots of public API that is not in AddressbookInterface 
(e.g. model). 

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