summaryrefslogtreecommitdiffstats
path: root/framework/src
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-10-12 17:30:38 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-10-12 17:30:38 +0200
commita2894c03a83d3d9a00d44c752aa94fc12c96d858 (patch)
tree7dc9056d7c249ac7b78d446ee4aaf68dea9173f8 /framework/src
parentc01bd56f6fd78a33669e683f088db36d6c920f39 (diff)
downloadkube-a2894c03a83d3d9a00d44c752aa94fc12c96d858.tar.gz
kube-a2894c03a83d3d9a00d44c752aa94fc12c96d858.zip
Load html messages as html
Diffstat (limited to 'framework/src')
-rw-r--r--framework/src/domain/composercontroller.cpp5
-rw-r--r--framework/src/domain/mime/mailtemplates.cpp13
-rw-r--r--framework/src/domain/mime/mailtemplates.h1
3 files changed, 18 insertions, 1 deletions
diff --git a/framework/src/domain/composercontroller.cpp b/framework/src/domain/composercontroller.cpp
index abb4fdf4..258c25d5 100644
--- a/framework/src/domain/composercontroller.cpp
+++ b/framework/src/domain/composercontroller.cpp
@@ -346,7 +346,10 @@ void ComposerController::setMessage(const KMime::Message::Ptr &msg)
346 mBccModel->setStringList(getStringListFromAddresses(msg->bcc(true)->mailboxes())); 346 mBccModel->setStringList(getStringListFromAddresses(msg->bcc(true)->mailboxes()));
347 347
348 setSubject(msg->subject(true)->asUnicodeString()); 348 setSubject(msg->subject(true)->asUnicodeString());
349 setBody(MailTemplates::plaintextContent(msg)); 349 bool isHtml = false;
350 const auto body = MailTemplates::body(msg, isHtml);
351 setHtmlBody(isHtml);
352 setBody(body);
350 353
351 //TODO use ObjecTreeParser to get encrypted attachments as well 354 //TODO use ObjecTreeParser to get encrypted attachments as well
352 foreach (const auto &att, msg->attachments()) { 355 foreach (const auto &att, msg->attachments()) {
diff --git a/framework/src/domain/mime/mailtemplates.cpp b/framework/src/domain/mime/mailtemplates.cpp
index e8d80d40..bbe079d8 100644
--- a/framework/src/domain/mime/mailtemplates.cpp
+++ b/framework/src/domain/mime/mailtemplates.cpp
@@ -887,6 +887,19 @@ QString MailTemplates::plaintextContent(const KMime::Message::Ptr &msg)
887 return plain; 887 return plain;
888} 888}
889 889
890QString MailTemplates::body(const KMime::Message::Ptr &msg, bool &isHtml)
891{
892 MimeTreeParser::ObjectTreeParser otp;
893 otp.parseObjectTree(msg.data());
894 const auto html = otp.htmlContent();
895 if (html.isEmpty()) {
896 isHtml = false;
897 return otp.plainTextContent();
898 }
899 isHtml = true;
900 return html;
901}
902
890static KMime::Content *createAttachmentPart(const QByteArray &content, const QString &filename, bool isInline, const QByteArray &mimeType, const QString &name) 903static KMime::Content *createAttachmentPart(const QByteArray &content, const QString &filename, bool isInline, const QByteArray &mimeType, const QString &name)
891{ 904{
892 905
diff --git a/framework/src/domain/mime/mailtemplates.h b/framework/src/domain/mime/mailtemplates.h
index d28b100e..51db2ba0 100644
--- a/framework/src/domain/mime/mailtemplates.h
+++ b/framework/src/domain/mime/mailtemplates.h
@@ -36,5 +36,6 @@ namespace MailTemplates
36{ 36{
37 void reply(const KMime::Message::Ptr &origMsg, const std::function<void(const KMime::Message::Ptr &result)> &callback, const KMime::Types::AddrSpecList &me = {}); 37 void reply(const KMime::Message::Ptr &origMsg, const std::function<void(const KMime::Message::Ptr &result)> &callback, const KMime::Types::AddrSpecList &me = {});
38 QString plaintextContent(const KMime::Message::Ptr &origMsg); 38 QString plaintextContent(const KMime::Message::Ptr &origMsg);
39 QString body(const KMime::Message::Ptr &msg, bool &isHtml);
39 KMime::Message::Ptr createMessage(KMime::Message::Ptr existingMessage, const QStringList &to, const QStringList &cc, const QStringList &bcc, const KMime::Types::Mailbox &from, const QString &subject, const QString &body, bool htmlBody, const QList<Attachment> &attachments, const std::vector<GpgME::Key> &signingKeys = {}); 40 KMime::Message::Ptr createMessage(KMime::Message::Ptr existingMessage, const QStringList &to, const QStringList &cc, const QStringList &bcc, const KMime::Types::Mailbox &from, const QString &subject, const QString &body, bool htmlBody, const QList<Attachment> &attachments, const std::vector<GpgME::Key> &signingKeys = {});
40}; 41};