summaryrefslogtreecommitdiffstats
path: root/framework/domain/messageparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/domain/messageparser.cpp')
-rw-r--r--framework/domain/messageparser.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/framework/domain/messageparser.cpp b/framework/domain/messageparser.cpp
index 956bfb65..7089e2d8 100644
--- a/framework/domain/messageparser.cpp
+++ b/framework/domain/messageparser.cpp
@@ -27,6 +27,7 @@
27#include <QDebug> 27#include <QDebug>
28#include <QTime> 28#include <QTime>
29#include <MimeTreeParser/ObjectTreeParser> 29#include <MimeTreeParser/ObjectTreeParser>
30#include <MimeTreeParser/MessagePart>
30 31
31MessageParser::MessageParser(QObject *parent) 32MessageParser::MessageParser(QObject *parent)
32 : QObject(parent) 33 : QObject(parent)
@@ -63,10 +64,16 @@ void MessageParser::setMessage(const QVariant &message)
63 ObjectTreeSource source(&htmlWriter, &cssHelper); 64 ObjectTreeSource source(&htmlWriter, &cssHelper);
64 MimeTreeParser::ObjectTreeParser otp(&source, mNodeHelper.get()); 65 MimeTreeParser::ObjectTreeParser otp(&source, mNodeHelper.get());
65 66
67 const auto partTree = otp.parseToTree(msg.data()).dynamicCast<MimeTreeParser::MessagePartList>();
68
66 htmlWriter.begin(QString()); 69 htmlWriter.begin(QString());
67 htmlWriter.queue(cssHelper.htmlHead(false)); 70 htmlWriter.queue(cssHelper.htmlHead(false));
68 71
69 otp.parseObjectTree(msg.data()); 72 if (partTree) {
73 partTree->fix();
74 partTree->copyContentFrom();
75 partTree->html(false);
76 }
70 77
71 htmlWriter.queue(QStringLiteral("</body></html>")); 78 htmlWriter.queue(QStringLiteral("</body></html>"));
72 htmlWriter.end(); 79 htmlWriter.end();