akonadi
collectiondeletejob.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "collectiondeletejob.h"
00021
00022 #include "collection.h"
00023 #include "job_p.h"
00024
00025 #include <akonadi/private/imapparser_p.h>
00026
00027 using namespace Akonadi;
00028
00029 class Akonadi::CollectionDeleteJobPrivate : public JobPrivate
00030 {
00031 public:
00032 CollectionDeleteJobPrivate( CollectionDeleteJob *parent )
00033 : JobPrivate( parent )
00034 {
00035 }
00036
00037 Collection mCollection;
00038 };
00039
00040 CollectionDeleteJob::CollectionDeleteJob(const Collection &collection, QObject * parent)
00041 : Job( new CollectionDeleteJobPrivate( this ), parent )
00042 {
00043 Q_D( CollectionDeleteJob );
00044
00045 d->mCollection = collection;
00046 }
00047
00048 CollectionDeleteJob::~CollectionDeleteJob()
00049 {
00050 }
00051
00052 void CollectionDeleteJob::doStart()
00053 {
00054 Q_D( CollectionDeleteJob );
00055
00056 if ( !d->mCollection.isValid() && d->mCollection.remoteId().isEmpty() ) {
00057 setError( Unknown );
00058 setErrorText( QLatin1String("Invalid collection") );
00059 emitResult();
00060 return;
00061 }
00062
00063 if ( d->mCollection.isValid() )
00064 d->writeData( d->newTag() + " DELETE " + QByteArray::number( d->mCollection.id() ) + '\n' );
00065 else
00066 d->writeData( d->newTag() + " RID DELETE " + ImapParser::quote( d->mCollection.remoteId().toUtf8() ) + '\n' );
00067 }
00068
00069 #include "collectiondeletejob.moc"