kmmsgpart.h
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
00027 void duplicate( const KMMessagePart & msgPart );
00028
00030 QCString body(void) const;
00031 void setBody(const QCString &aStr);
00032
00036 void setBodyFromUnicode( const QString & str );
00037
00040 QString bodyToUnicode(const QTextCodec* codec=0) const;
00041
00045 virtual QByteArray bodyDecodedBinary(void) const;
00046
00049 virtual QCString bodyDecoded(void) const;
00050
00060 virtual void setBodyAndGuessCte(const QByteArray& aBuf,
00061 QValueList<int>& allowedCte,
00062 bool allow8Bit = false,
00063 bool willBeSigned = false);
00065 virtual void setBodyAndGuessCte(const QCString& aBuf,
00066 QValueList<int>& allowedCte,
00067 bool allow8Bit = false,
00068 bool willBeSigned = false);
00069
00072 virtual void setBodyEncodedBinary(const QByteArray& aStr);
00073
00076 virtual void setBodyEncoded(const QCString& aStr);
00077
00079 virtual int decodedSize(void) const;
00080
00084 QCString originalContentTypeStr(void) const { return mOriginalContentTypeStr; }
00085 void setOriginalContentTypeStr( const QCString& txt )
00086 {
00087 mOriginalContentTypeStr = txt;
00088 }
00089 QCString typeStr() const { return mType; }
00090 void setTypeStr( const QCString & aStr ) { mType = aStr; }
00091 int type() const;
00092 void setType(int aType);
00094 QCString subtypeStr() const { return mSubtype; }
00095 void setSubtypeStr( const QCString & aStr ) { mSubtype = aStr; }
00096 int subtype() const;
00097 void setSubtype(int aSubtype);
00098
00102 void magicSetType(bool autoDecode=TRUE);
00103
00106 QCString parameterAttribute(void) const;
00107 QString parameterValue(void) const;
00108 void setParameter(const QCString &attribute, const QString &value);
00109
00110 QCString additionalCTypeParamStr(void) const
00111 {
00112 return mAdditionalCTypeParamStr;
00113 }
00114 void setAdditionalCTypeParamStr( const QCString ¶m )
00115 {
00116 mAdditionalCTypeParamStr = param;
00117 }
00118
00122 QString iconName(const QString &mimeType = QString::null) const;
00123
00127 QCString contentTransferEncodingStr(void) const;
00128 int contentTransferEncoding(void) const;
00129 void setContentTransferEncodingStr(const QCString &aStr);
00130 void setContentTransferEncoding(int aCte);
00131
00134 QCString cteStr(void) const { return contentTransferEncodingStr(); }
00135 int cte(void) const { return contentTransferEncoding(); }
00136 void setCteStr(const QCString& aStr) { setContentTransferEncodingStr(aStr); }
00137 void setCte(int aCte) { setContentTransferEncoding(aCte); }
00138
00139
00141 QString contentDescription() const;
00142 QCString contentDescriptionEncoded() const { return mContentDescription; }
00143 void setContentDescription(const QString &aStr);
00144
00146 QCString contentDisposition() const { return mContentDisposition; }
00147 void setContentDisposition( const QCString & cd ) { mContentDisposition = cd; }
00148
00150 QCString charset() const { return mCharset; }
00151
00153 void setCharset( const QCString & c );
00154
00156 const QTextCodec * codec() const;
00157
00159 QString name() const { return mName; }
00160 void setName( const QString & name ) { mName = name; }
00161
00164 QString fileName(void) const;
00165
00167 QString partSpecifier() const { return mPartSpecifier; }
00168
00170 void setPartSpecifier( const QString & part ) { mPartSpecifier = part; }
00171
00173 bool isComplete() { return (!mBody.isNull()); }
00174
00176 KMMessagePart* parent() { return mParent; }
00177
00179 void setParent( KMMessagePart* part ) { mParent = part; }
00180
00182 bool loadHeaders() { return mLoadHeaders; }
00183
00185 void setLoadHeaders( bool load ) { mLoadHeaders = load; }
00186
00188 bool loadPart() { return mLoadPart; }
00189
00191 void setLoadPart( bool load ) { mLoadPart = load; }
00192
00193 protected:
00194 QCString mOriginalContentTypeStr;
00195 QCString mType;
00196 QCString mSubtype;
00197 QCString mCte;
00198 QCString mContentDescription;
00199 QCString mContentDisposition;
00200 QByteArray mBody;
00201 QCString mAdditionalCTypeParamStr;
00202 QString mName;
00203 QCString mParameterAttribute;
00204 QString mParameterValue;
00205 QCString mCharset;
00206 QString mPartSpecifier;
00207 mutable int mBodyDecodedSize;
00208 KMMessagePart* mParent;
00209 bool mLoadHeaders;
00210 bool mLoadPart;
00211 };
00212
00213
00214 #endif
This file is part of the documentation for kmail Library Version 3.3.2.