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 TQString 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 TQPtrList<KMMessage>& msgList, const TQString& 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 TQPtrList<KMMessage>
00123 FolderJob::msgList() const
00124 {
00125 return mMsgList;
00126 }
00127
00128 }
00129
00130 #include "folderjob.moc"