summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/kube/contents/ui/ComposerView.qml1
-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
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
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};