summaryrefslogtreecommitdiff
path: root/lang/qt/src/qgpgmeimportjob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lang/qt/src/qgpgmeimportjob.cpp')
-rw-r--r--lang/qt/src/qgpgmeimportjob.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/lang/qt/src/qgpgmeimportjob.cpp b/lang/qt/src/qgpgmeimportjob.cpp
index d609c5f..1d83815 100644
--- a/lang/qt/src/qgpgmeimportjob.cpp
+++ b/lang/qt/src/qgpgmeimportjob.cpp
@@ -5,6 +5,8 @@
Copyright (c) 2004,2008 Klarälvdalens Datakonsult AB
Copyright (c) 2016 by Bundesamt für Sicherheit in der Informationstechnik
Software engineering by Intevation GmbH
+ Copyright (c) 2023 g10 Code GmbH
+ Software engineering by Ingo Klöcker <dev@ingo-kloecker.de>
QGpgME is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -38,6 +40,8 @@
#include "qgpgmeimportjob.h"
+#include "importjob_p.h"
+
#include "dataprovider.h"
#include <context.h>
@@ -47,9 +51,40 @@
using namespace QGpgME;
using namespace GpgME;
+namespace
+{
+
+class QGpgMEImportJobPrivate : public ImportJobPrivate
+{
+ QGpgMEImportJob *q = nullptr;
+
+public:
+ QGpgMEImportJobPrivate(QGpgMEImportJob *qq)
+ : q{qq}
+ {
+ }
+
+ ~QGpgMEImportJobPrivate() override = default;
+
+private:
+ GpgME::Error startIt() override
+ {
+ Q_ASSERT(!"Not supported by this Job class.");
+ return Error::fromCode(GPG_ERR_NOT_SUPPORTED);
+ }
+
+ void startNow() override
+ {
+ q->run();
+ }
+};
+
+}
+
QGpgMEImportJob::QGpgMEImportJob(Context *context)
: mixin_type(context)
{
+ setJobPrivate(this, std::unique_ptr<QGpgMEImportJobPrivate>{new QGpgMEImportJobPrivate{this}});
lateInitialization();
}
@@ -125,6 +160,12 @@ GpgME::ImportResult QGpgME::QGpgMEImportJob::exec(const QByteArray &keyData)
return mResult;
}
+Error QGpgMEImportJob::startLater(const QByteArray &certData)
+{
+ setWorkerFunction(std::bind(&import_qba, std::placeholders::_1, certData, importFilter(), keyOrigin(), keyOriginUrl()));
+ return {};
+}
+
// PENDING(marc) implement showErrorDialog()
void QGpgME::QGpgMEImportJob::resultHook(const result_type &tuple)