Changeset View
Changeset View
Standalone View
Standalone View
messagecomposer/src/composer/composer.cpp
Show First 20 Lines • Show All 48 Lines • ▼ Show 20 Line(s) | 48 | public: | |||
---|---|---|---|---|---|
49 | ComposerPrivate(Composer *qq) | 49 | ComposerPrivate(Composer *qq) | ||
50 | : JobBasePrivate(qq) | 50 | : JobBasePrivate(qq) | ||
51 | { | 51 | { | ||
52 | } | 52 | } | ||
53 | 53 | | |||
54 | void init(); | 54 | void init(); | ||
55 | void doStart(); // slot | 55 | void doStart(); // slot | ||
56 | void composeStep1(); | 56 | void composeStep1(); | ||
57 | void skeletonJobFinished(KJob *job); // slot | | |||
58 | void composeStep2(); | 57 | void composeStep2(); | ||
59 | QList<ContentJobBase *> createEncryptJobs(ContentJobBase *contentJob, bool sign); | 58 | QList<ContentJobBase *> createEncryptJobs(ContentJobBase *contentJob, bool sign); | ||
60 | void contentJobFinished(KJob *job); // slot | 59 | void contentJobFinished(KJob *job); // slot | ||
61 | void composeWithLateAttachments(KMime::Message *headers, KMime::Content *content, const AttachmentPart::List &parts, const std::vector<GpgME::Key> &keys, const QStringList &recipients); | 60 | void composeWithLateAttachments(KMime::Message *headers, KMime::Content *content, const AttachmentPart::List &parts, const std::vector<GpgME::Key> &keys, const QStringList &recipients); | ||
62 | void attachmentsFinished(KJob *job); // slot | 61 | void attachmentsFinished(KJob *job); // slot | ||
63 | 62 | | |||
64 | void composeFinalStep(KMime::Content *headers, KMime::Content *content); | 63 | void composeFinalStep(KMime::Content *headers, KMime::Content *content); | ||
65 | 64 | | |||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Line(s) | |||||
109 | } | 108 | } | ||
110 | 109 | | |||
111 | void ComposerPrivate::composeStep1() | 110 | void ComposerPrivate::composeStep1() | ||
112 | { | 111 | { | ||
113 | Q_Q(Composer); | 112 | Q_Q(Composer); | ||
114 | 113 | | |||
115 | // Create skeleton message (containing headers only; no content). | 114 | // Create skeleton message (containing headers only; no content). | ||
116 | SkeletonMessageJob *skeletonJob = new SkeletonMessageJob(infoPart, globalPart, q); | 115 | SkeletonMessageJob *skeletonJob = new SkeletonMessageJob(infoPart, globalPart, q); | ||
117 | QObject::connect(skeletonJob, &SkeletonMessageJob::finished, q, [this](KJob *job) { | 116 | QObject::connect(skeletonJob, &SkeletonMessageJob::finished, q, [this, skeletonJob](KJob *job) { | ||
118 | skeletonJobFinished(job); | | |||
119 | }); | | |||
120 | q->addSubjob(skeletonJob); | | |||
121 | skeletonJob->start(); | | |||
122 | } | | |||
123 | | ||||
124 | void ComposerPrivate::skeletonJobFinished(KJob *job) | | |||
125 | { | | |||
126 | if (job->error()) { | 117 | if (job->error()) { | ||
127 | return; // KCompositeJob takes care of the error. | 118 | return; // KCompositeJob takes care of the error. | ||
128 | } | 119 | } | ||
129 | 120 | | |||
130 | Q_ASSERT(dynamic_cast<SkeletonMessageJob *>(job)); | | |||
131 | SkeletonMessageJob *sjob = static_cast<SkeletonMessageJob *>(job); | | |||
132 | // SkeletonMessageJob is a special job creating a Message instead of a Content. | 121 | // SkeletonMessageJob is a special job creating a Message instead of a Content. | ||
133 | Q_ASSERT(skeletonMessage == nullptr); | 122 | Q_ASSERT(skeletonMessage == nullptr); | ||
134 | skeletonMessage = sjob->message(); | 123 | skeletonMessage = skeletonJob->message(); | ||
135 | Q_ASSERT(skeletonMessage); | 124 | Q_ASSERT(skeletonMessage); | ||
136 | skeletonMessage->assemble(); | 125 | skeletonMessage->assemble(); | ||
137 | 126 | | |||
138 | composeStep2(); | 127 | composeStep2(); | ||
128 | }); | ||||
129 | q->addSubjob(skeletonJob); | ||||
130 | skeletonJob->start(); | ||||
139 | } | 131 | } | ||
140 | 132 | | |||
141 | void ComposerPrivate::composeStep2() | 133 | void ComposerPrivate::composeStep2() | ||
142 | { | 134 | { | ||
143 | Q_Q(Composer); | 135 | Q_Q(Composer); | ||
144 | 136 | | |||
145 | ContentJobBase *mainJob = nullptr; | 137 | ContentJobBase *mainJob = nullptr; | ||
146 | MainTextJob *mainTextJob = new MainTextJob(textPart, q); | 138 | MainTextJob *mainTextJob = new MainTextJob(textPart, q); | ||
▲ Show 20 Lines • Show All 127 Lines • ▼ Show 20 Line(s) | 263 | for (int i = 0; i < encDataSize; ++i) { | |||
274 | ContentJobBase *subJob = nullptr; | 266 | ContentJobBase *subJob = nullptr; | ||
275 | if (sign) { | 267 | if (sign) { | ||
276 | SignEncryptJob *seJob = new SignEncryptJob(q); | 268 | SignEncryptJob *seJob = new SignEncryptJob(q); | ||
277 | 269 | | |||
278 | seJob->setCryptoMessageFormat(format); | 270 | seJob->setCryptoMessageFormat(format); | ||
279 | seJob->setSigningKeys(signers); | 271 | seJob->setSigningKeys(signers); | ||
280 | seJob->setEncryptionKeys(recipients.second); | 272 | seJob->setEncryptionKeys(recipients.second); | ||
281 | seJob->setRecipients(recipients.first); | 273 | seJob->setRecipients(recipients.first); | ||
282 | 274 | | |||
mlaurent: it seems not releated to this patch no ?
| |||||
283 | subJob = seJob; | 275 | subJob = seJob; | ||
284 | } else { | 276 | } else { | ||
285 | EncryptJob *eJob = new EncryptJob(q); | 277 | EncryptJob *eJob = new EncryptJob(q); | ||
286 | eJob->setCryptoMessageFormat(format); | 278 | eJob->setCryptoMessageFormat(format); | ||
287 | eJob->setEncryptionKeys(recipients.second); | 279 | eJob->setEncryptionKeys(recipients.second); | ||
288 | eJob->setRecipients(recipients.first); | 280 | eJob->setRecipients(recipients.first); | ||
289 | subJob = eJob; | 281 | subJob = eJob; | ||
290 | } | 282 | } | ||
▲ Show 20 Lines • Show All 318 Lines • Show Last 20 Lines |
it seems not releated to this patch no ?