File indexing completed on 2025-03-09 04:54:33
0001 /* 0002 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #pragma once 0007 0008 #include "bufferedhtmlwriter.h" 0009 #include <QObject> 0010 0011 #include <QByteArray> 0012 #include <QString> 0013 class QTemporaryFile; 0014 namespace MessageViewer 0015 { 0016 class MailWebEngineView; 0017 } 0018 0019 namespace MessageViewer 0020 { 0021 class WebEnginePartHtmlWriter : public QObject, public BufferedHtmlWriter 0022 { 0023 Q_OBJECT 0024 public: 0025 explicit WebEnginePartHtmlWriter(MailWebEngineView *view, QObject *parent = nullptr); 0026 ~WebEnginePartHtmlWriter() override; 0027 0028 void begin() override; 0029 void end() override; 0030 void reset() override; 0031 void embedPart(const QByteArray &contentId, const QString &url) override; 0032 void setExtraHead(const QString &str) override; 0033 0034 void setStyleBody(const QString &styleBody) override; 0035 0036 Q_SIGNALS: 0037 void finished(); 0038 0039 private: 0040 void insertExtraHead(); 0041 void insertBodyStyle(); 0042 0043 private: 0044 MailWebEngineView *const mHtmlView; 0045 QString mExtraHead; 0046 QString mStyleBody; 0047 enum State { Begun, Queued, Ended } mState = Ended; 0048 QTemporaryFile *mTempFile = nullptr; 0049 }; 0050 }