From d39aebdce936f251e37c6bdbaed6b8fe38165362 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 22 Feb 2016 22:13:13 +0100 Subject: Replace cid references with to the extracted file. --- framework/mail/stringhtmlwriter.cpp | 11 +++++++++++ framework/mail/stringhtmlwriter.h | 2 ++ 2 files changed, 13 insertions(+) (limited to 'framework') diff --git a/framework/mail/stringhtmlwriter.cpp b/framework/mail/stringhtmlwriter.cpp index 2c84dc6f..df108946 100644 --- a/framework/mail/stringhtmlwriter.cpp +++ b/framework/mail/stringhtmlwriter.cpp @@ -33,6 +33,7 @@ #include #include +#include StringHtmlWriter::StringHtmlWriter() : MessageViewer::HtmlWriter() @@ -70,6 +71,7 @@ void StringHtmlWriter::end() insertExtraHead(); mExtraHead.clear(); } + resolveCidUrls(); mState = Ended; } @@ -106,7 +108,16 @@ void StringHtmlWriter::flush() void StringHtmlWriter::embedPart(const QByteArray &contentId, const QString &url) { write("\n"); + mEmbeddedPartMap.insert(contentId, url); } + +void StringHtmlWriter::resolveCidUrls() +{ + for (const auto &cid : mEmbeddedPartMap.keys()) { + mHtml.replace(QString("src=\"cid:%1\"").arg(QString(cid)), QString("src=\"%1\"").arg(mEmbeddedPartMap.value(cid).toString())); + } +} + void StringHtmlWriter::extraHead(const QString &extraHead) { if (mState != Ended) { diff --git a/framework/mail/stringhtmlwriter.h b/framework/mail/stringhtmlwriter.h index 0805d027..fa0a7aa5 100644 --- a/framework/mail/stringhtmlwriter.h +++ b/framework/mail/stringhtmlwriter.h @@ -55,6 +55,7 @@ public: QString html() const; private: void insertExtraHead(); + void resolveCidUrls(); QString mHtml; QString mExtraHead; @@ -63,6 +64,7 @@ private: Queued, Ended } mState; + QMap mEmbeddedPartMap; }; #endif // __MESSAGEVIEWER_FILEHTMLWRITER_H__ -- cgit v1.2.3