summaryrefslogtreecommitdiffstats
path: root/framework/domain/mimetreeparser/interface.cpp
diff options
context:
space:
mode:
authorSandro Knauß <sknauss@kde.org>2016-10-17 16:33:03 +0200
committerSandro Knauß <sknauss@kde.org>2016-10-17 16:33:03 +0200
commit5cb20dd3886ee229d74068c75250691c840e89a1 (patch)
tree09a320d588adc4e9e6c6c3b813518b6688fa111d /framework/domain/mimetreeparser/interface.cpp
parent1fe0ab05ae2bfe6505736f598bd535a71fb86a6f (diff)
downloadkube-5cb20dd3886ee229d74068c75250691c840e89a1.tar.gz
kube-5cb20dd3886ee229d74068c75250691c840e89a1.zip
Read correct charset out of mailpart
Diffstat (limited to 'framework/domain/mimetreeparser/interface.cpp')
-rw-r--r--framework/domain/mimetreeparser/interface.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/framework/domain/mimetreeparser/interface.cpp b/framework/domain/mimetreeparser/interface.cpp
index b5e29e6b..ceb8caf3 100644
--- a/framework/domain/mimetreeparser/interface.cpp
+++ b/framework/domain/mimetreeparser/interface.cpp
@@ -64,6 +64,17 @@ QByteArray MailMime::cid() const
64 return d->mNode->contentID()->identifier(); 64 return d->mNode->contentID()->identifier();
65} 65}
66 66
67QByteArray MailMime::charset() const
68{
69 if(!d->mNode || !d->mNode->contentType(false)) {
70 return QByteArray();
71 }
72 if (d->mNode->contentType(false)) {
73 return d->mNode->contentType(false)->charset();
74 }
75 return d->mNode->defaultCharset();
76}
77
67bool MailMime::isFirstTextPart() const 78bool MailMime::isFirstTextPart() const
68{ 79{
69 if (!d->mNode || !d->mNode->topLevel()) { 80 if (!d->mNode || !d->mNode->topLevel()) {
@@ -559,7 +570,6 @@ void SinglePartPrivate::fillFrom(MimeTreeParser::TextMessagePart::Ptr part)
559 auto d_ptr = new ContentPrivate; 570 auto d_ptr = new ContentPrivate;
560 d_ptr->mContent = mp->text().toLocal8Bit(); 571 d_ptr->mContent = mp->text().toLocal8Bit();
561 d_ptr->mParent = q; 572 d_ptr->mParent = q;
562 d_ptr->mCodec = "utf-8";
563 const auto enc = mp.dynamicCast<MimeTreeParser::EncryptedMessagePart>(); 573 const auto enc = mp.dynamicCast<MimeTreeParser::EncryptedMessagePart>();
564 auto sig = mp.dynamicCast<MimeTreeParser::SignedMessagePart>(); 574 auto sig = mp.dynamicCast<MimeTreeParser::SignedMessagePart>();
565 if (enc) { 575 if (enc) {
@@ -574,6 +584,7 @@ void SinglePartPrivate::fillFrom(MimeTreeParser::TextMessagePart::Ptr part)
574 } 584 }
575 mContent.append(std::make_shared<PlainTextContent>(d_ptr)); 585 mContent.append(std::make_shared<PlainTextContent>(d_ptr));
576 q->reachParentD()->createMailMime(part); 586 q->reachParentD()->createMailMime(part);
587 d_ptr->mCodec = q->mailMime()->charset();
577 } 588 }
578} 589}
579 590