File indexing completed on 2024-06-16 04:55:57
0001 /* -*- mode: c++; c-basic-offset:4 -*- 0002 crypto/encryptemailtask.h 0003 0004 This file is part of Kleopatra, the KDE keymanager 0005 SPDX-FileCopyrightText: 2007 Klarälvdalens Datakonsult AB 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #pragma once 0011 0012 #include <crypto/task.h> 0013 0014 #include <utils/pimpl_ptr.h> 0015 0016 #include <gpgme++/global.h> 0017 0018 #include <memory> 0019 #include <vector> 0020 0021 namespace GpgME 0022 { 0023 class Key; 0024 } 0025 0026 namespace Kleo 0027 { 0028 class Input; 0029 class Output; 0030 } 0031 0032 namespace Kleo 0033 { 0034 namespace Crypto 0035 { 0036 0037 class EncryptEMailTask : public Task 0038 { 0039 Q_OBJECT 0040 public: 0041 explicit EncryptEMailTask(QObject *parent = nullptr); 0042 ~EncryptEMailTask() override; 0043 0044 void setInput(const std::shared_ptr<Input> &input); 0045 void setOutput(const std::shared_ptr<Output> &output); 0046 void setRecipients(const std::vector<GpgME::Key> &recipients); 0047 0048 GpgME::Protocol protocol() const override; 0049 0050 void cancel() override; 0051 QString label() const override; 0052 0053 private: 0054 void doStart() override; 0055 unsigned long long inputSize() const override; 0056 0057 private: 0058 class Private; 0059 kdtools::pimpl_ptr<Private> d; 0060 Q_PRIVATE_SLOT(d, void slotResult(const GpgME::EncryptionResult &)) 0061 }; 0062 0063 } 0064 }