File indexing completed on 2024-09-22 04:50:00
0001 /* 0002 * SPDX-FileCopyrightText: 2017 Daniel Vrátil <dvratil@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 * 0006 */ 0007 0008 #pragma once 0009 0010 #include "filteractionwithcrypto.h" 0011 0012 #include <gpgme++/key.h> 0013 0014 #include <Libkleo/KeyCache> 0015 0016 namespace MailCommon 0017 { 0018 class FilterActionEncrypt : public FilterActionWithCrypto 0019 { 0020 Q_OBJECT 0021 public: 0022 explicit FilterActionEncrypt(QObject *parent = nullptr); 0023 ~FilterActionEncrypt() override; 0024 0025 static FilterAction *newAction(); 0026 0027 [[nodiscard]] QString displayString() const override; 0028 0029 [[nodiscard]] QString argsAsString() const override; 0030 void argsFromString(const QString &argsStr) override; 0031 0032 [[nodiscard]] SearchRule::RequiredPart requiredPart() const override; 0033 [[nodiscard]] FilterAction::ReturnCode process(ItemContext &context, bool applyOnOutbound) const override; 0034 0035 [[nodiscard]] bool isEmpty() const override; 0036 0037 [[nodiscard]] QString informationAboutNotValidAction() const override; 0038 0039 [[nodiscard]] QWidget *createParamWidget(QWidget *parent) const override; 0040 void setParamWidgetValue(QWidget *paramWidget) const override; 0041 void applyParamWidgetValue(QWidget *paramWidget) override; 0042 0043 [[nodiscard]] GpgME::Key key() const; 0044 0045 [[nodiscard]] bool reencrypt() const; 0046 0047 private: 0048 std::shared_ptr<const Kleo::KeyCache> mKeyCache; 0049 GpgME::Key mKey; 0050 bool mReencrypt = false; 0051 }; 0052 } // namespace MailCommon