diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-02-23 08:05:03 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-02-23 08:05:03 +0100 |
commit | 37d1ff146cda492b02c6b199e1b33f671c1fa9f9 (patch) | |
tree | be93b31cd77857e8acfc55e110d3adf3bf96db21 | |
parent | d39aebdce936f251e37c6bdbaed6b8fe38165362 (diff) | |
download | kube-37d1ff146cda492b02c6b199e1b33f671c1fa9f9.tar.gz kube-37d1ff146cda492b02c6b199e1b33f671c1fa9f9.zip |
Keep the NodeHelper around to guarantee the availability of the
extracted files
-rw-r--r-- | framework/mail/messageparser.cpp | 6 | ||||
-rw-r--r-- | framework/mail/messageparser.h | 6 |
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 | |||
27 | namespace MessageViewer { | ||
28 | class NodeHelper; | ||
29 | }; | ||
25 | 30 | ||
26 | class MessageParser : public QObject | 31 | class MessageParser : public QObject |
27 | { | 32 | { |
@@ -42,4 +47,5 @@ signals: | |||
42 | 47 | ||
43 | private: | 48 | private: |
44 | QString mHtml; | 49 | QString mHtml; |
50 | std::shared_ptr<MessageViewer::NodeHelper> mNodeHelper; | ||
45 | }; | 51 | }; |