kmail
importjob.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef IMPORTJOB_H
00020 #define IMPORTJOB_H
00021
00022 #include <kurl.h>
00023
00024 #include <tqobject.h>
00025 #include <tqvaluelist.h>
00026 #include <tqptrlist.h>
00027
00028 #include <sys/types.h>
00029
00030 class TQWidget;
00031 class KArchive;
00032 class KArchiveDirectory;
00033 class KArchiveFile;
00034 class KMFolder;
00035 class KMMessage;
00036
00037 namespace KPIM
00038 {
00039 class ProgressItem;
00040 }
00041
00042 namespace KMail
00043 {
00044 class FolderJob;
00045
00052 class ImportJob : public TQObject
00053 {
00054 Q_OBJECT
00055 TQ_OBJECT
00056
00057 public:
00058
00059 explicit ImportJob( TQWidget *parentWidget = 0 );
00060 ~ImportJob();
00061 void start();
00062 void setFile( const KURL &archiveFile );
00063 void setRootFolder( KMFolder *rootFolder );
00064
00065 private slots:
00066
00067 void importNextMessage();
00068 void cancelJob();
00069 void messagePutResult( KMail::FolderJob *job );
00070
00071 private:
00072
00073 struct Folder
00074 {
00075 KMFolder *parent;
00076 const KArchiveDirectory *archiveDir;
00077 };
00078
00079 struct Messages
00080 {
00081 KMFolder *parent;
00082 TQPtrList<KArchiveFile> files;
00083 };
00084
00085 void finish();
00086 void abort( const TQString &errorMessage );
00087 void queueFolders();
00088 void importNextDirectory();
00089 KMFolder* createSubFolder( KMFolder *parent, const TQString &folderName, mode_t permissions );
00090 KMFolder* getOrCreateSubFolder( KMFolder *parentFolder, const TQString &subFolderName,
00091 mode_t subFolderPermissions );
00092 void enqueueMessages( const KArchiveDirectory *dir, KMFolder *folder );
00093 void messageAdded();
00094
00095 KArchive *mArchive;
00096
00097
00098
00099 KMFolder *mRootFolder;
00100
00101 TQWidget *mParentWidget;
00102 KURL mArchiveFile;
00103 int mNumberOfImportedMessages;
00104
00105
00106
00107 TQValueList<Folder> mQueuedDirectories;
00108
00109
00110 TQValueList<Messages> mQueuedMessages;
00111
00112
00113 KMFolder *mCurrentFolder;
00114
00115
00116 KMMessage *mCurrentMessage;
00117
00118
00119 KArchiveFile *mCurrentMessageFile;
00120
00121 KPIM::ProgressItem *mProgressItem;
00122 bool mAborted;
00123 };
00124
00125 }
00126
00127 #endif
|