summaryrefslogtreecommitdiffstats
path: root/framework
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-11-27 11:49:25 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-11-27 11:49:25 +0100
commita19364666bf5b46636e7fa1ec1071c2fb91100fc (patch)
tree2fc88bebc2abcd308f31ed0f66dcd1126c16d00c /framework
parent64a18747e21b244d38c1a8d2682692f07d1e46bd (diff)
downloadkube-a19364666bf5b46636e7fa1ec1071c2fb91100fc.tar.gz
kube-a19364666bf5b46636e7fa1ec1071c2fb91100fc.zip
Async personal key retrieval
Diffstat (limited to 'framework')
-rw-r--r--framework/src/domain/composercontroller.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/framework/src/domain/composercontroller.cpp b/framework/src/domain/composercontroller.cpp
index 75db7346..01aba8c7 100644
--- a/framework/src/domain/composercontroller.cpp
+++ b/framework/src/domain/composercontroller.cpp
@@ -281,18 +281,23 @@ ComposerController::ComposerController()
281void ComposerController::findPersonalKey() 281void ComposerController::findPersonalKey()
282{ 282{
283 auto identity = getIdentity(); 283 auto identity = getIdentity();
284 SinkLog() << "Looking for personal key for: " << identity.address(); 284 asyncRun<std::vector<GpgME::Key>>(this, [=] {
285 mPersonalKeys = MailCrypto::findKeys(QStringList{} << identity.address(), true); 285 SinkLog() << "Looking for personal key for: " << identity.address();
286 if (mPersonalKeys.empty()) { 286 return MailCrypto::findKeys(QStringList{} << identity.address(), true);
287 SinkWarning() << "Failed to find a personal key."; 287 },
288 } 288 [this](const std::vector<GpgME::Key> &keys) {
289 if (mPersonalKeys.size() > 1) { 289 mPersonalKeys = keys;
290 SinkWarning() << "Found multiple keys, using first one:"; 290 if (mPersonalKeys.empty()) {
291 SinkWarning() << " " << mPersonalKeys.front().primaryFingerprint(); 291 SinkWarning() << "Failed to find a personal key.";
292 } else { 292 }
293 SinkLog() << "Found personal key: " << mPersonalKeys.front().primaryFingerprint(); 293 if (mPersonalKeys.size() > 1) {
294 } 294 SinkWarning() << "Found multiple keys, using first one:";
295 updateSendAction(); 295 SinkWarning() << " " << mPersonalKeys.front().primaryFingerprint();
296 } else {
297 SinkLog() << "Found personal key: " << mPersonalKeys.front().primaryFingerprint();
298 }
299 updateSendAction();
300 });
296} 301}
297 302
298void ComposerController::clear() 303void ComposerController::clear()