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   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 &param )
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 /*kmmsgpart_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 22:43:52 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003