00001
00028 #ifndef COPYFOLDERJOB_H
00029 #define COPYFOLDERJOB_H
00030
00031 #include "folderjob.h"
00032
00033 #include <tqguardedptr.h>
00034
00035 class FolderStorage;
00036 class KMFolderDir;
00037 class KMFolder;
00038 class KMCommand;
00039
00040 class KMFolderNode;
00041
00042 namespace KMail {
00043
00050 class CopyFolderJob : public FolderJob
00051 {
00052 Q_OBJECT
00053
00054 public:
00060 CopyFolderJob( FolderStorage* const storage, KMFolderDir* const newParent = 0 );
00061
00062 virtual ~CopyFolderJob();
00063
00064 virtual void execute();
00065
00069 KMFolder* targetFolder() const { return mNewFolder; }
00070
00071 protected slots:
00072
00074 bool createTargetDir();
00075
00077 void copyMessagesToTargetDir();
00078
00081 void slotCopyCompleted( KMCommand *command );
00082
00085 void slotCopyNextChild( bool success = true );
00086
00090 void rollback();
00091
00095 void folderCreationDone( const TQString &name, bool success );
00096
00097 signals:
00099 void folderCopyComplete( bool success );
00100
00101 protected:
00102 TQGuardedPtr<FolderStorage> const mStorage;
00103 KMFolderDir* const mNewParent;
00104 TQGuardedPtr<KMFolder> mNewFolder;
00105 TQPtrListIterator<KMFolderNode> mChildFolderNodeIterator;
00106 KMFolder* mNextChildFolder;
00107 };
00108
00109 }
00110
00111 #endif