diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-06-29 17:27:31 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-06-29 17:27:31 +0200 |
commit | d81eea635c2151c2c9c62a53c08e427c38ad0acd (patch) | |
tree | 3dc1eda9702f060eac17581b74c7b848dcc7301c /framework/src/domain/mime/mimetreeparser/multipartalternative.cpp | |
parent | 4e338ae323fc6fcdfb641cf463f60946bcbbc60e (diff) | |
download | kube-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.cpp | 28 |
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 | } |