diff options
Diffstat (limited to 'lang/qt/src/qgpgmeimportjob.cpp')
-rw-r--r-- | lang/qt/src/qgpgmeimportjob.cpp | 41 |
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) |