File 0001-Fix-Bug-387061-Large-messages-don-t-display-in-the-v.patch of Package messagelib
From 991eb9c20286bdce2458d7dbc17765dd7b0d7b38 Mon Sep 17 00:00:00 2001
From: Laurent Montel <montel@kde.org>
Date: Mon, 13 Jan 2020 07:35:15 +0100
Subject: [PATCH] Fix Bug 387061 - Large messages don't display in the viewer
pane (eg. New Tumbleweed snapshot 20171117 released!)
FIXED-IN: 5.14.0
BUG: 387061
---
.../src/htmlwriter/webengineparthtmlwriter.cpp | 18 +++++++++++++++++-
.../src/htmlwriter/webengineparthtmlwriter.h | 3 ++-
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp b/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp
index 17abda10..f88ecee3 100644
--- a/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp
+++ b/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp
@@ -25,6 +25,8 @@
#include <cassert>
#include <QByteArray>
+#include <QTemporaryFile>
+#include <QDir>
using namespace MessageViewer;
@@ -38,6 +40,7 @@ WebEnginePartHtmlWriter::WebEnginePartHtmlWriter(MailWebEngineView *view, QObjec
WebEnginePartHtmlWriter::~WebEnginePartHtmlWriter()
{
+ delete mTempFile;
}
void WebEnginePartHtmlWriter::begin()
@@ -47,6 +50,8 @@ void WebEnginePartHtmlWriter::begin()
reset();
}
+ delete mTempFile;
+
BufferedHtmlWriter::begin();
MessageViewer::WebEngineEmbedPart::self()->clear();
mState = Begun;
@@ -63,8 +68,19 @@ void WebEnginePartHtmlWriter::end()
mExtraHead.clear();
}
// see QWebEnginePage::setHtml()
- mHtmlView->setContent(data(), QStringLiteral("text/html;charset=UTF-8"), QUrl(QStringLiteral("file:///")));
+ //mHtmlView->setContent(data(), QStringLiteral("text/html;charset=UTF-8"), QUrl(QStringLiteral("file:///")));
+
+ mTempFile = new QTemporaryFile(QDir::tempPath() + QLatin1String("/messageviewer_XXXXXX")+ QLatin1String(".html"));
+ mTempFile->open();
+ QTextStream stream(mTempFile);
+ stream.setCodec("UTF-8");
+ stream << data();
+
+ //Bug 387061
+ mHtmlView->load(QUrl::fromLocalFile(mTempFile->fileName()));
+ //qDebug() << " tempFile.fileName()" << mTempFile->fileName();
mHtmlView->show();
+ mTempFile->close();
clear();
mHtmlView->setUpdatesEnabled(true);
diff --git a/messageviewer/src/htmlwriter/webengineparthtmlwriter.h b/messageviewer/src/htmlwriter/webengineparthtmlwriter.h
index b45dd3b5..31801cdb 100644
--- a/messageviewer/src/htmlwriter/webengineparthtmlwriter.h
+++ b/messageviewer/src/htmlwriter/webengineparthtmlwriter.h
@@ -23,7 +23,7 @@
#include <QString>
#include <QByteArray>
-
+class QTemporaryFile;
namespace MessageViewer {
class MailWebEngineView;
}
@@ -56,6 +56,7 @@ private:
Queued,
Ended
} mState;
+ QTemporaryFile *mTempFile = nullptr;
};
}
#endif // WEBENGINEPARTHTMLWRITER_H
--
2.24.1