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 
0007 #pragma once
0008 
0009 #include <QSharedPointer>
0010 
0011 #include <functional>
0012 
0013 namespace KMime
0014 {
0015 class Message;
0016 }
0017 
0018 namespace MimeTreeParser
0019 {
0020 class MessagePart;
0021 using MessagePartPtr = QSharedPointer<MessagePart>;
0022 }
0023 
0024 namespace MessageViewer
0025 {
0026 class DefaultRendererPrivate;
0027 class HtmlWriter;
0028 class AttachmentStrategy;
0029 class CSSHelperBase;
0030 
0031 class DefaultRenderer
0032 {
0033 public:
0034     explicit DefaultRenderer(CSSHelperBase *cssHelder);
0035     ~DefaultRenderer();
0036 
0037     void setShowOnlyOneMimePart(bool onlyOneMimePart);
0038     void setAttachmentStrategy(const AttachmentStrategy *strategy);
0039     void setShowEmoticons(bool showEmoticons);
0040     void setIsPrinting(bool isPrinting);
0041     void setShowExpandQuotesMark(bool showExpandQuotesMark);
0042     void setShowSignatureDetails(bool showSignatureDetails);
0043     void setLevelQuote(int levelQuote);
0044     void setHtmlLoadExternal(bool htmlLoadExternal);
0045     void setCreateMessageHeader(const std::function<QString(KMime::Message *)> &);
0046     void render(const MimeTreeParser::MessagePartPtr &msgPart, HtmlWriter *writer);
0047     void setShowEncryptionDetails(bool showEncryptionDetails);
0048 
0049 private:
0050     std::unique_ptr<DefaultRendererPrivate> const d;
0051 };
0052 }