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
00031
#ifndef bodyiterator_h
00032
#define bodyiterator_h
00033
00034
#include <qptrlist.h>
00035
#include <qstringlist.h>
00036
00037
class KMMessagePart;
00038
00039
namespace KMail {
00040
00041
class AttachmentStrategy;
00042
00043
00044
class BodyVisitor
00045 {
00046
public:
00047 BodyVisitor();
00048
virtual ~BodyVisitor();
00049
00051
void visit( KMMessagePart * part );
00052
void visit(
QPtrList<KMMessagePart> & list );
00053
00055
QPtrList<KMMessagePart> partsToLoad();
00056
00059
virtual bool addPartToList( KMMessagePart * part ) = 0;
00060
00061
protected:
00066
static bool parentNeedsLoading( KMMessagePart * part );
00067
00068
protected:
00069
QPtrList<KMMessagePart> mParts;
00070
QStringList mBasicList;
00071 };
00072
00073
00074
class BodyVisitorFactory
00075 {
00076
public:
00077
static BodyVisitor* getVisitor(
const AttachmentStrategy* strategy );
00078 };
00079
00080
00081
class BodyVisitorSmart:
public BodyVisitor
00082 {
00083
public:
00084 BodyVisitorSmart();
00085
00086
bool addPartToList( KMMessagePart * part );
00087 };
00088
00089
00090
class BodyVisitorInline:
public BodyVisitor
00091 {
00092
public:
00093 BodyVisitorInline();
00094
00095
bool addPartToList( KMMessagePart * part );
00096 };
00097
00098
00099
class BodyVisitorHidden:
public BodyVisitor
00100 {
00101
public:
00102 BodyVisitorHidden();
00103
00104
bool addPartToList( KMMessagePart * part );
00105 };
00106
00107 }
00108
00109
#endif