File indexing completed on 2024-06-23 05:13:55
0001 /* -*- mode: c++; c-basic-offset:4 -*- 0002 decryptverifyemailcontroller.h 0003 0004 This file is part of Kleopatra, the KDE keymanager 0005 SPDX-FileCopyrightText: 2008 Klarälvdalens Datakonsult AB 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #pragma once 0011 0012 #include <crypto/controller.h> 0013 0014 #include <utils/types.h> 0015 0016 #include <gpgme++/global.h> 0017 0018 #include <QMetaType> 0019 0020 #include <memory> 0021 #include <vector> 0022 0023 #include <gpgme++/verificationresult.h> 0024 0025 namespace KMime 0026 { 0027 namespace Types 0028 { 0029 class Mailbox; 0030 } 0031 } 0032 0033 namespace Kleo 0034 { 0035 0036 class Input; 0037 class Output; 0038 0039 namespace Crypto 0040 { 0041 0042 class DecryptVerifyEMailController : public Controller 0043 { 0044 Q_OBJECT 0045 public: 0046 explicit DecryptVerifyEMailController(QObject *parent = nullptr); 0047 explicit DecryptVerifyEMailController(const std::shared_ptr<const ExecutionContext> &cmd, QObject *parent = nullptr); 0048 0049 ~DecryptVerifyEMailController() override; 0050 0051 void setInput(const std::shared_ptr<Input> &input); 0052 void setInputs(const std::vector<std::shared_ptr<Input>> &inputs); 0053 0054 void setSignedData(const std::shared_ptr<Input> &data); 0055 void setSignedData(const std::vector<std::shared_ptr<Input>> &data); 0056 0057 void setOutput(const std::shared_ptr<Output> &output); 0058 void setOutputs(const std::vector<std::shared_ptr<Output>> &outputs); 0059 0060 void setInformativeSenders(const std::vector<KMime::Types::Mailbox> &senders); 0061 0062 void setWizardShown(bool shown); 0063 0064 void setOperation(DecryptVerifyOperation operation); 0065 void setVerificationMode(VerificationMode vm); 0066 void setProtocol(GpgME::Protocol protocol); 0067 0068 void setSessionId(unsigned int id); 0069 0070 void start(); 0071 0072 public Q_SLOTS: 0073 void cancel(); 0074 0075 Q_SIGNALS: 0076 void verificationResult(const GpgME::VerificationResult &); 0077 0078 private: 0079 void doTaskDone(const Task *task, const std::shared_ptr<const Task::Result> &result) override; 0080 0081 class Private; 0082 kdtools::pimpl_ptr<Private> d; 0083 Q_PRIVATE_SLOT(d, void slotWizardCanceled()) 0084 Q_PRIVATE_SLOT(d, void schedule()) 0085 }; 0086 0087 } // namespace Crypto 0088 } // namespace Kleo 0089 0090 Q_DECLARE_METATYPE(GpgME::VerificationResult)