File indexing completed on 2024-04-28 09:46:03

0001 /*
0002     SPDX-FileCopyrightText: 2010-2022 Rolf Eike Beer <kde@opensource.sf-tec.de>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef KGPGDELSIGN_H
0007 #define KGPGDELSIGN_H
0008 
0009 #include "kgpguidtransaction.h"
0010 
0011 #include "core/KGpgSignNode.h"
0012 
0013 #include <QObject>
0014 #include <QString>
0015 
0016 /**
0017  * @brief delete signatures from user ids
0018  */
0019 class KGpgDelSign: public KGpgUidTransaction {
0020     Q_OBJECT
0021 
0022     Q_DISABLE_COPY(KGpgDelSign)
0023     KGpgDelSign() = delete;
0024 public:
0025     /**
0026      * @brief construct a new transaction to delete signatures
0027      * @param parent object that own the transaction
0028      * @param signids list of signature ids to remove
0029      *
0030      * All members of signids need to have the same parent node, i.e.
0031      * they not even may be signatures to different uids of the same key.
0032      */
0033     KGpgDelSign(QObject *parent, const KGpgSignNode::List &signids);
0034     /**
0035      * @brief construct a new transaction to delete signatures
0036      * @param parent object that own the transaction
0037      * @param signid signature to delete
0038      */
0039     KGpgDelSign(QObject *parent, KGpgSignNode *signid);
0040 
0041     ~KGpgDelSign() override = default;
0042 
0043     /**
0044      * @brief set the ids to delete
0045      * @param keyids fingerprints of the signatures to delete
0046      *
0047      * This will replace all previously set signature ids.
0048      */
0049     void setSignIds(const KGpgSignNode::List &keyids);
0050     /**
0051      * @brief set the id to delete
0052      * @param keyid fingerprint of the signatures to delete
0053      * @overload
0054      *
0055      * This will replace all previously set signature ids.
0056      */
0057     void setSignId(KGpgSignNode *keyid);
0058     /**
0059      * @brief return the signature ids to delete
0060      */
0061     KGpgSignNode::List getSignIds(void) const;
0062 
0063 protected:
0064     bool nextLine(const QString &line) override;
0065     ts_boolanswer boolQuestion(const QString &line) override;
0066 
0067 private:
0068     KGpgSignNode::List m_signids;   ///< the list of ids to delete
0069     QString m_cachedid; ///< the next id GnuPG will ask to delete
0070 };
0071 
0072 #endif // KGPGDELSIGN_H