00001
00002
00003
00004
#ifndef kmmsgpart_h
00005
#define kmmsgpart_h
00006
00007
#include <qstring.h>
00008
#include <qcstring.h>
00009
#include <qdict.h>
00010
00011
template <
typename T>
00012
class QValueList;
00013
class QTextCodec;
00014
00015
class KMMessagePart
00016 {
00017
public:
00018 KMMessagePart();
00019 KMMessagePart(
QDataStream & stream );
00020
virtual ~KMMessagePart();
00021
00023
void clear();
00024
00026
QCString body(
void) const;
00027
void setBody(const
QCString &aStr);
00028
00032
void setBodyFromUnicode( const
QString & str );
00033
00036
QString bodyToUnicode(const
QTextCodec* codec=0) const;
00037
00041 virtual
QByteArray bodyDecodedBinary(
void) const;
00042
00045 virtual
QCString bodyDecoded(
void) const;
00046
00056 virtual
void setBodyAndGuessCte(const
QByteArray& aBuf,
00057
QValueList<
int>& allowedCte,
00058
bool allow8Bit = false,
00059
bool willBeSigned = false);
00061 virtual
void setBodyAndGuessCte(const
QCString& aBuf,
00062
QValueList<
int>& allowedCte,
00063
bool allow8Bit = false,
00064
bool willBeSigned = false);
00065
00068 virtual
void setBodyEncodedBinary(const
QByteArray& aStr);
00069
00072 virtual
void setBodyEncoded(const
QCString& aStr);
00073
00075 virtual
int decodedSize(
void) const;
00076
00080
QCString originalContentTypeStr(
void)
const {
return mOriginalContentTypeStr; }
00081
void setOriginalContentTypeStr(
const QCString& txt )
00082 {
00083 mOriginalContentTypeStr = txt;
00084 }
00085
QCString typeStr()
const {
return mType; }
00086
void setTypeStr(
const QCString & aStr ) { mType = aStr; }
00087
int type() const;
00088
void setType(
int aType);
00090
QCString subtypeStr()
const {
return mSubtype; }
00091
void setSubtypeStr(
const QCString & aStr ) { mSubtype = aStr; }
00092
int subtype() const;
00093
void setSubtype(
int aSubtype);
00094
00098
void magicSetType(
bool autoDecode=TRUE);
00099
00102
QCString parameterAttribute(
void) const;
00103
QString parameterValue(
void) const;
00104
void setParameter(const
QCString &attribute, const
QString &value);
00105
00106
QCString additionalCTypeParamStr(
void)
const
00107
{
00108
return mAdditionalCTypeParamStr;
00109 }
00110
void setAdditionalCTypeParamStr(
const QCString ¶m )
00111 {
00112 mAdditionalCTypeParamStr = param;
00113 }
00114
00118
QString iconName(
const QString &mimeType = QString::null)
const;
00119
00123
QCString contentTransferEncodingStr(
void) const;
00124
int contentTransferEncoding(
void) const;
00125
void setContentTransferEncodingStr(const
QCString &aStr);
00126
void setContentTransferEncoding(
int aCte);
00127
00130
QCString cteStr(
void)
const {
return contentTransferEncodingStr(); }
00131
int cte(
void)
const {
return contentTransferEncoding(); }
00132
void setCteStr(
const QCString& aStr) { setContentTransferEncodingStr(aStr); }
00133
void setCte(
int aCte) { setContentTransferEncoding(aCte); }
00134
00135
00137
QString contentDescription() const;
00138
QCString contentDescriptionEncoded()
const {
return mContentDescription; }
00139
void setContentDescription(
const QString &aStr);
00140
00142
QCString contentDisposition()
const {
return mContentDisposition; }
00143
void setContentDisposition(
const QCString & cd ) { mContentDisposition = cd; }
00144
00146
QCString charset()
const {
return mCharset; }
00147
00149
void setCharset(
const QCString & c );
00150
00152
const QTextCodec * codec() const;
00153
00155
QString name()
const {
return mName; }
00156
void setName(
const QString & name ) { mName = name; }
00157
00160
QString fileName(
void) const;
00161
00163
QString partSpecifier()
const {
return mPartSpecifier; }
00164
00166
void setPartSpecifier(
const QString & part ) { mPartSpecifier = part; }
00167
00169
bool isComplete() {
return (!mBody.isNull()); }
00170
00172 KMMessagePart* parent() {
return mParent; }
00173
00175
void setParent( KMMessagePart* part ) { mParent = part; }
00176
00178
bool loadHeaders() {
return mLoadHeaders; }
00179
00181
void setLoadHeaders(
bool load ) { mLoadHeaders = load; }
00182
00184
bool loadPart() {
return mLoadPart; }
00185
00187
void setLoadPart(
bool load ) { mLoadPart = load; }
00188
00189
protected:
00190
QCString mOriginalContentTypeStr;
00191
QCString mType;
00192
QCString mSubtype;
00193
QCString mCte;
00194
QCString mContentDescription;
00195
QCString mContentDisposition;
00196
QByteArray mBody;
00197
QCString mAdditionalCTypeParamStr;
00198
QString mName;
00199
QCString mParameterAttribute;
00200
QString mParameterValue;
00201
QCString mCharset;
00202
QString mPartSpecifier;
00203
mutable int mBodyDecodedSize;
00204 KMMessagePart* mParent;
00205
bool mLoadHeaders;
00206
bool mLoadPart;
00207 };
00208
00209
00210
#endif