File indexing completed on 2024-06-23 05:18:32
0001 /* 0002 SPDX-FileCopyrightText: 2009 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.net 0003 SPDX-FileCopyrightText: 2009 Leo Franchi <lfranchi@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include "abstractencryptjob.h" 0011 #include "contentjobbase.h" 0012 #include "infopart.h" 0013 #include "messagecomposer_export.h" 0014 0015 #include <Libkleo/Enum> 0016 0017 #include <gpgme++/key.h> 0018 #include <vector> 0019 0020 namespace KMime 0021 { 0022 class Content; 0023 } 0024 0025 namespace MessageComposer 0026 { 0027 class EncryptJobPrivate; 0028 0029 /** 0030 Encrypt the contents of a message . 0031 Used as a subjob of CryptoMessage 0032 */ 0033 class MESSAGECOMPOSER_EXPORT EncryptJob : public ContentJobBase, public MessageComposer::AbstractEncryptJob 0034 { 0035 Q_OBJECT 0036 0037 public: 0038 explicit EncryptJob(QObject *parent = nullptr); 0039 ~EncryptJob() override; 0040 0041 void setContent(KMime::Content *content); 0042 void setCryptoMessageFormat(Kleo::CryptoMessageFormat format); 0043 void setEncryptionKeys(const std::vector<GpgME::Key> &keys) override; 0044 void setRecipients(const QStringList &rec) override; 0045 void setSkeletonMessage(KMime::Message *skeletonMessage); 0046 0047 void setProtectedHeaders(bool protectedHeaders); 0048 void setProtectedHeadersObvoscate(bool protectedHeadersObvoscate); 0049 0050 void setGnupgHome(const QString &path); 0051 0052 std::vector<GpgME::Key> encryptionKeys() const override; 0053 QStringList recipients() const override; 0054 0055 protected Q_SLOTS: 0056 void doStart() override; 0057 void slotResult(KJob *job) override; 0058 void process() override; 0059 0060 private: 0061 Q_DECLARE_PRIVATE(EncryptJob) 0062 }; 0063 }