File indexing completed on 2025-03-09 04:54:35
0001 /* 0002 SPDX-FileCopyrightText: 2016 Sandro Knauß <sknauss@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 #pragma once 0007 0008 #include "messagepartrendererbase.h" 0009 0010 #include <MimeTreeParser/MessagePart> 0011 0012 namespace MessageViewer 0013 { 0014 class AttachmentStrategy; 0015 class MessagePartRendererFactory; 0016 class CSSHelperBase; 0017 class HtmlWriter; 0018 0019 class DefaultRendererPrivate : public RenderContext 0020 { 0021 using RenderContext::renderWithFactory; 0022 0023 public: 0024 DefaultRendererPrivate(CSSHelperBase *cssHelper, const MessagePartRendererFactory *rendererFactory); 0025 ~DefaultRendererPrivate() override; 0026 0027 CSSHelperBase *cssHelper() const override; 0028 0029 MimeTreeParser::Interface::ObjectTreeSource *source() const; 0030 0031 void renderSubParts(const MimeTreeParser::MessagePart::Ptr &msgPart, HtmlWriter *htmlWriter) override; 0032 0033 void render(const MimeTreeParser::MessagePartList::Ptr &mp, HtmlWriter *htmlWriter); 0034 void render(const MimeTreeParser::MimeMessagePart::Ptr &mp, HtmlWriter *htmlWriter); 0035 void render(const MimeTreeParser::EncapsulatedRfc822MessagePart::Ptr &mp, HtmlWriter *htmlWriter); 0036 void render(const MimeTreeParser::HtmlMessagePart::Ptr &mp, HtmlWriter *htmlWriter); 0037 void renderEncrypted(const MimeTreeParser::EncryptedMessagePart::Ptr &mp, HtmlWriter *htmlWriter); 0038 void renderSigned(const MimeTreeParser::SignedMessagePart::Ptr &mp, HtmlWriter *htmlWriter); 0039 void render(const MimeTreeParser::SignedMessagePart::Ptr &mp, HtmlWriter *htmlWriter); 0040 void render(const MimeTreeParser::EncryptedMessagePart::Ptr &mp, HtmlWriter *htmlWriter); 0041 void render(const MimeTreeParser::AlternativeMessagePart::Ptr &mp, HtmlWriter *htmlWriter); 0042 void render(const MimeTreeParser::CertMessagePart::Ptr &mp, HtmlWriter *htmlWriter); 0043 [[nodiscard]] bool renderWithFactory(const QMetaObject *mo, const MimeTreeParser::MessagePart::Ptr &msgPart, HtmlWriter *writer) override; 0044 void renderFactory(const MimeTreeParser::MessagePart::Ptr &msgPart, HtmlWriter *htmlWriter); 0045 0046 [[nodiscard]] bool isHiddenHint(const MimeTreeParser::MessagePart::Ptr &msgPart) override; 0047 [[nodiscard]] MimeTreeParser::IconType displayHint(const MimeTreeParser::MessagePart::Ptr &msgPart) override; 0048 [[nodiscard]] bool showEmoticons() const override; 0049 [[nodiscard]] bool isPrinting() const override; 0050 [[nodiscard]] bool htmlLoadExternal() const override; 0051 [[nodiscard]] bool showExpandQuotesMark() const override; 0052 [[nodiscard]] bool showOnlyOneMimePart() const override; 0053 [[nodiscard]] bool showSignatureDetails() const override; 0054 [[nodiscard]] bool showEncryptionDetails() const override; 0055 [[nodiscard]] int levelQuote() const override; 0056 MimeTreeParser::MessagePart::Ptr mMsgPart; 0057 CSSHelperBase *mCSSHelper = nullptr; 0058 const MessagePartRendererFactory *mRendererFactory = nullptr; 0059 const AttachmentStrategy *mAttachmentStrategy = nullptr; 0060 std::function<QString(KMime::Message *)> mCreateMessageHeader; 0061 0062 int mLevelQuote = 1; 0063 0064 bool mShowEmoticons = false; 0065 bool mIsPrinting = false; 0066 bool mHtmlLoadExternal = false; 0067 bool mShowExpandQuotesMark = false; 0068 bool mShowOnlyOneMimePart = false; 0069 bool mShowSignatureDetails = false; 0070 bool mShowEncryptionDetails = false; 0071 }; 0072 }