kmail

bodyvisitor.h
1/*
2 *
3 * This file is part of KMail, the KDE mail client.
4 * Copyright (c) 2003 Carsten Burghardt <burghardt@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
31#ifndef bodyiterator_h
32#define bodyiterator_h
33
34#include <tqptrlist.h>
35#include <tqstringlist.h>
36
37class KMMessagePart;
38
39namespace KMail {
40
41 class AttachmentStrategy;
42
43 // Base class
44 class BodyVisitor
45 {
46 public:
47 BodyVisitor();
48 virtual ~BodyVisitor();
49
51 void visit( KMMessagePart * part );
52 void visit( TQPtrList<KMMessagePart> & list );
53
55 TQPtrList<KMMessagePart> partsToLoad();
56
59 virtual bool addPartToList( KMMessagePart * part ) = 0;
60
61 protected:
66 static bool parentNeedsLoading( KMMessagePart * part );
67
68 protected:
69 TQPtrList<KMMessagePart> mParts;
70 TQStringList mBasicList;
71 };
72
73 // Factory to create a visitor according to the Attachment Strategy
74 class BodyVisitorFactory
75 {
76 public:
77 static BodyVisitor* getVisitor( const AttachmentStrategy* strategy );
78 };
79
80 // Visitor for smart attachment display
81 class BodyVisitorSmart: public BodyVisitor
82 {
83 public:
84 BodyVisitorSmart();
85
86 bool addPartToList( KMMessagePart * part );
87 };
88
89 // Visitor for inline attachment display
90 class BodyVisitorInline: public BodyVisitor
91 {
92 public:
93 BodyVisitorInline();
94
95 bool addPartToList( KMMessagePart * part );
96 };
97
98 // Visitor for hidden attachment display
99 class BodyVisitorHidden: public BodyVisitor
100 {
101 public:
102 BodyVisitorHidden();
103
104 bool addPartToList( KMMessagePart * part );
105 };
106
107}
108
109#endif
folderdiaquotatab.h
Definition: aboutdata.cpp:40