aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/ComUtils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/ComUtils.cpp')
-rw-r--r--src/server/ComUtils.cpp11
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();
}