diff --git a/messageviewer/src/messagepartthemes/default/autotests/quotehtmltest.cpp b/messageviewer/src/messagepartthemes/default/autotests/quotehtmltest.cpp --- a/messageviewer/src/messagepartthemes/default/autotests/quotehtmltest.cpp +++ b/messageviewer/src/messagepartthemes/default/autotests/quotehtmltest.cpp @@ -67,11 +67,31 @@ return false; } + bool isPrinting() const override + { + return false; + } + + bool htmlLoadExternal() const override + { + return false; + } + bool showExpandQuotesMark() const override { return mShowExpandQuotesMark; } + bool showOnlyOneMimePart() const override + { + return false; + } + + bool showSignatureDetails() const override + { + return false; + } + int levelQuote() const override { return mLevelQuote; diff --git a/messageviewer/src/messagepartthemes/default/defaultrenderer.h b/messageviewer/src/messagepartthemes/default/defaultrenderer.h --- a/messageviewer/src/messagepartthemes/default/defaultrenderer.h +++ b/messageviewer/src/messagepartthemes/default/defaultrenderer.h @@ -42,8 +42,11 @@ void setShowOnlyOneMimePart(bool onlyOneMimePart); void setAttachmentStrategy(const AttachmentStrategy *strategy); void setShowEmoticons(bool showEmoticons); + void setIsPrinting(bool isPrinting); void setShowExpandQuotesMark(bool showExpandQuotesMark); + void setShowSignatureDetails(bool showSignatureDetails); void setLevelQuote(int levelQuote); + void setHtmlLoadExternal(bool htmlLoadExternal); void render(const MimeTreeParser::MessagePartPtr &msgPart, HtmlWriter *writer); private: DefaultRendererPrivate *d; diff --git a/messageviewer/src/messagepartthemes/default/defaultrenderer.cpp b/messageviewer/src/messagepartthemes/default/defaultrenderer.cpp --- a/messageviewer/src/messagepartthemes/default/defaultrenderer.cpp +++ b/messageviewer/src/messagepartthemes/default/defaultrenderer.cpp @@ -404,10 +404,9 @@ auto preferredMode = mp->source()->preferredMode(); bool isHtmlPreferred = (preferredMode == MimeTreeParser::Util::Html) || (preferredMode == MimeTreeParser::Util::MultipartHtml); - const bool isPrinting = mp->source()->isPrinting(); block.setProperty("htmlMail", isHtmlPreferred); - block.setProperty("loadExternal", mp->source()->htmlLoadExternal()); - block.setProperty("isPrinting", isPrinting); + block.setProperty("loadExternal", htmlLoadExternal()); + block.setProperty("isPrinting", isPrinting()); { QString extraHead; //laurent: FIXME port to async method webengine @@ -518,7 +517,7 @@ block.setProperty("inProgress", metaData.inProgress); block.setProperty("errorText", metaData.errorText); - block.setProperty("detailHeader", mp->source()->showSignatureDetails()); + block.setProperty("detailHeader", showSignatureDetails()); block.setProperty("printing", false); block.setProperty("addr", metaData.signerMailAddresses.join(QLatin1Char(','))); block.setProperty("technicalProblem", metaData.technicalProblem); @@ -1039,6 +1038,17 @@ return mShowEmoticons; } +bool DefaultRendererPrivate::isPrinting() const +{ + return mIsPrinting; +} + +bool DefaultRendererPrivate::htmlLoadExternal() const +{ + return mHtmlLoadExternal; +} + + bool DefaultRendererPrivate::showExpandQuotesMark() const { return mShowExpandQuotesMark; @@ -1049,6 +1059,11 @@ return mShowOnlyOneMimePart; } +bool DefaultRendererPrivate::showSignatureDetails() const +{ + return mShowSignatureDetails; +} + int DefaultRendererPrivate::levelQuote() const { return mLevelQuote; @@ -1079,16 +1094,31 @@ d->mShowEmoticons = showEmoticons; } +void DefaultRenderer::setIsPrinting(bool isPrinting) +{ + d->mIsPrinting = isPrinting; +} + void DefaultRenderer::setShowExpandQuotesMark(bool showExpandQuotesMark) { d->mShowExpandQuotesMark = showExpandQuotesMark; } +void DefaultRenderer::setShowSignatureDetails(bool showSignatureDetails) +{ + d->mShowSignatureDetails = showSignatureDetails; +} + void DefaultRenderer::setLevelQuote(int levelQuote) { d->mLevelQuote = levelQuote; } +void DefaultRenderer::setHtmlLoadExternal(bool htmlLoadExternal) +{ + d->mHtmlLoadExternal = htmlLoadExternal; +} + void DefaultRenderer::render(const MimeTreeParser::MessagePart::Ptr &msgPart, HtmlWriter *writer) { d->mMsgPart = msgPart; diff --git a/messageviewer/src/messagepartthemes/default/defaultrenderer_p.h b/messageviewer/src/messagepartthemes/default/defaultrenderer_p.h --- a/messageviewer/src/messagepartthemes/default/defaultrenderer_p.h +++ b/messageviewer/src/messagepartthemes/default/defaultrenderer_p.h @@ -59,20 +59,25 @@ bool isHiddenHint(const MimeTreeParser::MessagePart::Ptr &msgPart) override; MimeTreeParser::IconType displayHint(const MimeTreeParser::MessagePart::Ptr &msgPart) override; bool showEmoticons() const override; + bool isPrinting() const override; + bool htmlLoadExternal() const override; bool showExpandQuotesMark() const override; bool showOnlyOneMimePart() const override; + bool showSignatureDetails() const override; int levelQuote() const override; MimeTreeParser::MessagePart::Ptr mMsgPart; CSSHelperBase *mCSSHelper = nullptr; const MessagePartRendererFactory *mRendererFactory = nullptr; const AttachmentStrategy *mAttachmentStrategy = nullptr; - int mLevelQuote = 1; bool mShowEmoticons = false; + bool mIsPrinting = false; + bool mHtmlLoadExternal = false; bool mShowExpandQuotesMark = false; bool mShowOnlyOneMimePart = false; + bool mShowSignatureDetails = false; }; } #endif diff --git a/messageviewer/src/messagepartthemes/default/messagepartrendererbase.h b/messageviewer/src/messagepartthemes/default/messagepartrendererbase.h --- a/messageviewer/src/messagepartthemes/default/messagepartrendererbase.h +++ b/messageviewer/src/messagepartthemes/default/messagepartrendererbase.h @@ -65,8 +65,11 @@ virtual bool isHiddenHint(const MimeTreeParser::MessagePart::Ptr &msgPart) = 0; virtual MimeTreeParser::IconType displayHint(const MimeTreeParser::MessagePart::Ptr &msgPart) = 0; virtual bool showEmoticons() const = 0; + virtual bool isPrinting() const = 0; + virtual bool htmlLoadExternal() const = 0; virtual bool showExpandQuotesMark() const = 0; virtual bool showOnlyOneMimePart() const = 0; + virtual bool showSignatureDetails() const = 0; virtual int levelQuote() const = 0; protected: diff --git a/messageviewer/src/viewer/objecttreeemptysource.h b/messageviewer/src/viewer/objecttreeemptysource.h --- a/messageviewer/src/viewer/objecttreeemptysource.h +++ b/messageviewer/src/viewer/objecttreeemptysource.h @@ -37,8 +37,6 @@ EmptySource(); ~EmptySource(); bool decryptMessage() const override; - bool htmlLoadExternal() const override; - bool showSignatureDetails() const override; void setHtmlMode(MimeTreeParser::Util::HtmlMode mode, const QList &availableModes) override; MimeTreeParser::Util::HtmlMode preferredMode() const override; void setAllowDecryption(bool allowDecryption); @@ -51,10 +49,13 @@ bool autoImportKeys() const override; const MimeTreeParser::BodyPartFormatterFactory *bodyPartFormatterFactory() override; void render(const MimeTreeParser::MessagePartPtr &msgPart, bool showOnlyOneMimePart) override; - bool isPrinting() const override; + /** Return true if external sources should be loaded in a html mail */ + virtual bool htmlLoadExternal() const; + virtual bool showSignatureDetails() const; virtual bool showEmoticons() const; virtual bool showExpandQuotesMark() const; + virtual bool isPrinting() const; virtual int levelQuote() const; private: EmptySourcePrivate *const d; diff --git a/messageviewer/src/viewer/objecttreeemptysource.cpp b/messageviewer/src/viewer/objecttreeemptysource.cpp --- a/messageviewer/src/viewer/objecttreeemptysource.cpp +++ b/messageviewer/src/viewer/objecttreeemptysource.cpp @@ -151,10 +151,13 @@ auto renderer = DefaultRenderer(cssHelper()); renderer.setAttachmentStrategy(attachmentStrategy()); + renderer.setHtmlLoadExternal(htmlLoadExternal()); + renderer.setIsPrinting(isPrinting()); renderer.setLevelQuote(levelQuote()); renderer.setShowEmoticons(showEmoticons()); renderer.setShowExpandQuotesMark(showExpandQuotesMark()); renderer.setShowOnlyOneMimePart(showOnlyOneMimePart); + renderer.setShowSignatureDetails(showSignatureDetails()); renderer.render(msgPart, htmlWriter()); } diff --git a/messageviewer/src/viewer/objecttreeviewersource.h b/messageviewer/src/viewer/objecttreeviewersource.h --- a/messageviewer/src/viewer/objecttreeviewersource.h +++ b/messageviewer/src/viewer/objecttreeviewersource.h @@ -30,14 +30,13 @@ class ViewerPrivate; /** An ObjectTreeParser source working on a MailViewer object */ -class MailViewerSource : public MessageViewer::EmptySource +class MailViewerSource : public MessageViewer::EmptySource { public: explicit MailViewerSource(ViewerPrivate *viewer); ~MailViewerSource(); bool decryptMessage() const override; bool htmlLoadExternal() const override; - bool showSignatureDetails() const override; void setHtmlMode(MimeTreeParser::Util::HtmlMode mode, const QList &availableModes) override; MimeTreeParser::Util::HtmlMode preferredMode() const override; int levelQuote() const override; @@ -48,6 +47,7 @@ CSSHelperBase *cssHelper() override; bool autoImportKeys() const override; + bool showSignatureDetails() const override; bool showEmoticons() const override; bool showExpandQuotesMark() const override; bool isPrinting() const override; diff --git a/mimetreeparser/autotests/setupenv.h b/mimetreeparser/autotests/setupenv.h --- a/mimetreeparser/autotests/setupenv.h +++ b/mimetreeparser/autotests/setupenv.h @@ -43,21 +43,10 @@ public: TestObjectTreeSource() : mPreferredMode(Util::Html) - , mHtmlLoadExternal(false) , mDecryptMessage(false) { } - bool htmlLoadExternal() const override - { - return mHtmlLoadExternal; - } - - void setHtmlLoadExternal(bool loadExternal) - { - mHtmlLoadExternal = loadExternal; - } - bool autoImportKeys() const override { return true; @@ -78,16 +67,6 @@ mDecryptMessage = allowDecryption; } - void setShowSignatureDetails(bool showSignatureDetails) - { - mShowSignatureDetails = showSignatureDetails; - } - - bool showSignatureDetails() const override - { - return mShowSignatureDetails; - } - void setHtmlMode(MimeTreeParser::Util::HtmlMode mode, const QList &availableModes) override { Q_UNUSED(mode); @@ -121,17 +100,10 @@ Q_UNUSED(showOnlyOneMimePart); } - bool isPrinting() const override - { - return false; - } - private: BodyPartFormatterFactory mBodyPartFormatterFactory; MimeTreeParser::Util::HtmlMode mPreferredMode; - bool mHtmlLoadExternal = false; bool mDecryptMessage = false; - bool mShowSignatureDetails = false; }; } } diff --git a/mimetreeparser/src/interfaces/objecttreesource.h b/mimetreeparser/src/interfaces/objecttreesource.h --- a/mimetreeparser/src/interfaces/objecttreesource.h +++ b/mimetreeparser/src/interfaces/objecttreesource.h @@ -59,12 +59,6 @@ /** Return true if an encrypted mail should be decrypted */ virtual bool decryptMessage() const = 0; - /** Return true if external sources should be loaded in a html mail */ - virtual bool htmlLoadExternal() const = 0; - - /** Return true to include the signature details in the generated html */ - virtual bool showSignatureDetails() const = 0; - /** The override codec that should be used for the mail */ virtual const QTextCodec *overrideCodec() = 0; @@ -77,8 +71,6 @@ virtual void render(const MessagePartPtr &msgPart, bool showOnlyOneMimePart) = 0; - virtual bool isPrinting() const = 0; - private: Q_DISABLE_COPY(ObjectTreeSource) };