From e19a82c82594e3544ff5e4e82715095cf1a28c2f Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 26 Apr 2018 11:01:42 +0200 Subject: Collect gpgme usages --- framework/src/CMakeLists.txt | 3 ++- framework/src/domain/mime/CMakeLists.txt | 8 ++++++++ framework/src/domain/mime/attachmentmodel.cpp | 18 ++++++------------ framework/src/domain/mime/mailcrypto.cpp | 9 +++++++++ framework/src/domain/mime/mailcrypto.h | 8 ++++++++ .../src/domain/mime/mimetreeparser/partmetadata.h | 1 - 6 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 framework/src/domain/mime/CMakeLists.txt diff --git a/framework/src/CMakeLists.txt b/framework/src/CMakeLists.txt index a3c489b4..067da571 100644 --- a/framework/src/CMakeLists.txt +++ b/framework/src/CMakeLists.txt @@ -37,7 +37,6 @@ add_library(kubeframework SHARED domain/mime/attachmentmodel.cpp domain/mime/partmodel.cpp domain/mime/mailtemplates.cpp - domain/mime/mailcrypto.cpp accounts/accountfactory.cpp accounts/accountsmodel.cpp fabric.cpp @@ -55,6 +54,7 @@ add_library(kubeframework SHARED target_link_libraries(kubeframework sink kube_otp + mailcrypto Qt5::Core Qt5::Quick Qt5::Qml @@ -78,6 +78,7 @@ install(TARGETS frameworkplugin DESTINATION ${FRAMEWORK_INSTALL_DIR}) set(BUILD_TESTING ON) add_subdirectory(tests) +add_subdirectory(domain/mime) add_subdirectory(domain/mime/tests) add_subdirectory(domain/mime/mimetreeparser) add_subdirectory(domain/settings/tests) diff --git a/framework/src/domain/mime/CMakeLists.txt b/framework/src/domain/mime/CMakeLists.txt new file mode 100644 index 00000000..c1cf22c1 --- /dev/null +++ b/framework/src/domain/mime/CMakeLists.txt @@ -0,0 +1,8 @@ +add_library(mailcrypto STATIC + mailcrypto.cpp +) +target_link_libraries(mailcrypto + Qt5::Core + KF5::Mime + QGpgme +) diff --git a/framework/src/domain/mime/attachmentmodel.cpp b/framework/src/domain/mime/attachmentmodel.cpp index 8b12679b..45013f85 100644 --- a/framework/src/domain/mime/attachmentmodel.cpp +++ b/framework/src/domain/mime/attachmentmodel.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -32,9 +33,6 @@ #include #include -#include -#include - #include QString sizeHuman(float size) @@ -221,21 +219,17 @@ bool AttachmentModel::importPublicKey(const QModelIndex &index) const auto part = static_cast(index.internalPointer()); Q_ASSERT(part); auto pkey = part->node()->decodedContent(); - - const auto *proto = QGpgME::openpgp(); - std::unique_ptr job(proto->importJob()); - auto result = job->exec(pkey); + auto result = MailCrypto::importKey(pkey); bool success = true; - QString message; - if(result.numConsidered() == 0) { + if(result.considered == 0) { message = tr("No keys were found in this attachment"); success = false; } else { - message = tr("%n Key(s) imported", "", result.numImported()); - if(result.numUnchanged() != 0) { - message += "\n" + tr("%n Key(s) were already imported", "", result.numUnchanged()); + message = tr("%n Key(s) imported", "", result.imported); + if(result.unchanged != 0) { + message += "\n" + tr("%n Key(s) were already imported", "", result.unchanged); } } diff --git a/framework/src/domain/mime/mailcrypto.cpp b/framework/src/domain/mime/mailcrypto.cpp index 4e20c84b..da1b82c7 100644 --- a/framework/src/domain/mime/mailcrypto.cpp +++ b/framework/src/domain/mime/mailcrypto.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -430,6 +431,14 @@ void MailCrypto::importKeys(const std::vector &keys) job->exec(keys); } +MailCrypto::ImportResult MailCrypto::importKey(const QByteArray &pkey) +{ + const auto *proto = QGpgME::openpgp(); + std::unique_ptr job(proto->importJob()); + auto result = job->exec(pkey); + return {result.numConsidered(), result.numImported(), result.numUnchanged()}; +} + static GpgME::KeyListResult listKeys(const QStringList &patterns, bool secretOnly, int keyListMode, std::vector &keys) { QByteArrayList list; diff --git a/framework/src/domain/mime/mailcrypto.h b/framework/src/domain/mime/mailcrypto.h index 832f68ec..9e317b43 100644 --- a/framework/src/domain/mime/mailcrypto.h +++ b/framework/src/domain/mime/mailcrypto.h @@ -39,4 +39,12 @@ std::vector findKeys(const QStringList &filter, bool findPrivate = f void importKeys(const std::vector &keys); +struct ImportResult { + int considered; + int imported; + int unchanged; +}; + +ImportResult importKey(const QByteArray &key); + }; // namespace MailCrypto diff --git a/framework/src/domain/mime/mimetreeparser/partmetadata.h b/framework/src/domain/mime/mimetreeparser/partmetadata.h index b0f2674e..813ef4cb 100644 --- a/framework/src/domain/mime/mimetreeparser/partmetadata.h +++ b/framework/src/domain/mime/mimetreeparser/partmetadata.h @@ -17,7 +17,6 @@ #define __MIMETREEPARSER_PARTMETADATA_H__ #include -#include #include #include -- cgit v1.2.3