00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "movecommand_p.h"
00022 #include "util_p.h"
00023
00024 #include <akonadi/itemmovejob.h>
00025 #include <akonadi/itemdeletejob.h>
00026
00027 MoveCommand::MoveCommand( const Akonadi::Collection& destFolder,
00028 const QList<Akonadi::Item> &msgList,
00029 QObject *parent
00030 ) : CommandBase( parent )
00031 {
00032 mDestFolder = destFolder;
00033 mMessages = msgList;
00034 }
00035
00036 void MoveCommand::execute()
00037 {
00038 if ( mMessages.isEmpty() )
00039 emitResult( OK );
00040 if ( mDestFolder.isValid() ) {
00041 Akonadi::ItemMoveJob *job = new Akonadi::ItemMoveJob( mMessages, mDestFolder, this );
00042 connect( job, SIGNAL(result(KJob*)), this, SLOT(slotMoveResult(KJob*)) );
00043 }
00044 else {
00045 Akonadi::ItemDeleteJob *job = new Akonadi::ItemDeleteJob( mMessages, this );
00046 connect( job, SIGNAL( result( KJob* ) ), this, SLOT( slotMoveResult( KJob* ) ) );
00047 }
00048 }
00049
00050 void MoveCommand::slotMoveResult(KJob* job)
00051 {
00052 if ( job->error() ) {
00053
00054 Util::showJobError(job);
00055 emitResult( Failed );
00056 }
00057 else
00058 emitResult( OK );
00059 }
00060
00061 #include "movecommand_p.moc"