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
00042
namespace KMail {
00043
00044
00045 FolderJob::FolderJob( KMMessage *msg, JobType jt,
KMFolder* folder,
00046
QString partSpecifier )
00047 : mType( jt ), mSrcFolder( 0 ), mDestFolder( folder ), mPartSpecifier( partSpecifier ),
00048 mErrorCode( 0 ),
00049 mPassiveDestructor( false ), mStarted( false )
00050 {
00051
if ( msg ) {
00052 mMsgList.append(msg);
00053 mSets = msg->headerField(
"X-UID");
00054 }
00055 init();
00056 }
00057
00058
00059 FolderJob::FolderJob(
const QPtrList<KMMessage>& msgList,
const QString& sets,
00060 JobType jt,
KMFolder *folder )
00061 : mMsgList( msgList ),mType( jt ),
00062 mSets( sets ), mSrcFolder( 0 ), mDestFolder( folder ),
00063 mErrorCode( 0 ),
00064 mPassiveDestructor( false ), mStarted( false )
00065 {
00066 init();
00067 }
00068
00069
00070 FolderJob::FolderJob( JobType jt )
00071 : mType( jt ),
00072 mErrorCode( 0 ),
00073 mPassiveDestructor( false ), mStarted( false )
00074 {
00075 init();
00076 }
00077
00078
00079
void FolderJob::init()
00080 {
00081
switch ( mType ) {
00082
case tListMessages:
00083
case tGetFolder:
00084
case tGetMessage:
00085
case tCheckUidValidity:
00086 mCancellable =
true;
00087
break;
00088
default:
00089 mCancellable =
false;
00090 }
00091 }
00092
00093
00094 FolderJob::~FolderJob()
00095 {
00096
if( !mPassiveDestructor ) {
00097 emit result(
this );
00098 emit finished();
00099 }
00100 }
00101
00102
00103
void
00104 FolderJob::start()
00105 {
00106
if (!mStarted)
00107 {
00108 mStarted =
true;
00109 execute();
00110 }
00111 }
00112
00113
00114
void FolderJob::kill()
00115 {
00116
delete this;
00117 }
00118
00119
00120
QPtrList<KMMessage>
00121 FolderJob::msgList()
const
00122
{
00123
return mMsgList;
00124 }
00125
00126 }
00127
00128
#include "folderjob.moc"