copyfolderjob.h
00001 00028 #ifndef COPYFOLDERJOB_H 00029 #define COPYFOLDERJOB_H 00030 00031 #include "folderjob.h" 00032 00033 class FolderStorage; 00034 class KMFolderDir; 00035 class KMFolder; 00036 class KMCommand; 00037 00038 class KMFolderNode; 00039 00040 namespace KMail { 00041 00048 class CopyFolderJob : public FolderJob 00049 { 00050 Q_OBJECT 00051 public: 00057 CopyFolderJob( const FolderStorage* const storage, KMFolderDir* const newParent = 0 ); 00058 00059 virtual ~CopyFolderJob(); 00060 00061 virtual void execute(); 00062 00063 protected slots: 00064 00066 bool createTargetDir(); 00067 00069 void copyMessagesToTargetDir(); 00070 00073 void slotCopyCompleted( KMCommand *command ); 00074 00077 void slotCopyNextChild( bool success = true ); 00078 00082 void rollback(); 00083 00084 signals: 00086 void folderCopyComplete( bool success ); 00087 00088 protected: 00089 const FolderStorage* const mStorage; 00090 KMFolderDir* const mNewParent; 00091 KMFolder* mNewFolder; 00092 QPtrListIterator<KMFolderNode> mChildFolderNodeIterator; 00093 KMFolder* mNextChildFolder; 00094 }; 00095 00096 } // namespace KMail 00097 00098 #endif /* COPYFOLDERJOB_H */