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>
18using namespace MessageViewer;
27WebEnginePartHtmlWriter::~WebEnginePartHtmlWriter()
32void WebEnginePartHtmlWriter::begin()
34 if (mState != State::Ended) {
35 qCWarning(MESSAGEVIEWER_LOG) <<
"begin() called on non-ended session!";
43 MessageViewer::WebEngineEmbedPart::self()->clear();
44 mState = State::Begun;
47void WebEnginePartHtmlWriter::end()
50 if (mState != State::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) {
63 mTempFile =
new QTemporaryFile(
QDir::tempPath() + QLatin1StringView(
"/messageviewer_XXXXXX") + QLatin1StringView(
".html"));
65 mTempFile->write(data());
72 mHtmlView->setContent(data(), QStringLiteral(
"text/html;charset=UTF-8"), QUrl(QStringLiteral(
"file:///")));
77 mHtmlView->setUpdatesEnabled(
true);
79 mState = State::Ended;
83void WebEnginePartHtmlWriter::reset()
86 if (mState != State::Ended) {
87 mState = State::Begun;
89 mState = State::Ended;
93void WebEnginePartHtmlWriter::embedPart(
const QByteArray &contentId,
const QString &contentURL)
95 MessageViewer::WebEngineEmbedPart::self()->addEmbedPart(contentId, contentURL);
98void WebEnginePartHtmlWriter::insertExtraHead()
100 const auto headTag(QByteArrayLiteral(
"<head>"));
101 const int index = m_data.indexOf(headTag);
103 m_data.insert(index + headTag.length(), mExtraHead.toUtf8());
107void WebEnginePartHtmlWriter::insertBodyStyle()
109 const auto bodyTag(QByteArrayLiteral(
"<body>"));
110 const int index = m_data.indexOf(bodyTag);
112 m_data.insert(index + bodyTag.length() - 1, mStyleBody.toUtf8());
116void WebEnginePartHtmlWriter::setStyleBody(
const QString &styleBody)
118 mStyleBody = styleBody;
121void WebEnginePartHtmlWriter::setExtraHead(
const QString &str)
126#include "moc_webengineparthtmlwriter.cpp"
void reset() override
Stop all possibly pending processing in order to be able to call begin() again.
void begin() override
Signal the begin of stuff to write.
void end() override
Signal the end of stuff to write.
The MailWebEngineView class.
QUrl fromLocalFile(const QString &localFile)