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 
37 class KMMessagePart;
38 
39 namespace 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