kmail

folderjob.cpp
1 /*
2  *
3  * This file is part of KMail, the KDE mail client.
4  * Copyright (c) 2003 Zack Rusin <zack@kde.org>
5  *
6  * KMail is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License, version 2, as
8  * published by the Free Software Foundation.
9  *
10  * KMail is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  *
19  * In addition, as a special exception, the copyright holders give
20  * permission to link the code of this program with any edition of
21  * the TQt library by Trolltech AS, Norway (or with modified versions
22  * of TQt that use the same license as TQt), and distribute linked
23  * combinations including the two. You must obey the GNU General
24  * Public License in all respects for all of the code used other than
25  * TQt. If you modify this file, you may extend this exception to
26  * your version of the file, but you are not obligated to do so. If
27  * you do not wish to do so, delete this exception statement from
28  * your version.
29  */
30 #ifdef HAVE_CONFIG_H
31 #include <config.h>
32 #endif
33 
34 #include "folderjob.h"
35 
36 #include "kmfolder.h"
37 #include "globalsettings.h"
38 #include "folderstorage.h"
39 
40 #include <kdebug.h>
41 #include <tdeio/global.h>
42 
43 namespace KMail {
44 
45 //----------------------------------------------------------------------------
46 FolderJob::FolderJob( KMMessage *msg, JobType jt, KMFolder* folder,
47  TQString partSpecifier )
48  : mType( jt ), mSrcFolder( 0 ), mDestFolder( folder ), mPartSpecifier( partSpecifier ),
49  mErrorCode( 0 ),
50  mPassiveDestructor( false ), mStarted( false )
51 {
52  if ( msg ) {
53  mMsgList.append(msg);
54  mSets = msg->headerField("X-UID");
55  }
56  init();
57 }
58 
59 //----------------------------------------------------------------------------
60 FolderJob::FolderJob( const TQPtrList<KMMessage>& msgList, const TQString& sets,
61  JobType jt, KMFolder *folder )
62  : mMsgList( msgList ),mType( jt ),
63  mSets( sets ), mSrcFolder( 0 ), mDestFolder( folder ),
64  mErrorCode( 0 ),
65  mPassiveDestructor( false ), mStarted( false )
66 {
67  init();
68 }
69 
70 //----------------------------------------------------------------------------
71 FolderJob::FolderJob( JobType jt )
72  : mType( jt ),
73  mErrorCode( 0 ),
74  mPassiveDestructor( false ), mStarted( false )
75 {
76  init();
77 }
78 
79 //----------------------------------------------------------------------------
80 void FolderJob::init()
81 {
82  switch ( mType ) {
83  case tListMessages:
84  case tGetFolder:
85  case tGetMessage:
86  case tCheckUidValidity:
87  mCancellable = true;
88  break;
89  default:
90  mCancellable = false;
91  }
92 }
93 
94 //----------------------------------------------------------------------------
95 FolderJob::~FolderJob()
96 {
97  if( !mPassiveDestructor ) {
98  emit result( this );
99  emit finished();
100  }
101 }
102 
103 //----------------------------------------------------------------------------
104 void
105 FolderJob::start()
106 {
107  if (!mStarted)
108  {
109  mStarted = true;
110  execute();
111  }
112 }
113 
114 //----------------------------------------------------------------------------
115 void FolderJob::kill()
116 {
117  mErrorCode = TDEIO::ERR_USER_CANCELED;
118  delete this;
119 }
120 
121 //----------------------------------------------------------------------------
122 TQPtrList<KMMessage>
123 FolderJob::msgList() const
124 {
125  return mMsgList;
126 }
127 
128 }
129 
130 #include "folderjob.moc"
Mail folder.
Definition: kmfolder.h:69
This is a Mime Message.
Definition: kmmessage.h:68
TQString headerField(const TQCString &name) const
Returns the value of a header field with the given name.
Definition: kmmessage.cpp:2289
folderdiaquotatab.h
Definition: aboutdata.cpp:40