7#include "job/multipartjob.h"
8#include "contentjobbase_p.h"
10#include "messagecomposer_debug.h"
12#include <KMime/Content>
16class MessageComposer::MultipartJobPrivate :
public ContentJobBasePrivate
19 MultipartJobPrivate(MultipartJob *qq)
20 : ContentJobBasePrivate(qq)
27MultipartJob::MultipartJob(
QObject *parent)
32MultipartJob::~MultipartJob() =
default;
34QByteArray MultipartJob::multipartSubtype()
const
36 Q_D(
const MultipartJob);
40void MultipartJob::setMultipartSubtype(
const QByteArray &subtype)
46void MultipartJob::process()
49 Q_ASSERT(d->resultContent ==
nullptr);
50 Q_ASSERT(!d->subtype.isEmpty());
51 d->resultContent =
new KMime::Content;
52 auto contentType = d->resultContent->contentType(
true);
53 contentType->setMimeType(
"multipart/" + d->subtype);
54 contentType->setBoundary(KMime::multiPartBoundary());
55 d->resultContent->contentTransferEncoding()->setEncoding(KMime::Headers::CE7Bit);
56 d->resultContent->setPreamble(
"This is a multi-part message in MIME format.\n");
57 for (KMime::Content *c : std::as_const(d->subjobContents)) {
58 d->resultContent->appendContent(c);
59 if (c->contentTransferEncoding()->encoding() == KMime::Headers::CE8Bit) {
60 d->resultContent->contentTransferEncoding()->setEncoding(KMime::Headers::CE8Bit);
64 qCDebug(MESSAGECOMPOSER_LOG) <<
"Created" << d->resultContent->contentType()->mimeType() <<
"content with" << d->resultContent->contents().count()
69#include "moc_multipartjob.cpp"
The ContentJobBase class.
Simple interface that both EncryptJob and SignEncryptJob implement so the composer can extract some e...