From 31bf3102fe8f8cdd3f1448f0f22f182d0c2820d2 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 23 May 2017 21:00:50 +0200 Subject: Moved MIME related stuff to a mime subdir --- .../src/domain/mimetreeparser/otp/messagepart.h | 422 --------------------- 1 file changed, 422 deletions(-) delete mode 100644 framework/src/domain/mimetreeparser/otp/messagepart.h (limited to 'framework/src/domain/mimetreeparser/otp/messagepart.h') diff --git a/framework/src/domain/mimetreeparser/otp/messagepart.h b/framework/src/domain/mimetreeparser/otp/messagepart.h deleted file mode 100644 index 433f3f6b..00000000 --- a/framework/src/domain/mimetreeparser/otp/messagepart.h +++ /dev/null @@ -1,422 +0,0 @@ -/* - Copyright (c) 2015 Sandro Knauß - - This library is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published by - the Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This library is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public - License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. -*/ - -#ifndef __MIMETREEPARSER_MESSAGEPART_H__ -#define __MIMETREEPARSER_MESSAGEPART_H__ - -#include "bodypartformatter.h" -#include "util.h" - -#include - -#include -#include -#include - -#include -#include - -class QTextCodec; -class PartPrivate; - -namespace GpgME -{ -class ImportResult; -} - -namespace QGpgME -{ -class Protocol; -} - -namespace KMime -{ -class Content; -} - -namespace MimeTreeParser -{ -class ObjectTreeParser; -class HtmlWriter; -class HTMLBlock; -typedef QSharedPointer HTMLBlockPtr; -class CryptoBodyPartMemento; -class MultiPartAlternativeBodyPartFormatter; -namespace Interface -{ -class ObjectTreeSource; -} - -class MessagePart : public Interface::MessagePart -{ - Q_OBJECT - Q_PROPERTY(bool attachment READ isAttachment) - Q_PROPERTY(bool root READ isRoot) - Q_PROPERTY(bool isHtml READ isHtml) - Q_PROPERTY(bool isHidden READ isHidden) -public: - typedef QSharedPointer Ptr; - MessagePart(ObjectTreeParser *otp, - const QString &text); - - virtual ~MessagePart(); - - virtual QString text() const Q_DECL_OVERRIDE; - void setText(const QString &text); - void setAttachmentFlag(KMime::Content *node); - bool isAttachment() const; - - void setIsRoot(bool root); - bool isRoot() const; - - virtual bool isHtml() const; - virtual bool isHidden() const; - - PartMetaData *partMetaData(); - - /* only a function that should be removed if the refactoring is over */ - virtual void fix() const; - virtual void copyContentFrom() const; - - void appendSubPart(const Interface::MessagePart::Ptr &messagePart); - const QVector &subParts() const; - bool hasSubParts() const; - - HtmlWriter *htmlWriter() const Q_DECL_OVERRIDE; - void setHtmlWriter(HtmlWriter *htmlWriter) const Q_DECL_OVERRIDE; - - Interface::ObjectTreeSource *source() const; - KMime::Content *attachmentNode() const; - -protected: - void parseInternal(KMime::Content *node, bool onlyOneMimePart); - QString renderInternalText() const; - - QString mText; - ObjectTreeParser *mOtp; - PartMetaData mMetaData; - -private: - QVector mBlocks; - - KMime::Content *mAttachmentNode; - bool mRoot; -}; - -class MimeMessagePart : public MessagePart -{ - Q_OBJECT -public: - typedef QSharedPointer Ptr; - MimeMessagePart(MimeTreeParser::ObjectTreeParser *otp, KMime::Content *node, bool onlyOneMimePart); - virtual ~MimeMessagePart(); - - QString text() const Q_DECL_OVERRIDE; - - QString plaintextContent() const Q_DECL_OVERRIDE; - QString htmlContent() const Q_DECL_OVERRIDE; -private: - KMime::Content *mNode; - bool mOnlyOneMimePart; - - friend class AlternativeMessagePart; - friend class ::PartPrivate; -}; - -class MessagePartList : public MessagePart -{ - Q_OBJECT -public: - typedef QSharedPointer Ptr; - MessagePartList(MimeTreeParser::ObjectTreeParser *otp); - virtual ~MessagePartList(); - - QString text() const Q_DECL_OVERRIDE; - - QString plaintextContent() const Q_DECL_OVERRIDE; - QString htmlContent() const Q_DECL_OVERRIDE; -private: -}; - -enum IconType { - NoIcon = 0, - IconExternal, - IconInline -}; - -class TextMessagePart : public MessagePartList -{ - Q_OBJECT -public: - typedef QSharedPointer Ptr; - TextMessagePart(MimeTreeParser::ObjectTreeParser *otp, KMime::Content *node, bool drawFrame, bool showLink, bool decryptMessage); - virtual ~TextMessagePart(); - - KMMsgSignatureState signatureState() const; - KMMsgEncryptionState encryptionState() const; - - bool decryptMessage() const; - - bool isHidden() const Q_DECL_OVERRIDE; - - bool showLink() const; - bool showTextFrame() const; - -protected: - KMime::Content *mNode; - -private: - void parseContent(); - - KMMsgSignatureState mSignatureState; - KMMsgEncryptionState mEncryptionState; - bool mDrawFrame; - bool mShowLink; - bool mDecryptMessage; - bool mIsHidden; - - friend class DefaultRendererPrivate; - friend class ObjectTreeParser; - friend class ::PartPrivate; -}; - -class AttachmentMessagePart : public TextMessagePart -{ - Q_OBJECT -public: - typedef QSharedPointer Ptr; - AttachmentMessagePart(MimeTreeParser::ObjectTreeParser *otp, KMime::Content *node, bool drawFrame, bool showLink, bool decryptMessage); - virtual ~AttachmentMessagePart(); - - IconType asIcon() const; - bool neverDisplayInline() const; - void setNeverDisplayInline(bool displayInline); - bool isImage() const; - void setIsImage(bool image); - - bool isHidden() const Q_DECL_OVERRIDE; - -private: - bool mIsImage; - bool mNeverDisplayInline; -}; - -class HtmlMessagePart : public MessagePart -{ - Q_OBJECT -public: - typedef QSharedPointer Ptr; - HtmlMessagePart(MimeTreeParser::ObjectTreeParser *otp, KMime::Content *node, MimeTreeParser::Interface::ObjectTreeSource *source); - virtual ~HtmlMessagePart(); - - QString text() const Q_DECL_OVERRIDE; - - void fix() const Q_DECL_OVERRIDE; - bool isHtml() const Q_DECL_OVERRIDE; - -private: - KMime::Content *mNode; - Interface::ObjectTreeSource *mSource; - QString mBodyHTML; - QByteArray mCharset; - - friend class DefaultRendererPrivate; - friend class ::PartPrivate; -}; - -class AlternativeMessagePart : public MessagePart -{ - Q_OBJECT -public: - typedef QSharedPointer Ptr; - AlternativeMessagePart(MimeTreeParser::ObjectTreeParser *otp, KMime::Content *node, Util::HtmlMode preferredMode); - virtual ~AlternativeMessagePart(); - - QString text() const Q_DECL_OVERRIDE; - - Util::HtmlMode preferredMode() const; - - bool isHtml() const Q_DECL_OVERRIDE; - - QString plaintextContent() const Q_DECL_OVERRIDE; - QString htmlContent() const Q_DECL_OVERRIDE; - - QList availableModes(); - - void fix() const Q_DECL_OVERRIDE; - void copyContentFrom() const Q_DECL_OVERRIDE; -private: - KMime::Content *mNode; - - Util::HtmlMode mPreferredMode; - - QMap mChildNodes; - QMap mChildParts; - - friend class DefaultRendererPrivate; - friend class ObjectTreeParser; - friend class MultiPartAlternativeBodyPartFormatter; - friend class ::PartPrivate; -}; - -class CertMessagePart : public MessagePart -{ - Q_OBJECT -public: - typedef QSharedPointer Ptr; - CertMessagePart(MimeTreeParser::ObjectTreeParser *otp, KMime::Content *node, const QGpgME::Protocol *cryptoProto, bool autoImport); - virtual ~CertMessagePart(); - - QString text() const Q_DECL_OVERRIDE; - -private: - KMime::Content *mNode; - bool mAutoImport; - GpgME::ImportResult mImportResult; - const QGpgME::Protocol *mCryptoProto; - friend class DefaultRendererPrivate; -}; - -class EncapsulatedRfc822MessagePart : public MessagePart -{ - Q_OBJECT -public: - typedef QSharedPointer Ptr; - EncapsulatedRfc822MessagePart(MimeTreeParser::ObjectTreeParser *otp, KMime::Content *node, const KMime::Message::Ptr &message); - virtual ~EncapsulatedRfc822MessagePart(); - - QString text() const Q_DECL_OVERRIDE; - - void copyContentFrom() const Q_DECL_OVERRIDE; - void fix() const Q_DECL_OVERRIDE; -private: - const KMime::Message::Ptr mMessage; - KMime::Content *mNode; - - friend class DefaultRendererPrivate; -}; - -class EncryptedMessagePart : public MessagePart -{ - Q_OBJECT - Q_PROPERTY(bool decryptMessage READ decryptMessage WRITE setDecryptMessage) - Q_PROPERTY(bool isEncrypted READ isEncrypted) - Q_PROPERTY(bool passphraseError READ passphraseError) -public: - typedef QSharedPointer Ptr; - EncryptedMessagePart(ObjectTreeParser *otp, - const QString &text, - const QGpgME::Protocol *cryptoProto, - const QString &fromAddress, - KMime::Content *node); - - virtual ~EncryptedMessagePart(); - - QString text() const Q_DECL_OVERRIDE; - - void setDecryptMessage(bool decrypt); - bool decryptMessage() const; - - void setIsEncrypted(bool encrypted); - bool isEncrypted() const; - - bool isDecryptable() const; - - bool passphraseError() const; - - void startDecryption(const QByteArray &text, const QTextCodec *aCodec); - void startDecryption(KMime::Content *data = nullptr); - - QByteArray mDecryptedData; - - QString plaintextContent() const Q_DECL_OVERRIDE; - QString htmlContent() const Q_DECL_OVERRIDE; - -private: - /** Handles the dectyptioon of a given content - * returns true if the decryption was successfull - * if used in async mode, check if mMetaData.inProgress is true, it inicates a running decryption process. - */ - bool okDecryptMIME(KMime::Content &data); - -protected: - bool mPassphraseError; - bool mNoSecKey; - const QGpgME::Protocol *mCryptoProto; - QString mFromAddress; - KMime::Content *mNode; - bool mDecryptMessage; - QByteArray mVerifiedText; - std::vector mDecryptRecipients; - - friend class DefaultRendererPrivate; - friend class ::PartPrivate; -}; - -class SignedMessagePart : public MessagePart -{ - Q_OBJECT - Q_PROPERTY(bool isSigned READ isSigned) -public: - typedef QSharedPointer Ptr; - SignedMessagePart(ObjectTreeParser *otp, - const QString &text, - const QGpgME::Protocol *cryptoProto, - const QString &fromAddress, - KMime::Content *node); - - virtual ~SignedMessagePart(); - - void setIsSigned(bool isSigned); - bool isSigned() const; - - void startVerification(const QByteArray &text, const QTextCodec *aCodec); - void startVerificationDetached(const QByteArray &text, KMime::Content *textNode, const QByteArray &signature); - - QByteArray mDecryptedData; - std::vector mSignatures; - - QString plaintextContent() const Q_DECL_OVERRIDE; - QString htmlContent() const Q_DECL_OVERRIDE; - -private: - /** Handles the verification of data - * If signature is empty it is handled as inline signature otherwise as detached signature mode. - * Returns true if the verfication was successfull and the block is signed. - * If used in async mode, check if mMetaData.inProgress is true, it inicates a running verification process. - */ - bool okVerify(const QByteArray &data, const QByteArray &signature, KMime::Content *textNode); - - void sigStatusToMetaData(); - - void setVerificationResult(const CryptoBodyPartMemento *m, KMime::Content *textNode); -protected: - const QGpgME::Protocol *mCryptoProto; - QString mFromAddress; - KMime::Content *mNode; - QByteArray mVerifiedText; - - friend EncryptedMessagePart; - friend class DefaultRendererPrivate; - friend class ::PartPrivate; -}; - -} - -#endif //__MIMETREEPARSER_MESSAGEPART_H__ -- cgit v1.2.3