From cc29364f06178f8f6b457384f2ec37a042bd9d43 Mon Sep 17 00:00:00 2001 From: tpearson Date: Wed, 1 Sep 2010 00:37:02 +0000 Subject: * Massive set of changes to bring in all fixes and enhancements from the Enterprise PIM branch * Ensured that the Trinity changes were applied on top of those enhancements, and any redundancy removed * Added journal read support to the CalDAV resource * Fixed CalDAV resource to use events URL for tasks and journals when separate URL checkbox unchecked git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1170461 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kmail/objecttreeparser.h | 74 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 66 insertions(+), 8 deletions(-) (limited to 'kmail/objecttreeparser.h') 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 #include +#include + 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 paramSignatures = std::vector(), + const std::vector & paramSignatures = std::vector(), 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; -- cgit v1.2.1