diff options
Diffstat (limited to 'kmail/objecttreeparser.h')
-rw-r--r-- | kmail/objecttreeparser.h | 74 |
1 files changed, 66 insertions, 8 deletions
diff --git a/kmail/objecttreeparser.h b/kmail/objecttreeparser.h index 2edc406f9..ad980edaf 100644 --- a/kmail/objecttreeparser.h +++ b/kmail/objecttreeparser.h @@ -40,12 +40,18 @@ #include <kleo/cryptobackend.h> #include <gpgmepp/verificationresult.h> +#include <cassert> + class KMReaderWin; class KMMessagePart; class TQString; class TQWidget; class partNode; +namespace GpgME { + class Error; +} + namespace KMail { class AttachmentStrategy; @@ -110,6 +116,11 @@ namespace KMail { KMail::CSSHelper * cssHelper=0 ); virtual ~ObjectTreeParser(); + void setAllowAsync( bool allow ) { assert( !mHasPendingAsyncJobs ); mAllowAsync = allow; } + bool allowAsync() const { return mAllowAsync; } + + bool hasPendingAsyncJobs() const { return mHasPendingAsyncJobs; } + TQCString rawReplyString() const { return mRawReplyString; } /*! @return the text of the message, ie. what would appear in the @@ -140,6 +151,15 @@ namespace KMail { mIncludeSignatures = include; } + // Controls whether Toltec invitations are displayed in their raw form or as a replacement text, + // which is used in processToltecMail(). + void setShowRawToltecMail( bool showRawToltecMail ) { mShowRawToltecMail = showRawToltecMail; } + bool showRawToltecMail() const { return mShowRawToltecMail; } + + /// default text for processToltecMail(), which is used in kmail.kcfg, therefore it + /// needs to be static here. + static TQString defaultToltecReplacementText(); + const KMail::AttachmentStrategy * attachmentStrategy() const { return mAttachmentStrategy; } @@ -161,16 +181,24 @@ namespace KMail { void defaultHandling( partNode * node, ProcessResult & result ); - /** 1. Create a new partNode using 'content' data and Content-Description - found in 'cntDesc'. - 2. Make this node the child of 'node'. - 3. Insert the respective entries in the Mime Tree Viewer. - 3. Parse the 'node' to display the content. */ + /** + * 1. Create a new partNode using 'content' data and Content-Description + * found in 'cntDesc'. + * 2. Make this node the child of 'node'. + * 3. Insert the respective entries in the Mime Tree Viewer. + * 3. Parse the 'node' to display the content. + * + * @param addToTextualContent If true, this will add the textual content of the parsed node + * to the textual content of the current object tree parser. + * Setting this to false is useful for encapsulated messages, as we + * do not want the text in those to appear in the editor + */ // Function will be replaced once KMime is alive. void insertAndParseNewChildNode( partNode & node, const char * content, const char * cntDesc, - bool append=false ); + bool append=false, + bool addToTextualContent = true ); /** if data is 0: Feeds the HTML widget with the contents of the opaque signed data found in partNode 'sign'. @@ -186,9 +214,17 @@ namespace KMail { const TQString & fromAddress, bool doCheck=true, TQCString * cleartextData=0, - std::vector<GpgME::Signature> paramSignatures = std::vector<GpgME::Signature>(), + const std::vector<GpgME::Signature> & paramSignatures = std::vector<GpgME::Signature>(), bool hideErrors=false ); + /** Writes out the block that we use when the node is encrypted, + but we're deferring decryption for later. */ + void writeDeferredDecryptionBlock(); + + /** Writes out the block that we use when the node is encrypted, + but we've just kicked off async decryption. */ + void writeDecryptionInProgressBlock(); + /** Returns the contents of the given multipart/encrypted object. Data is decypted. May contain body parts. */ bool okDecryptMIME( partNode& data, @@ -198,11 +234,24 @@ namespace KMail { bool showWarning, bool& passphraseError, bool& actuallyEncrypted, + bool& decryptionStarted, TQString& aErrorText, + GpgME::Error & auditLogError, TQString& auditLog ); bool processMailmanMessage( partNode * node ); + /** + * This is called for all multipart/mixed nodes. It checks if that belongs to a Toltec mail, + * by checking various criteria. + * If it is a toltec mail, a special text, instead of the confusing toltec text, will be + * displayed. + * + * @return true if the mail was indeed a toltec mail, in which case the node should not be + * processed further + */ + bool processToltecMail( partNode * node ); + /** Checks whether @p str contains external references. To be precise, we only check whether @p str contains 'xxx="http[s]:' where xxx is not href. Obfuscated external references are ignored on purpose. @@ -245,9 +294,15 @@ namespace KMail { TQString writeSigstatHeader( KMail::PartMetaData & part, const Kleo::CryptoBackend::Protocol * cryptProto, const TQString & fromAddress, - const TQString & filename = TQString::null ); + partNode *node = 0 ); TQString writeSigstatFooter( KMail::PartMetaData & part ); + // The attachment mark is a div that is placed around the attchment. It is used for drawing + // a yellow border around the attachment when scrolling to it. When scrolling to it, the border + // color of the div is changed, see KMReaderWin::scrollToAttachment(). + void writeAttachmentMarkHeader( partNode *node ); + void writeAttachmentMarkFooter(); + void writeBodyStr( const TQCString & bodyString, const TQTextCodec * aCodec, const TQString & fromAddress, @@ -281,6 +336,9 @@ namespace KMail { bool mShowOnlyOneMimePart; bool mKeepEncryptions; bool mIncludeSignatures; + bool mHasPendingAsyncJobs; + bool mAllowAsync; + bool mShowRawToltecMail; const KMail::AttachmentStrategy * mAttachmentStrategy; KMail::HtmlWriter * mHtmlWriter; KMail::CSSHelper * mCSSHelper; |