summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/composercontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/domain/composercontroller.cpp')
-rw-r--r--framework/src/domain/composercontroller.cpp17
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
40class IdentitySelector : public Selector { 41class IdentitySelector : public Selector {
41public: 42public:
@@ -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
178void 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
176void ComposerController::clear() 185void 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
471void ComposerController::updateSendAction() 486void ComposerController::updateSendAction()