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

openSUSE Build Service is sponsored by