summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-02-23 08:05:03 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-02-23 08:05:03 +0100
commit37d1ff146cda492b02c6b199e1b33f671c1fa9f9 (patch)
treebe93b31cd77857e8acfc55e110d3adf3bf96db21
parentd39aebdce936f251e37c6bdbaed6b8fe38165362 (diff)
downloadkube-37d1ff146cda492b02c6b199e1b33f671c1fa9f9.tar.gz
kube-37d1ff146cda492b02c6b199e1b33f671c1fa9f9.zip
Keep the NodeHelper around to guarantee the availability of the
extracted files
-rw-r--r--framework/mail/messageparser.cpp6
-rw-r--r--framework/mail/messageparser.h6
2 files changed, 9 insertions, 3 deletions
diff --git a/framework/mail/messageparser.cpp b/framework/mail/messageparser.cpp
index 2529a677..89f67f38 100644
--- a/framework/mail/messageparser.cpp
+++ b/framework/mail/messageparser.cpp
@@ -53,15 +53,15 @@ void MessageParser::setMessage(const QVariant &message)
53 msg->setContent(mailData); 53 msg->setContent(mailData);
54 msg->parse(); 54 msg->parse();
55 qWarning() << "parsed: " << time.elapsed(); 55 qWarning() << "parsed: " << time.elapsed();
56 qWarning() << "parsed: " << message.toByteArray();
57 56
58 // render the mail 57 // render the mail
59 StringHtmlWriter htmlWriter; 58 StringHtmlWriter htmlWriter;
60 QImage paintDevice; 59 QImage paintDevice;
61 CSSHelper cssHelper(&paintDevice); 60 CSSHelper cssHelper(&paintDevice);
62 MessageViewer::NodeHelper nodeHelper; 61 //temporary files only have the lifetime of the nodehelper, so we keep it around until the mail changes.
62 mNodeHelper = std::make_shared<MessageViewer::NodeHelper>();
63 ObjectTreeSource source(&htmlWriter, &cssHelper); 63 ObjectTreeSource source(&htmlWriter, &cssHelper);
64 MessageViewer::ObjectTreeParser otp(&source, &nodeHelper); 64 MessageViewer::ObjectTreeParser otp(&source, mNodeHelper.get());
65 65
66 htmlWriter.begin(QString()); 66 htmlWriter.begin(QString());
67 htmlWriter.queue(cssHelper.htmlHead(false)); 67 htmlWriter.queue(cssHelper.htmlHead(false));
diff --git a/framework/mail/messageparser.h b/framework/mail/messageparser.h
index 754ac2bd..ba08a5ec 100644
--- a/framework/mail/messageparser.h
+++ b/framework/mail/messageparser.h
@@ -22,6 +22,11 @@
22#include <QObject> 22#include <QObject>
23#include <QString> 23#include <QString>
24#include <QStringList> 24#include <QStringList>
25#include <memory>
26
27namespace MessageViewer {
28 class NodeHelper;
29};
25 30
26class MessageParser : public QObject 31class MessageParser : public QObject
27{ 32{
@@ -42,4 +47,5 @@ signals:
42 47
43private: 48private:
44 QString mHtml; 49 QString mHtml;
50 std::shared_ptr<MessageViewer::NodeHelper> mNodeHelper;
45}; 51};