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) {
67 const QByteArray codecValue = Util::htmlCodec(data(), codec());
76 mHtmlView->setContent(data(), QStringLiteral(
"text/html;charset=UTF-8"),
QUrl(QStringLiteral(
"file:///")));
81 mHtmlView->setUpdatesEnabled(
true);
87 void WebEnginePartHtmlWriter::reset()
89 BufferedHtmlWriter::reset();
90 if (mState != Ended) {
97 void WebEnginePartHtmlWriter::embedPart(
const QByteArray &contentId,
const QString &contentURL)
99 MessageViewer::WebEngineEmbedPart::self()->addEmbedPart(contentId, contentURL);
102 void WebEnginePartHtmlWriter::insertExtraHead()
104 const auto headTag(QByteArrayLiteral(
"<head>"));
105 const int index = m_data.indexOf(headTag);
107 m_data.insert(index + headTag.length(), mExtraHead.toUtf8());
111 void WebEnginePartHtmlWriter::insertBodyStyle()
113 const auto bodyTag(QByteArrayLiteral(
"<body>"));
114 const int index = m_data.indexOf(bodyTag);
116 m_data.insert(index + bodyTag.length() - 1, mStyleBody.toUtf8());
120 void WebEnginePartHtmlWriter::setStyleBody(
const QString &styleBody)
122 mStyleBody = styleBody;
125 void WebEnginePartHtmlWriter::setExtraHead(
const QString &str)