diff options
author | Ingo Klöcker <[email protected]> | 2022-01-04 14:38:49 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2022-01-04 14:44:16 +0000 |
commit | 4e80563fabfdf1d1c136d65252e5353fdd1e9092 (patch) | |
tree | f1edc3ecd890387f94e2bb5ef4b14b88f4394906 /lang/qt/src/qgpgmeexportjob.cpp | |
parent | cpp: Allow export of secret keys (diff) | |
download | gpgme-4e80563fabfdf1d1c136d65252e5353fdd1e9092.tar.gz gpgme-4e80563fabfdf1d1c136d65252e5353fdd1e9092.zip |
qt: Use QGpgMEExportJob also for export of secret keys
* lang/qt/src/protocol.h (Protocol::secretKeyExportJob): Document
charset argument as ignored.
* lang/qt/src/protocol_p.h (Protocol::secretKeyExportJob): Use
QGpgMEExportJob instead of QGpgMESecretKeyExportJob.
* lang/qt/src/qgpgmeexportjob.h (class QGpgMEExportJob): Add c'tor
taking an export mode. Add member m_exportMode. Rename member m_flags to
m_additionalExportModeFlags.
(QGpgMEExportJob::~QGpgMEExportJob): Mark as override.
* lang/qt/src/qgpgmeexportjob.cpp (QGpgMEExportJob::QGpgMEExportJob):
Delegate to new c'tor. Implement new c'tor.
(QGpgMEExportJob::~QGpgMEExportJob): Use default.
(export_qba): Rename argument flags to mode.
(QGpgMEExportJob::start): Pass combination of export mode and additional
mode flags to export_qba.
(QGpgMEExportJob::setExportFlags): Adapt to renaming of member.
* lang/qt/tests/run-exportjob.cpp: New.
--
This change makes it possible to export secret OpenPGP keys.
GnuPG-bug-id: 5757
Diffstat (limited to 'lang/qt/src/qgpgmeexportjob.cpp')
-rw-r--r-- | lang/qt/src/qgpgmeexportjob.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/lang/qt/src/qgpgmeexportjob.cpp b/lang/qt/src/qgpgmeexportjob.cpp index bf3297a7..e9bc0a4d 100644 --- a/lang/qt/src/qgpgmeexportjob.cpp +++ b/lang/qt/src/qgpgmeexportjob.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) 2022 by g10 Code GmbH + Software engineering by Ingo Klöcker <[email protected]> QGpgME is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -52,23 +54,28 @@ using namespace QGpgME; using namespace GpgME; QGpgMEExportJob::QGpgMEExportJob(Context *context) - : mixin_type(context), - m_flags(0) + : QGpgMEExportJob{context, 0} +{ +} + +QGpgMEExportJob::QGpgMEExportJob(Context *context, unsigned int forcedMode) + : mixin_type{context} + , m_exportMode{forcedMode} + , m_additionalExportModeFlags{0} { lateInitialization(); } -QGpgMEExportJob::~QGpgMEExportJob() {} +QGpgMEExportJob::~QGpgMEExportJob() = default; -static QGpgMEExportJob::result_type export_qba(Context *ctx, const QStringList &patterns, unsigned int flags) +static QGpgMEExportJob::result_type export_qba(Context *ctx, const QStringList &patterns, unsigned int mode) { - const _detail::PatternConverter pc(patterns); QGpgME::QByteArrayDataProvider dp; Data data(&dp); - const Error err = ctx->exportPublicKeys(pc.patterns(), data, flags); + const Error err = ctx->exportKeys(pc.patterns(), data, mode); Error ae; const QString log = _detail::audit_log_as_html(ctx, ae); return std::make_tuple(err, dp.data(), log, ae); @@ -76,13 +83,14 @@ static QGpgMEExportJob::result_type export_qba(Context *ctx, const QStringList & Error QGpgMEExportJob::start(const QStringList &patterns) { - run(std::bind(&export_qba, std::placeholders::_1, patterns, m_flags)); + auto mode = m_exportMode | m_additionalExportModeFlags; + run(std::bind(&export_qba, std::placeholders::_1, patterns, mode)); return Error(); } void QGpgMEExportJob::setExportFlags(unsigned int flags) { - m_flags = flags; + m_additionalExportModeFlags = flags; } /* For ABI compat not pure virtual. */ |