summaryrefslogtreecommitdiffstats
path: root/framework/domain/mimetreeparser/interface.cpp
diff options
context:
space:
mode:
authorSandro Knauß <sknauss@kde.org>2016-07-26 13:52:06 +0200
committerSandro Knauß <sknauss@kde.org>2016-07-26 13:52:06 +0200
commit0272f1e8bb7f8c86c86958e3e022aac8b34a266c (patch)
tree771598fb40fbec6fa97c060b236173d7bf08f821 /framework/domain/mimetreeparser/interface.cpp
parent903960116eb3329631702723bba11f5463eff573 (diff)
downloadkube-0272f1e8bb7f8c86c86958e3e022aac8b34a266c.tar.gz
kube-0272f1e8bb7f8c86c86958e3e022aac8b34a266c.zip
make the tests compile again
Diffstat (limited to 'framework/domain/mimetreeparser/interface.cpp')
-rw-r--r--framework/domain/mimetreeparser/interface.cpp107
1 files changed, 107 insertions, 0 deletions
diff --git a/framework/domain/mimetreeparser/interface.cpp b/framework/domain/mimetreeparser/interface.cpp
index 5cf36d10..a76a6cde 100644
--- a/framework/domain/mimetreeparser/interface.cpp
+++ b/framework/domain/mimetreeparser/interface.cpp
@@ -28,8 +28,77 @@
28#include <MimeTreeParser/MessagePart> 28#include <MimeTreeParser/MessagePart>
29#include <MimeTreeParser/NodeHelper> 29#include <MimeTreeParser/NodeHelper>
30 30
31#include <QMimeDatabase>
32#include <QMimeType>
31#include <QDebug> 33#include <QDebug>
32 34
35class MailMimePrivate
36{
37public:
38 KMime::Content *mNode;
39 MailMime *q;
40};
41
42MailMime::MailMime()
43 : d(std::unique_ptr<MailMimePrivate>(new MailMimePrivate()))
44{
45 d->q = this;
46}
47
48bool MailMime::isFirstTextPart() const
49{
50 if (!d->mNode) {
51 return false;
52 }
53 return (d->mNode->topLevel()->textContent() == d->mNode);
54}
55
56MailMime::Disposition MailMime::disposition() const
57{
58 if (!d->mNode) {
59 return Invalid;
60 }
61 const auto cd = d->mNode->contentDisposition(false);
62 if (!cd) {
63 return Invalid;
64 }
65 switch (cd->disposition()){
66 case KMime::Headers::CDinline:
67 return Inline;
68 case KMime::Headers::CDattachment:
69 return Attachment;
70 default:
71 return Invalid;
72 }
73}
74
75QString MailMime::filename() const
76{
77 if (!d->mNode) {
78 return QString();
79 }
80 const auto cd = d->mNode->contentDisposition(false);
81 if (!cd) {
82 return QString();
83 }
84 return cd->filename();
85}
86
87QMimeType MailMime::mimetype() const
88{
89 if (!d->mNode) {
90 return QMimeType();
91 }
92
93 const auto ct = d->mNode->contentType(false);
94 if (!ct) {
95 return QMimeType();
96 }
97
98 QMimeDatabase mimeDb;
99 return mimeDb.mimeTypeForName(ct->mimeType());
100}
101
33class PartPrivate 102class PartPrivate
34{ 103{
35public: 104public:
@@ -39,10 +108,13 @@ public:
39 QVector<Part::Ptr> subParts(); 108 QVector<Part::Ptr> subParts();
40 109
41 Part *parent() const; 110 Part *parent() const;
111
112 const MailMime::Ptr &mailMime() const;
42private: 113private:
43 Part *q; 114 Part *q;
44 Part *mParent; 115 Part *mParent;
45 QVector<Part::Ptr> mSubParts; 116 QVector<Part::Ptr> mSubParts;
117 MailMime::Ptr mMailMime;
46}; 118};
47 119
48PartPrivate::PartPrivate(Part* part) 120PartPrivate::PartPrivate(Part* part)
@@ -68,6 +140,11 @@ QVector< Part::Ptr > PartPrivate::subParts()
68 return mSubParts; 140 return mSubParts;
69} 141}
70 142
143const MailMime::Ptr& PartPrivate::mailMime() const
144{
145 return mMailMime;
146}
147
71Part::Part() 148Part::Part()
72 : d(std::unique_ptr<PartPrivate>(new PartPrivate(this))) 149 : d(std::unique_ptr<PartPrivate>(new PartPrivate(this)))
73{ 150{
@@ -96,6 +173,11 @@ QVector<QByteArray> Part::availableContents() const
96 173
97QVector<Content::Ptr> Part::content() const 174QVector<Content::Ptr> Part::content() const
98{ 175{
176 return content(availableContents().first());
177}
178
179QVector<Content::Ptr> Part::content(const QByteArray& ct) const
180{
99 return QVector<Content::Ptr>(); 181 return QVector<Content::Ptr>();
100} 182}
101 183
@@ -119,6 +201,11 @@ QVector<Signature> Part::signatures() const
119 } 201 }
120} 202}
121 203
204MailMime::Ptr Part::mailMime() const
205{
206 return d->mailMime();
207}
208
122class ContentPrivate 209class ContentPrivate
123{ 210{
124public: 211public:
@@ -126,6 +213,7 @@ public:
126 QByteArray mCodec; 213 QByteArray mCodec;
127 Part *mParent; 214 Part *mParent;
128 Content *q; 215 Content *q;
216 MailMime::Ptr mMailMime;
129}; 217};
130 218
131Content::Content(const QByteArray& content, Part *parent) 219Content::Content(const QByteArray& content, Part *parent)
@@ -167,18 +255,37 @@ QByteArray Content::charset() const
167 return d->mCodec; 255 return d->mCodec;
168} 256}
169 257
258QByteArray Content::type() const
259{
260 return "Content";
261}
262
263MailMime::Ptr Content::mailMime() const
264{
265 return d->mMailMime;
266}
267
170HtmlContent::HtmlContent(const QByteArray& content, Part* parent) 268HtmlContent::HtmlContent(const QByteArray& content, Part* parent)
171 : Content(content, parent) 269 : Content(content, parent)
172{ 270{
173 271
174} 272}
175 273
274QByteArray HtmlContent::type() const
275{
276 return "HtmlContent";
277}
278
176PlainTextContent::PlainTextContent(const QByteArray& content, Part* parent) 279PlainTextContent::PlainTextContent(const QByteArray& content, Part* parent)
177 : Content(content, parent) 280 : Content(content, parent)
178{ 281{
179 282
180} 283}
181 284
285QByteArray PlainTextContent::type() const
286{
287 return "PlainTextContent";
288}
182 289
183class AlternativePartPrivate 290class AlternativePartPrivate
184{ 291{