kmail

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   TQ_OBJECT
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 */