diff options
Diffstat (limited to 'src/server/ComUtils.cpp')
-rw-r--r-- | src/server/ComUtils.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/server/ComUtils.cpp b/src/server/ComUtils.cpp index bd4072f1..6fce493f 100644 --- a/src/server/ComUtils.cpp +++ b/src/server/ComUtils.cpp @@ -160,7 +160,16 @@ QByteArray ComUtils::getSignStringBase64(GpgME::GpgContext *ctx, const QString & QVector<GpgKey> keys{key}; QByteArray outSignText; auto signData = str.toUtf8(); - ctx->sign(keys, signData, &outSignText, GPGME_SIG_MODE_NORMAL); + + // The use of multi-threading brings an improvement in UI smoothness + gpgme_error_t error; + auto thread = QThread::create([&]() { + error = ctx->sign(keys, signData, &outSignText, GPGME_SIG_MODE_NORMAL); + }); + thread->start(); + while (thread->isRunning()) QApplication::processEvents(); + thread->deleteLater(); + return outSignText.toBase64(); } |