copyfolderjob.h
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 } // namespace KMail 00110 00111 #endif /* COPYFOLDERJOB_H */