6 #include "webengineparthtmlwriter.h"
7 #include "webengineembedpart.h"
9 #include "messageviewer/messageviewerutil.h"
10 #include "messageviewer_debug.h"
11 #include "viewer/webengine/mailwebengineview.h"
15 #include <QTemporaryFile>
18 using namespace MessageViewer;
27 WebEnginePartHtmlWriter::~WebEnginePartHtmlWriter()
32 void WebEnginePartHtmlWriter::begin()
34 if (mState != Ended) {
35 qCWarning(MESSAGEVIEWER_LOG) <<
"begin() called on non-ended session!";
42 BufferedHtmlWriter::begin();
43 MessageViewer::WebEngineEmbedPart::self()->clear();
47 void WebEnginePartHtmlWriter::end()
49 BufferedHtmlWriter::end();
50 if (mState != Begun) {
51 qCWarning(MESSAGEVIEWER_LOG) <<
"Called on non-begun or queued session!";
53 if (!mExtraHead.isEmpty()) {
57 if (!mStyleBody.isEmpty()) {
61 if (data().size() > 2000000) {
66 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
67 const QByteArray codecValue = Util::htmlCodec(data(), codec());
70 stream.setEncoding(Util::htmlEncoding(data(), codec()));
79 mHtmlView->setContent(data(), QStringLiteral(
"text/html;charset=UTF-8"),
QUrl(QStringLiteral(
"file:///")));
84 mHtmlView->setUpdatesEnabled(
true);
90 void WebEnginePartHtmlWriter::reset()
92 BufferedHtmlWriter::reset();
93 if (mState != Ended) {
100 void WebEnginePartHtmlWriter::embedPart(
const QByteArray &contentId,
const QString &contentURL)
102 MessageViewer::WebEngineEmbedPart::self()->addEmbedPart(contentId, contentURL);
105 void WebEnginePartHtmlWriter::insertExtraHead()
107 const auto headTag(QByteArrayLiteral(
"<head>"));
108 const int index = m_data.indexOf(headTag);
110 m_data.insert(index + headTag.length(), mExtraHead.toUtf8());
114 void WebEnginePartHtmlWriter::insertBodyStyle()
116 const auto bodyTag(QByteArrayLiteral(
"<body>"));
117 const int index = m_data.indexOf(bodyTag);
119 m_data.insert(index + bodyTag.length() - 1, mStyleBody.toUtf8());
123 void WebEnginePartHtmlWriter::setStyleBody(
const QString &styleBody)
125 mStyleBody = styleBody;
128 void WebEnginePartHtmlWriter::setExtraHead(
const QString &str)