From a19364666bf5b46636e7fa1ec1071c2fb91100fc Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 27 Nov 2017 11:49:25 +0100 Subject: Async personal key retrieval --- framework/src/domain/composercontroller.cpp | 29 +++++++++++++++++------------ 1 file 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() void ComposerController::findPersonalKey() { auto identity = getIdentity(); - SinkLog() << "Looking for personal key for: " << identity.address(); - mPersonalKeys = MailCrypto::findKeys(QStringList{} << identity.address(), true); - if (mPersonalKeys.empty()) { - SinkWarning() << "Failed to find a personal key."; - } - if (mPersonalKeys.size() > 1) { - SinkWarning() << "Found multiple keys, using first one:"; - SinkWarning() << " " << mPersonalKeys.front().primaryFingerprint(); - } else { - SinkLog() << "Found personal key: " << mPersonalKeys.front().primaryFingerprint(); - } - updateSendAction(); + asyncRun>(this, [=] { + SinkLog() << "Looking for personal key for: " << identity.address(); + return MailCrypto::findKeys(QStringList{} << identity.address(), true); + }, + [this](const std::vector &keys) { + mPersonalKeys = keys; + if (mPersonalKeys.empty()) { + SinkWarning() << "Failed to find a personal key."; + } + if (mPersonalKeys.size() > 1) { + SinkWarning() << "Found multiple keys, using first one:"; + SinkWarning() << " " << mPersonalKeys.front().primaryFingerprint(); + } else { + SinkLog() << "Found personal key: " << mPersonalKeys.front().primaryFingerprint(); + } + updateSendAction(); + }); } void ComposerController::clear() -- cgit v1.2.3