File indexing completed on 2025-03-09 04:54:33

0001 /*
0002    SPDX-FileCopyrightText: 2017 Volker Krause <vkrause@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "messageviewer_export.h"
0010 #include <MessageViewer/HtmlWriter>
0011 
0012 #include <QBuffer>
0013 #include <QByteArray>
0014 
0015 namespace MessageViewer
0016 {
0017 /**
0018  * QBuffer-backed HtmlWriter
0019  */
0020 class MESSAGEVIEWER_EXPORT BufferedHtmlWriter : public HtmlWriter
0021 {
0022 public:
0023     BufferedHtmlWriter();
0024     ~BufferedHtmlWriter() override;
0025 
0026     void begin() override;
0027     void end() override;
0028     void reset() override;
0029     [[nodiscard]] QIODevice *device() const override;
0030 
0031     [[nodiscard]] QByteArray data() const;
0032     void clear();
0033 
0034     void setExtraHead(const QString &str) override;
0035     void embedPart(const QByteArray &contentId, const QString &url) override;
0036     void setStyleBody(const QString &styleBody) override;
0037 
0038 protected:
0039     QByteArray m_data;
0040 
0041 private:
0042     QBuffer m_buffer;
0043 };
0044 }