From 37d1ff146cda492b02c6b199e1b33f671c1fa9f9 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 23 Feb 2016 08:05:03 +0100 Subject: Keep the NodeHelper around to guarantee the availability of the extracted files --- framework/mail/messageparser.cpp | 6 +++--- framework/mail/messageparser.h | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'framework') 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) msg->setContent(mailData); msg->parse(); qWarning() << "parsed: " << time.elapsed(); - qWarning() << "parsed: " << message.toByteArray(); // render the mail StringHtmlWriter htmlWriter; QImage paintDevice; CSSHelper cssHelper(&paintDevice); - MessageViewer::NodeHelper nodeHelper; + //temporary files only have the lifetime of the nodehelper, so we keep it around until the mail changes. + mNodeHelper = std::make_shared(); ObjectTreeSource source(&htmlWriter, &cssHelper); - MessageViewer::ObjectTreeParser otp(&source, &nodeHelper); + MessageViewer::ObjectTreeParser otp(&source, mNodeHelper.get()); htmlWriter.begin(QString()); 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 @@ #include #include #include +#include + +namespace MessageViewer { + class NodeHelper; +}; class MessageParser : public QObject { @@ -42,4 +47,5 @@ signals: private: QString mHtml; + std::shared_ptr mNodeHelper; }; -- cgit v1.2.3