summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/mime/mimetreeparser/multipartalternative.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2018-06-29 17:27:31 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2018-06-29 17:27:31 +0200
commitd81eea635c2151c2c9c62a53c08e427c38ad0acd (patch)
tree3dc1eda9702f060eac17581b74c7b848dcc7301c /framework/src/domain/mime/mimetreeparser/multipartalternative.cpp
parent4e338ae323fc6fcdfb641cf463f60946bcbbc60e (diff)
downloadkube-d81eea635c2151c2c9c62a53c08e427c38ad0acd.tar.gz
kube-d81eea635c2151c2c9c62a53c08e427c38ad0acd.zip
Partial fix for multipart/mixed in alternative part
We only render the first part right now, which is not correct.
Diffstat (limited to 'framework/src/domain/mime/mimetreeparser/multipartalternative.cpp')
-rw-r--r--framework/src/domain/mime/mimetreeparser/multipartalternative.cpp28
1 files changed, 1 insertions, 27 deletions
diff --git a/framework/src/domain/mime/mimetreeparser/multipartalternative.cpp b/framework/src/domain/mime/mimetreeparser/multipartalternative.cpp
index d0657edb..b1500136 100644
--- a/framework/src/domain/mime/mimetreeparser/multipartalternative.cpp
+++ b/framework/src/domain/mime/mimetreeparser/multipartalternative.cpp
@@ -47,35 +47,9 @@ MessagePart::Ptr MultiPartAlternativeBodyPartFormatter::process(Interface::BodyP
47 return MessagePart::Ptr(); 47 return MessagePart::Ptr();
48 } 48 }
49 49
50 //Hardcoded after removing the source
51 auto preferredMode = MimeTreeParser::Util::Html;
52 AlternativeMessagePart::Ptr mp(new AlternativeMessagePart(part.objectTreeParser(), node)); 50 AlternativeMessagePart::Ptr mp(new AlternativeMessagePart(part.objectTreeParser(), node));
53 if (mp->mChildNodes.isEmpty()) { 51 if (mp->mChildParts.isEmpty()) {
54 return MimeMessagePart::Ptr(new MimeMessagePart(part.objectTreeParser(), node->contents().at(0))); 52 return MimeMessagePart::Ptr(new MimeMessagePart(part.objectTreeParser(), node->contents().at(0)));
55 } 53 }
56
57 KMime::Content *dataIcal = mp->mChildNodes.contains(Util::MultipartIcal) ? mp->mChildNodes[Util::MultipartIcal] : nullptr;
58 KMime::Content *dataHtml = mp->mChildNodes.contains(Util::MultipartHtml) ? mp->mChildNodes[Util::MultipartHtml] : nullptr;
59 KMime::Content *dataPlain = mp->mChildNodes.contains(Util::MultipartPlain) ? mp->mChildNodes[Util::MultipartPlain] : nullptr;
60
61 // Make sure that in default ical is prefered over html and plain text
62 if (dataIcal && ((preferredMode != Util::MultipartHtml && preferredMode != Util::MultipartPlain))) {
63 if (dataHtml) {
64 part.nodeHelper()->setNodeProcessed(dataHtml, false);
65 }
66 if (dataPlain) {
67 part.nodeHelper()->setNodeProcessed(dataPlain, false);
68 }
69 preferredMode = Util::MultipartIcal;
70 } else if ((dataHtml && (preferredMode == Util::MultipartHtml || preferredMode == Util::Html)) ||
71 (dataHtml && dataPlain && dataPlain->body().isEmpty())) {
72 if (dataPlain) {
73 part.nodeHelper()->setNodeProcessed(dataPlain, false);
74 }
75 preferredMode = Util::MultipartHtml;
76 } else if (!(preferredMode == Util::MultipartHtml) && dataPlain) {
77 part.nodeHelper()->setNodeProcessed(dataHtml, false);
78 preferredMode = Util::MultipartPlain;
79 }
80 return mp; 54 return mp;
81} 55}