kmail
folderjob.cppGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifdef HAVE_CONFIG_H
00031 #include <config.h>
00032 #endif
00033
00034 #include "folderjob.h"
00035
00036 #include "kmfolder.h"
00037 #include "globalsettings.h"
00038 #include "folderstorage.h"
00039
00040 #include <kdebug.h>
00041 #include <kio/global.h>
00042
00043 namespace KMail {
00044
00045
00046 FolderJob::FolderJob( KMMessage *msg, JobType jt, KMFolder* folder,
00047 QString partSpecifier )
00048 : mType( jt ), mSrcFolder( 0 ), mDestFolder( folder ), mPartSpecifier( partSpecifier ),
00049 mErrorCode( 0 ),
00050 mPassiveDestructor( false ), mStarted( false )
00051 {
00052 if ( msg ) {
00053 mMsgList.append(msg);
00054 mSets = msg->headerField("X-UID");
00055 }
00056 init();
00057 }
00058
00059
00060 FolderJob::FolderJob( const QPtrList<KMMessage>& msgList, const QString& sets,
00061 JobType jt, KMFolder *folder )
00062 : mMsgList( msgList ),mType( jt ),
00063 mSets( sets ), mSrcFolder( 0 ), mDestFolder( folder ),
00064 mErrorCode( 0 ),
00065 mPassiveDestructor( false ), mStarted( false )
00066 {
00067 init();
00068 }
00069
00070
00071 FolderJob::FolderJob( JobType jt )
00072 : mType( jt ),
00073 mErrorCode( 0 ),
00074 mPassiveDestructor( false ), mStarted( false )
00075 {
00076 init();
00077 }
00078
00079
00080 void FolderJob::init()
00081 {
00082 switch ( mType ) {
00083 case tListMessages:
00084 case tGetFolder:
00085 case tGetMessage:
00086 case tCheckUidValidity:
00087 mCancellable = true;
00088 break;
00089 default:
00090 mCancellable = false;
00091 }
00092 }
00093
00094
00095 FolderJob::~FolderJob()
00096 {
00097 if( !mPassiveDestructor ) {
00098 emit result( this );
00099 emit finished();
00100 }
00101 }
00102
00103
00104 void
00105 FolderJob::start()
00106 {
00107 if (!mStarted)
00108 {
00109 mStarted = true;
00110 execute();
00111 }
00112 }
00113
00114
00115 void FolderJob::kill()
00116 {
00117 mErrorCode = KIO::ERR_USER_CANCELED;
00118 delete this;
00119 }
00120
00121
00122 QPtrList<KMMessage>
00123 FolderJob::msgList() const
00124 {
00125 return mMsgList;
00126 }
00127
00128 }
00129
00130 #include "folderjob.moc"
|