akonadi
itemmovejob.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "itemmovejob.h"
00021
00022 #include "collection.h"
00023 #include "item.h"
00024 #include "job_p.h"
00025 #include "protocolhelper_p.h"
00026
00027 using namespace Akonadi;
00028
00029 class Akonadi::ItemMoveJobPrivate: public JobPrivate
00030 {
00031 public:
00032 ItemMoveJobPrivate( ItemMoveJob *parent )
00033 : JobPrivate( parent )
00034 {
00035 }
00036
00037 Collection mTarget;
00038 Item::List mItems;
00039 };
00040
00041 ItemMoveJob::ItemMoveJob(const Item & item, const Collection & target, QObject * parent) :
00042 Job( new ItemMoveJobPrivate( this ), parent )
00043 {
00044 Q_D( ItemMoveJob );
00045 d->mTarget = target;
00046 d->mItems << item;
00047 }
00048
00049 ItemMoveJob::ItemMoveJob( const Item::List& items, const Collection& target, QObject* parent) :
00050 Job( new ItemMoveJobPrivate( this ), parent )
00051 {
00052 Q_D( ItemMoveJob );
00053 d->mTarget = target;
00054 d->mItems = items;
00055 }
00056
00057 ItemMoveJob::~ ItemMoveJob()
00058 {
00059 }
00060
00061 void ItemMoveJob::doStart()
00062 {
00063 Q_D( ItemMoveJob );
00064 QByteArray command = d->newTag();
00065 try {
00066 command += ProtocolHelper::itemSetToByteArray( d->mItems, "MOVE" );
00067 } catch ( const std::exception &e ) {
00068 setError( Unknown );
00069 setErrorText( QString::fromUtf8( e.what() ) );
00070 emitResult();
00071 return;
00072 }
00073 command += ' ';
00074 command += QByteArray::number( d->mTarget.id() );
00075 command += '\n';
00076 d->writeData( command );
00077 }
00078
00079 #include "itemmovejob.moc"