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
QCString body(
void) const;
00024
void setBody(const
QCString &aStr);
00025
00029
void setBodyFromUnicode( const
QString & str );
00030
00033
QString bodyToUnicode(const
QTextCodec* codec=0) const;
00034
00038 virtual
QByteArray bodyDecodedBinary(
void) const;
00039
00042 virtual
QCString bodyDecoded(
void) const;
00043
00053 virtual
void setBodyAndGuessCte(const
QByteArray& aBuf,
00054
QValueList<
int>& allowedCte,
00055
bool allow8Bit = false,
00056
bool willBeSigned = false);
00058 virtual
void setBodyAndGuessCte(const
QCString& aBuf,
00059
QValueList<
int>& allowedCte,
00060
bool allow8Bit = false,
00061
bool willBeSigned = false);
00062
00065 virtual
void setBodyEncodedBinary(const
QByteArray& aStr);
00066
00069 virtual
void setBodyEncoded(const
QCString& aStr);
00070
00072 virtual
int decodedSize(
void) const;
00073
00077
QCString originalContentTypeStr(
void)
const {
return mOriginalContentTypeStr; }
00078
void setOriginalContentTypeStr(
const QCString& txt )
00079 {
00080 mOriginalContentTypeStr = txt;
00081 }
00082
QCString typeStr()
const {
return mType; }
00083
void setTypeStr(
const QCString & aStr ) { mType = aStr; }
00084
int type() const;
00085
void setType(
int aType);
00087
QCString subtypeStr()
const {
return mSubtype; }
00088
void setSubtypeStr(
const QCString & aStr ) { mSubtype = aStr; }
00089
int subtype() const;
00090
void setSubtype(
int aSubtype);
00091
00095
void magicSetType(
bool autoDecode=TRUE);
00096
00099
QCString parameterAttribute(
void) const;
00100
QString parameterValue(
void) const;
00101
void setParameter(const
QCString &attribute, const
QString &value);
00102
00103
QCString additionalCTypeParamStr(
void)
const
00104
{
00105
return mAdditionalCTypeParamStr;
00106 }
00107
void setAdditionalCTypeParamStr(
const QCString ¶m )
00108 {
00109 mAdditionalCTypeParamStr = param;
00110 }
00111
00115
QString iconName(
const QString &mimeType = QString::null)
const;
00116
00120
QCString contentTransferEncodingStr(
void) const;
00121
int contentTransferEncoding(
void) const;
00122
void setContentTransferEncodingStr(const
QCString &aStr);
00123
void setContentTransferEncoding(
int aCte);
00124
00127
QCString cteStr(
void)
const {
return contentTransferEncodingStr(); }
00128
int cte(
void)
const {
return contentTransferEncoding(); }
00129
void setCteStr(
const QCString& aStr) { setContentTransferEncodingStr(aStr); }
00130
void setCte(
int aCte) { setContentTransferEncoding(aCte); }
00131
00132
00134
QString contentDescription() const;
00135
QCString contentDescriptionEncoded()
const {
return mContentDescription; }
00136
void setContentDescription(
const QString &aStr);
00137
00139
QCString contentDisposition()
const {
return mContentDisposition; }
00140
void setContentDisposition(
const QCString & cd ) { mContentDisposition = cd; }
00141
00143
QCString charset()
const {
return mCharset; }
00144
00146
void setCharset(
const QCString & c );
00147
00149
const QTextCodec * codec() const;
00150
00152
QString name()
const {
return mName; }
00153
void setName(
const QString & name ) { mName = name; }
00154
00157
QString fileName(
void) const;
00158
00160
QString partSpecifier()
const {
return mPartSpecifier; }
00161
00163
void setPartSpecifier(
const QString & part ) { mPartSpecifier = part; }
00164
00166
bool isComplete() {
return (!mBody.isNull()); }
00167
00169 KMMessagePart* parent() {
return mParent; }
00170
00172
void setParent( KMMessagePart* part ) { mParent = part; }
00173
00175
bool loadHeaders() {
return mLoadHeaders; }
00176
00178
void setLoadHeaders(
bool load ) { mLoadHeaders = load; }
00179
00181
bool loadPart() {
return mLoadPart; }
00182
00184
void setLoadPart(
bool load ) { mLoadPart = load; }
00185
00186
protected:
00187
QCString mOriginalContentTypeStr;
00188
QCString mType;
00189
QCString mSubtype;
00190
QCString mCte;
00191
QCString mContentDescription;
00192
QCString mContentDisposition;
00193
QByteArray mBody;
00194
QCString mAdditionalCTypeParamStr;
00195
QString mName;
00196
QCString mParameterAttribute;
00197
QString mParameterValue;
00198
QCString mCharset;
00199
QString mPartSpecifier;
00200
mutable int mBodyDecodedSize;
00201 KMMessagePart* mParent;
00202
bool mLoadHeaders;
00203
bool mLoadPart;
00204 };
00205
00206
00207
#endif