diff options
Diffstat (limited to 'framework/src/domain/composercontroller.cpp')
-rw-r--r-- | framework/src/domain/composercontroller.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/framework/src/domain/composercontroller.cpp b/framework/src/domain/composercontroller.cpp index 2a82f0e1..d2b65d06 100644 --- a/framework/src/domain/composercontroller.cpp +++ b/framework/src/domain/composercontroller.cpp | |||
@@ -36,6 +36,7 @@ | |||
36 | #include "identitiesmodel.h" | 36 | #include "identitiesmodel.h" |
37 | #include "recepientautocompletionmodel.h" | 37 | #include "recepientautocompletionmodel.h" |
38 | #include "mime/mailtemplates.h" | 38 | #include "mime/mailtemplates.h" |
39 | #include "mime/mailcrypto.h" | ||
39 | 40 | ||
40 | class IdentitySelector : public Selector { | 41 | class IdentitySelector : public Selector { |
41 | public: | 42 | public: |
@@ -170,9 +171,17 @@ ComposerController::ComposerController() | |||
170 | QObject::connect(this, &ComposerController::accountIdChanged, &ComposerController::updateSendAction); | 171 | QObject::connect(this, &ComposerController::accountIdChanged, &ComposerController::updateSendAction); |
171 | QObject::connect(this, &ComposerController::subjectChanged, &ComposerController::updateSaveAsDraftAction); | 172 | QObject::connect(this, &ComposerController::subjectChanged, &ComposerController::updateSaveAsDraftAction); |
172 | QObject::connect(this, &ComposerController::accountIdChanged, &ComposerController::updateSaveAsDraftAction); | 173 | QObject::connect(this, &ComposerController::accountIdChanged, &ComposerController::updateSaveAsDraftAction); |
174 | QObject::connect(this, &ComposerController::identityChanged, &ComposerController::findPersonalKey); | ||
173 | updateSendAction(); | 175 | updateSendAction(); |
174 | } | 176 | } |
175 | 177 | ||
178 | void ComposerController::findPersonalKey() | ||
179 | { | ||
180 | auto identity = getIdentity(); | ||
181 | SinkLog() << "Looking for personal key for: " << identity.address(); | ||
182 | mPersonalKeys = MailCrypto::findKeys(QStringList{} << identity.address(), true); | ||
183 | } | ||
184 | |||
176 | void ComposerController::clear() | 185 | void ComposerController::clear() |
177 | { | 186 | { |
178 | Controller::clear(); | 187 | Controller::clear(); |
@@ -465,7 +474,13 @@ KMime::Message::Ptr ComposerController::assembleMessage() | |||
465 | item->data(ContentRole).toByteArray() | 474 | item->data(ContentRole).toByteArray() |
466 | }; | 475 | }; |
467 | } | 476 | } |
468 | return MailTemplates::createMessage(mExistingMessage, mToModel->stringList(), mCcModel->stringList(), mBccModel->stringList(), getIdentity(), getSubject(), getBody(), getHtmlBody(), attachments); | 477 | |
478 | std::vector<GpgME::Key> signingKeys; | ||
479 | if (getSign()) { | ||
480 | signingKeys = mPersonalKeys; | ||
481 | } | ||
482 | |||
483 | return MailTemplates::createMessage(mExistingMessage, mToModel->stringList(), mCcModel->stringList(), mBccModel->stringList(), getIdentity(), getSubject(), getBody(), getHtmlBody(), attachments, signingKeys); | ||
469 | } | 484 | } |
470 | 485 | ||
471 | void ComposerController::updateSendAction() | 486 | void ComposerController::updateSendAction() |