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 #include <KLocale>
00027
00028 using namespace Akonadi;
00029
00030 class Akonadi::CollectionDeleteJobPrivate : public JobPrivate
00031 {
00032 public:
00033 CollectionDeleteJobPrivate( CollectionDeleteJob *parent )
00034 : JobPrivate( parent )
00035 {
00036 }
00037
00038 Collection mCollection;
00039 };
00040
00041 CollectionDeleteJob::CollectionDeleteJob(const Collection &collection, QObject * parent)
00042 : Job( new CollectionDeleteJobPrivate( this ), parent )
00043 {
00044 Q_D( CollectionDeleteJob );
00045
00046 d->mCollection = collection;
00047 }
00048
00049 CollectionDeleteJob::~CollectionDeleteJob()
00050 {
00051 }
00052
00053 void CollectionDeleteJob::doStart()
00054 {
00055 Q_D( CollectionDeleteJob );
00056
00057 if ( !d->mCollection.isValid() && d->mCollection.remoteId().isEmpty() ) {
00058 setError( Unknown );
00059 setErrorText( i18n("Invalid collection") );
00060 emitResult();
00061 return;
00062 }
00063
00064 if ( d->mCollection.isValid() )
00065 d->writeData( d->newTag() + " DELETE " + QByteArray::number( d->mCollection.id() ) + '\n' );
00066 else
00067 d->writeData( d->newTag() + " RID DELETE " + ImapParser::quote( d->mCollection.remoteId().toUtf8() ) + '\n' );
00068 }
00069
00070 #include "collectiondeletejob.moc"