Qt: Add static factor methods for protocol
authorAndre Heinecke <aheinecke@intevation.de>
Sun, 3 Apr 2016 10:29:14 +0000 (02:29 -0800)
committerAndre Heinecke <aheinecke@intevation.de>
Sun, 3 Apr 2016 10:29:14 +0000 (02:29 -0800)
* 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
lang/qt/src/qgpgmebackend.h
lang/qt/tests/t-keylist.cpp

index 1167dae..abecde2 100644 (file)
@@ -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();
+}
index d442fa5..16b70cf 100644 (file)
@@ -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:
index 67ace7f..626d0a7 100644 (file)
@@ -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<GpgME::Key> keys;
         GpgME::KeyListResult result = job->exec(QStringList() << QStringLiteral("alfa@example.net"),
                                                 false, keys);