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 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 ) { mCharset = 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
This file is part of the documentation for kmail Library Version 3.2.2.