From 60b96d149c71f7f5f928944e65732671d6b9eacc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= Date: Thu, 13 Jun 2024 09:53:13 +0200 Subject: [PATCH] qt: Specify import options as list of strings instead of as string * lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (setImportOptions): Change type of argument "options" to QStringList. (importOptions): Change return type to QStringList. * lang/qt/src/importjob_p.h (struct ImportJobPrivate): Change type of member m_importOptions to QStringList. * lang/qt/src/qgpgmeimportjob.cpp (import_qba): Change type of argument "importOptions" to QStringList. Join list of import options with ',' when setting the "import-options" context flag. * lang/qt/tests/t-import.cpp (ImportTest::testImportWithImportOptions): Adapt to API change. -- This makes the API that was introduced with the previous commit easier to use. GnuPG-bug-id: 7152 --- NEWS | 6 +++++- lang/qt/src/importjob.cpp | 4 ++-- lang/qt/src/importjob.h | 4 ++-- lang/qt/src/importjob_p.h | 2 +- lang/qt/src/qgpgmeimportjob.cpp | 6 +++--- lang/qt/tests/t-import.cpp | 2 +- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/NEWS b/NEWS index 7335e198..77a31776 100644 --- a/NEWS +++ b/NEWS @@ -9,7 +9,7 @@ Noteworthy changes in version 1.24.0 (unrelease) * Add information about designated revocation keys. [T7118] - * New context flag "import-options". [#7152] + * New context flag "import-options". [T7152] * cpp: Provide information about designated revocation keys for a Key. [T7118] @@ -20,6 +20,8 @@ Noteworthy changes in version 1.24.0 (unrelease) * qt: Allow writing the decrypted/encrypted/signed/verified data directly to files. [T6550] + * qt: Allow specifying import options when importing keys. [T7152] + * Interface changes relative to the 1.23.2 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GPGME_ENCRYPT_FILE NEW. @@ -71,6 +73,8 @@ Noteworthy changes in version 1.24.0 (unrelease) qt: VerifyOpaqueJob::inputFile NEW. qt: VerifyOpaqueJob::setOutputFile NEW. qt: VerifyOpaqueJob::outputFile NEW. + qt: ImportJob::setImportOptions NEW. + qt: ImportJob::importOptions NEW. Noteworthy changes in version 1.23.2 (2023-11-28) diff --git a/lang/qt/src/importjob.cpp b/lang/qt/src/importjob.cpp index 8d70367f..ea896cad 100644 --- a/lang/qt/src/importjob.cpp +++ b/lang/qt/src/importjob.cpp @@ -55,13 +55,13 @@ QString QGpgME::ImportJob::importFilter() const return d->m_importFilter; } -void QGpgME::ImportJob::setImportOptions(const QString &options) +void QGpgME::ImportJob::setImportOptions(const QStringList &options) { const auto d = jobPrivate(this); d->m_importOptions = options; } -QString QGpgME::ImportJob::importOptions() const +QStringList QGpgME::ImportJob::importOptions() const { const auto d = jobPrivate(this); return d->m_importOptions; diff --git a/lang/qt/src/importjob.h b/lang/qt/src/importjob.h index a24de0fa..8308ca0e 100644 --- a/lang/qt/src/importjob.h +++ b/lang/qt/src/importjob.h @@ -79,8 +79,8 @@ public: void setImportFilter(const QString &filter); QString importFilter() const; - void setImportOptions(const QString &options); - QString importOptions() const; + void setImportOptions(const QStringList &options); + QStringList importOptions() const; void setKeyOrigin(GpgME::Key::Origin origin, const QString &url = {}); GpgME::Key::Origin keyOrigin() const; diff --git a/lang/qt/src/importjob_p.h b/lang/qt/src/importjob_p.h index 037e0a63..dc3488cf 100644 --- a/lang/qt/src/importjob_p.h +++ b/lang/qt/src/importjob_p.h @@ -44,7 +44,7 @@ namespace QGpgME struct ImportJobPrivate : public JobPrivate { QString m_importFilter; - QString m_importOptions; + QStringList m_importOptions; GpgME::Key::Origin m_keyOrigin = GpgME::Key::OriginUnknown; QString m_keyOriginUrl; }; diff --git a/lang/qt/src/qgpgmeimportjob.cpp b/lang/qt/src/qgpgmeimportjob.cpp index 0f90df42..650f0ade 100644 --- a/lang/qt/src/qgpgmeimportjob.cpp +++ b/lang/qt/src/qgpgmeimportjob.cpp @@ -106,14 +106,14 @@ static const char *originToString(Key::Origin origin) } static QGpgMEImportJob::result_type import_qba(Context *ctx, const QByteArray &certData, const QString &importFilter, - const QString &importOptions, Key::Origin keyOrigin, + const QStringList &importOptions, Key::Origin keyOrigin, const QString &keyOriginUrl) { if (!importFilter.isEmpty()) { ctx->setFlag("import-filter", importFilter.toStdString().c_str()); } - if (!importOptions.isEmpty()) { - ctx->setFlag("import-options", importOptions.toStdString().c_str()); + if (!importOptions.empty()) { + ctx->setFlag("import-options", importOptions.join(QLatin1Char{','}).toStdString().c_str()); } if (keyOrigin != Key::OriginUnknown) { if (const auto origin = originToString(keyOrigin)) { diff --git a/lang/qt/tests/t-import.cpp b/lang/qt/tests/t-import.cpp index 79edf4d1..1c0040c9 100644 --- a/lang/qt/tests/t-import.cpp +++ b/lang/qt/tests/t-import.cpp @@ -143,7 +143,7 @@ private Q_SLOTS: "-----END PGP PUBLIC KEY BLOCK-----\n"; auto *job = openpgp()->importJob(); - job->setImportOptions(QLatin1String{"show-only"}); + job->setImportOptions({QStringLiteral("show-only")}); connect(job, &ImportJob::result, this, [this](ImportResult result, QString, Error) {