From 0991485170ca4ef90fd566540522027d0fc59a72 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Sun, 3 Apr 2016 02:29:14 -0800 Subject: [PATCH] Qt: Add static factor methods for protocol * lang/qt/src/qgpgmebackend.cpp (QGpgME::openpgp, QGpgME::smime): New. * lang/qt/src/qgpgmebackend.h: Declare. * lang/qt/tests/t-keylist.cpp (KeyListTest::testSingleKeyListSync): Use new functions. -- This replaces the cryptobackendfactory functionality from libkleo. --- lang/qt/src/qgpgmebackend.cpp | 18 ++++++++++++++++++ lang/qt/src/qgpgmebackend.h | 14 ++++++++++++++ lang/qt/tests/t-keylist.cpp | 3 +-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/lang/qt/src/qgpgmebackend.cpp b/lang/qt/src/qgpgmebackend.cpp index 1167daee..abecde2c 100644 --- a/lang/qt/src/qgpgmebackend.cpp +++ b/lang/qt/src/qgpgmebackend.cpp @@ -507,3 +507,21 @@ const char *QGpgME::QGpgMEBackend::enumerateProtocols(int i) const default: return 0; } } + +static QGpgME::QGpgMEBackend *gpgmeBackend; + +QGpgME::Protocol *QGpgME::openpgp() +{ + if (!gpgmeBackend) { + gpgmeBackend = new QGpgME::QGpgMEBackend(); + } + return gpgmeBackend->openpgp(); +} + +QGpgME::Protocol *QGpgME::smime() +{ + if (!gpgmeBackend) { + gpgmeBackend = new QGpgME::QGpgMEBackend(); + } + return gpgmeBackend->smime(); +} diff --git a/lang/qt/src/qgpgmebackend.h b/lang/qt/src/qgpgmebackend.h index d442fa55..16b70cf8 100644 --- a/lang/qt/src/qgpgmebackend.h +++ b/lang/qt/src/qgpgmebackend.h @@ -72,6 +72,20 @@ namespace QGpgME class CryptoConfig; class Protocol; +/** Obtain a reference to the OpenPGP Protocol. + * + * The reference is to a static object. + * @returns Refrence to the OpenPGP Protocol. + */ +Protocol *openpgp(); + +/** Obtain a reference to the smime Protocol. + * + * The reference is to a static object. + * @returns Refrence to the smime Protocol. + */ +Protocol *smime(); + class QGpgMEBackend { public: diff --git a/lang/qt/tests/t-keylist.cpp b/lang/qt/tests/t-keylist.cpp index 67ace7f5..626d0a7f 100644 --- a/lang/qt/tests/t-keylist.cpp +++ b/lang/qt/tests/t-keylist.cpp @@ -14,8 +14,7 @@ private Q_SLOTS: void testSingleKeyListSync() { - QGpgMEBackend backend; - KeyListJob *job = backend.openpgp()->keyListJob(false, false, false); + KeyListJob *job = openpgp()->keyListJob(false, false, false); std::vector keys; GpgME::KeyListResult result = job->exec(QStringList() << QStringLiteral("alfa@example.net"), false, keys);