20 #include "itemdeletejob.h"
22 #include "collection.h"
23 #include "collectionselectjob_p.h"
26 #include "protocolhelper_p.h"
28 #include <akonadi/private/imapparser_p.h>
29 #include <akonadi/private/imapset_p.h>
30 #include <akonadi/private/protocol_p.h>
34 using namespace Akonadi;
36 class Akonadi::ItemDeleteJobPrivate :
public JobPrivate
39 ItemDeleteJobPrivate( ItemDeleteJob *parent )
40 : JobPrivate( parent )
44 void selectResult( KJob *job );
46 Q_DECLARE_PUBLIC( ItemDeleteJob )
49 Collection mCollection;
52 void ItemDeleteJobPrivate::selectResult( KJob *job )
57 const QByteArray command = newTag() +
" " AKONADI_CMD_ITEMDELETE
" 1:*\n";
61 ItemDeleteJob::ItemDeleteJob(
const Item & item, QObject * parent )
62 : Job( new ItemDeleteJobPrivate( this ), parent )
69 ItemDeleteJob::ItemDeleteJob(
const Item::List& items, QObject* parent)
70 : Job( new ItemDeleteJobPrivate( this ), parent )
77 ItemDeleteJob::ItemDeleteJob(
const Collection& collection, QObject* parent)
78 : Job( new ItemDeleteJobPrivate( this ), parent )
82 d->mCollection = collection;
85 ItemDeleteJob::~ItemDeleteJob()
96 void ItemDeleteJob::doStart()
100 if ( !d->mItems.isEmpty() ) {
101 QByteArray command = d->newTag();
103 command += ProtocolHelper::entitySetToByteArray( d->mItems, AKONADI_CMD_ITEMDELETE );
104 }
catch (
const std::exception &e ) {
106 setErrorText( QString::fromUtf8( e.what() ) );
111 d->writeData( command );
114 connect( job, SIGNAL(result(KJob*)), SLOT(selectResult(KJob*)) );
119 #include "itemdeletejob.moc"