kmail Library API Documentation

kmmsgpart.h

00001 /* part of a mime multi-part message
00002  * Author: Stefan Taferner <taferner@alpin.or.at>
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 &param )
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 /*kmmsgpart_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:37:33 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003