diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-10-12 17:30:38 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-10-12 17:30:38 +0200 |
commit | a2894c03a83d3d9a00d44c752aa94fc12c96d858 (patch) | |
tree | 7dc9056d7c249ac7b78d446ee4aaf68dea9173f8 | |
parent | c01bd56f6fd78a33669e683f088db36d6c920f39 (diff) | |
download | kube-a2894c03a83d3d9a00d44c752aa94fc12c96d858.tar.gz kube-a2894c03a83d3d9a00d44c752aa94fc12c96d858.zip |
Load html messages as html
-rw-r--r-- | components/kube/contents/ui/ComposerView.qml | 1 | ||||
-rw-r--r-- | framework/src/domain/composercontroller.cpp | 5 | ||||
-rw-r--r-- | framework/src/domain/mime/mailtemplates.cpp | 13 | ||||
-rw-r--r-- | framework/src/domain/mime/mailtemplates.h | 1 |
4 files changed, 19 insertions, 1 deletions
diff --git a/components/kube/contents/ui/ComposerView.qml b/components/kube/contents/ui/ComposerView.qml index 95f267b2..9456e786 100644 --- a/components/kube/contents/ui/ComposerView.qml +++ b/components/kube/contents/ui/ComposerView.qml | |||
@@ -283,6 +283,7 @@ Kube.View { | |||
283 | text: checked ? qsTr("plain") : qsTr("html") | 283 | text: checked ? qsTr("plain") : qsTr("html") |
284 | focusPolicy: Qt.TabFocus | 284 | focusPolicy: Qt.TabFocus |
285 | focus: false | 285 | focus: false |
286 | checked: composerController.htmlBody | ||
286 | } | 287 | } |
287 | 288 | ||
288 | Row { | 289 | Row { |
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 | ||
890 | QString 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 | |||
890 | static KMime::Content *createAttachmentPart(const QByteArray &content, const QString &filename, bool isInline, const QByteArray &mimeType, const QString &name) | 903 | static 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 | }; |