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 <qobject.h>
00025 #include <qvaluelist.h>
00026 #include <qptrlist.h>
00027
00028 #include <sys/types.h>
00029
00030 class QWidget;
00031 class KArchive;
00032 class KArchiveDirectory;
00033 class KArchiveFile;
00034 class KMFolder;
00035
00036 namespace KPIM
00037 {
00038 class ProgressItem;
00039 }
00040
00041 namespace KMail
00042 {
00043
00050 class ImportJob : public QObject
00051 {
00052 Q_OBJECT
00053
00054 public:
00055
00056 explicit ImportJob( QWidget *parentWidget = 0 );
00057 ~ImportJob();
00058 void start();
00059 void setFile( const KURL &archiveFile );
00060 void setRootFolder( KMFolder *rootFolder );
00061
00062 private slots:
00063
00064 void importNextMessage();
00065 void cancelJob();
00066
00067 private:
00068
00069 struct Folder
00070 {
00071 KMFolder *parent;
00072 const KArchiveDirectory *archiveDir;
00073 };
00074
00075 struct Messages
00076 {
00077 KMFolder *parent;
00078 QPtrList<KArchiveFile> files;
00079 };
00080
00081 void finish();
00082 void abort( const QString &errorMessage );
00083 void queueFolders();
00084 void importNextDirectory();
00085 KMFolder* createSubFolder( KMFolder *parent, const QString &folderName, mode_t permissions );
00086 KMFolder* getOrCreateSubFolder( KMFolder *parentFolder, const QString &subFolderName,
00087 mode_t subFolderPermissions );
00088 void enqueueMessages( const KArchiveDirectory *dir, KMFolder *folder );
00089
00090 KArchive *mArchive;
00091
00092
00093
00094 KMFolder *mRootFolder;
00095
00096 QWidget *mParentWidget;
00097 KURL mArchiveFile;
00098 int mNumberOfImportedMessages;
00099
00100
00101
00102 QValueList<Folder> mQueuedDirectories;
00103
00104
00105 QValueList<Messages> mQueuedMessages;
00106
00107
00108 KMFolder *mCurrentFolder;
00109
00110 KPIM::ProgressItem *mProgressItem;
00111 bool mAborted;
00112 };
00113
00114 }
00115
00116 #endif
|