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
43namespace KMail {
44
45//----------------------------------------------------------------------------
46FolderJob::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//----------------------------------------------------------------------------
60FolderJob::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//----------------------------------------------------------------------------
71FolderJob::FolderJob( JobType jt )
72 : mType( jt ),
73 mErrorCode( 0 ),
74 mPassiveDestructor( false ), mStarted( false )
75{
76 init();
77}
78
79//----------------------------------------------------------------------------
80void 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//----------------------------------------------------------------------------
95FolderJob::~FolderJob()
96{
97 if( !mPassiveDestructor ) {
98 emit result( this );
99 emit finished();
100 }
101}
102
103//----------------------------------------------------------------------------
104void
105FolderJob::start()
106{
107 if (!mStarted)
108 {
109 mStarted = true;
110 execute();
111 }
112}
113
114//----------------------------------------------------------------------------
115void FolderJob::kill()
116{
117 mErrorCode = TDEIO::ERR_USER_CANCELED;
118 delete this;
119}
120
121//----------------------------------------------------------------------------
122TQPtrList<KMMessage>
123FolderJob::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