[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdepim-addons/Applications/16.08] plugins/messageviewer/bodypartformatter/calendar: Fix generate an
From:       Montel Laurent <montel () kde ! org>
Date:       2016-08-05 20:36:19
Message-ID: E1bVlqt-0002eP-0Z () code ! kde ! org
[Download RAW message or body]

Git commit 3f85f477a9a3a7258e7f1adede5b3ca380b5303e by Montel Laurent.
Committed on 05/08/2016 at 20:35.
Pushed by mlaurent into branch 'Applications/16.08'.

Fix generate answer

M  +42   -12   plugins/messageviewer/bodypartformatter/calendar/text_calendar.cpp

http://commits.kde.org/kdepim-addons/3f85f477a9a3a7258e7f1adede5b3ca380b5303e

diff --git a/plugins/messageviewer/bodypartformatter/calendar/text_calendar.cpp \
b/plugins/messageviewer/bodypartformatter/calendar/text_calendar.cpp index \
                ebb344a..5732c8e 100644
--- a/plugins/messageviewer/bodypartformatter/calendar/text_calendar.cpp
+++ b/plugins/messageviewer/bodypartformatter/calendar/text_calendar.cpp
@@ -543,21 +543,51 @@ public:
         msg->from()->fromUnicodeString(receiver, "utf-8");
         msg->date()->setDateTime(QDateTime::currentDateTime());
 
-        if (!MessageViewer::MessageViewerSettings::self()->legacyBodyInvites()) {
-            msg->contentType()->from7BitString("text/calendar; method=reply; \
charset=\"utf-8\""); +        if \
(MessageViewer::MessageViewerSettings::self()->legacyBodyInvites()) { +            \
msg->contentType()->setMimeType("text/calendar"); +            \
msg->contentType()->setCharset("utf-8"); +            \
msg->contentType()->setName(QStringLiteral("cal.ics"), "utf-8"); +            \
msg->contentType()->setParameter(QStringLiteral("method"), QStringLiteral("reply")); \
+ +            KMime::Headers::ContentDisposition *disposition = new \
KMime::Headers::ContentDisposition; +            \
disposition->setDisposition(KMime::Headers::CDinline); +            \
                msg->setHeader(disposition);
             msg->contentTransferEncoding()->setEncoding(KMime::Headers::CEquPr);
             msg->setBody(KMime::CRLFtoLF(iCal.toUtf8()));
         } else {
-            KMime::Content *text = new KMime::Content;
-            text->contentType()->from7BitString("text/plain; charset=\"us-ascii\"");
-            text->contentTransferEncoding()->setEncoding(KMime::Headers::CE7Bit);
-            text->setBody("");
-            msg->addContent(text);
-            KMime::Content *body = new KMime::Content;
-            body->contentType()->from7BitString("text/calendar; name=\"cal.ics\"; \
                method=\"reply\"; charset=\"utf-8\"");
-            body->contentTransferEncoding()->setEncoding(KMime::Headers::CEquPr);
-            body->setBody(KMime::CRLFtoLF(iCal.toUtf8()));
-            msg->addContent(body);
+            // We need to set following 4 lines by hand else \
KMime::Content::addContent +            // will create a new Content instance for us \
to attach the main message +            // what we don't need cause we already have \
the main message instance where +            // 2 additional messages are attached.
+            KMime::Headers::ContentType *ct = msg->contentType();
+            ct->setMimeType("multipart/mixed");
+            ct->setBoundary(KMime::multiPartBoundary());
+            ct->setCategory(KMime::Headers::CCcontainer);
+
+            // Set the first multipart, the body message.
+            KMime::Content *bodyMessage = new KMime::Content;
+            KMime::Headers::ContentDisposition *bodyDisposition = new \
KMime::Headers::ContentDisposition; +            \
bodyDisposition->setDisposition(KMime::Headers::CDinline); +            \
bodyMessage->contentType()->setMimeType("text/plain"); +            \
bodyMessage->contentType()->setCharset("utf-8"); +            \
bodyMessage->contentTransferEncoding()->setEncoding(KMime::Headers::CEquPr); +        \
bodyMessage->setBody(KMime::CRLFtoLF(iCal.toUtf8())); +            \
bodyMessage->setHeader(bodyDisposition); +            msg->addContent(bodyMessage);
+
+            // Set the second multipart, the attachment.
+            KMime::Content *attachMessage = new KMime::Content;
+            KMime::Headers::ContentDisposition *attachDisposition = new \
KMime::Headers::ContentDisposition; +            \
attachDisposition->setDisposition(KMime::Headers::CDattachment); +            \
attachMessage->contentType()->setMimeType("text/calendar"); +            \
attachMessage->contentType()->setCharset("utf-8"); +            \
attachMessage->contentType()->setName(QStringLiteral("cal.ics"), "utf-8"); +          \
attachMessage->contentType()->setParameter(QStringLiteral("method"), +                \
QStringLiteral("reply")); +            attachMessage->setHeader(attachDisposition);
+            attachMessage->contentTransferEncoding()->setEncoding(KMime::Headers::CEquPr);
 +            attachMessage->setBody(KMime::CRLFtoLF(iCal.toUtf8()));
+            msg->addContent(attachMessage);
         }
 
         // Try and match the receiver with an identity.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic