00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef MOVETOTRASHCOMMAND_H
00022 #define MOVETOTRASHCOMMAND_H
00023
00024 #include "commandbase_p.h"
00025
00026 #include <akonadi/collection.h>
00027 #include <akonadi/item.h>
00028
00029 #include <QList>
00030
00031 class QAbstractItemModel;
00032 class KJob;
00033 class MoveToTrashCommand : public CommandBase
00034 {
00035 Q_OBJECT
00036 public:
00037 MoveToTrashCommand( const QAbstractItemModel* model, const QList< Akonadi::Item >& msgList, QObject* parent = 0 );
00038 MoveToTrashCommand( const QAbstractItemModel* model, const Akonadi::Collection::List& folders, QObject* parent = 0 );
00039
00040 void execute();
00041
00042 private Q_SLOTS:
00043 void slotFetchDone( KJob* job );
00044 void slotMoveDone( const Result &result);
00045
00046 private:
00047 void moveMessages();
00048 Akonadi::Collection trashCollectionFromResource( const Akonadi::Collection & col );
00049 Akonadi::Collection trashCollectionFolder();
00050 Akonadi::Collection findTrashFolder( const Akonadi::Collection& folder );
00051 Akonadi::Collection collectionFromId(const Akonadi::Collection::Id& id) const;
00052
00053 Akonadi::Collection::List mFolders;
00054 QList<Akonadi::Item> mMessages;
00055 Akonadi::Collection::Id the_trashCollectionFolder;
00056 const QAbstractItemModel* mModel;
00057 int mFolderListJobCount;
00058 };
00059
00060 #endif // MOVETOTRASHCOMMAND_H