File indexing completed on 2024-04-21 05:50:41
0001 /* 0002 SPDX-FileCopyrightText: 2008-2022 Rolf Eike Beer <kde@opensource.sf-tec.de> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef KGPGDELUID_H 0007 #define KGPGDELUID_H 0008 0009 #include "kgpguidtransaction.h" 0010 0011 #include "core/KGpgSignableNode.h" 0012 0013 #include <QList> 0014 #include <QObject> 0015 0016 class KGpgKeyNode; 0017 0018 class KGpgDelUid: public KGpgUidTransaction { 0019 Q_OBJECT 0020 0021 Q_DISABLE_COPY(KGpgDelUid) 0022 KGpgDelUid() = delete; 0023 public: 0024 enum ts_deluid { 0025 TS_NO_SUCH_UID = KGpgTransaction::TS_COMMON_END + 1 ///< user id does not exist 0026 }; 0027 0028 enum RemoveMode { 0029 RemoveAllOther = 0, ///< remove all other uids 0030 KeepUats = 1, ///< remove all other uids, but keep uats 0031 RemoveWithEmail = 2 ///< remove only those other uids that have an email address 0032 }; 0033 0034 /** 0035 * @brief constructor 0036 * @param parent parent object 0037 * @param uid user id to delete 0038 */ 0039 KGpgDelUid(QObject *parent, const KGpgSignableNode *uid); 0040 /** 0041 * @brief constructor 0042 * @param parent parent object 0043 * @param uids user ids to delete 0044 * 0045 * All entries in uids must be children of the same keynode. The keynode itself 0046 * may be part of the list, representing the primary user id. The nodes must be 0047 * either the keynode itself, user id nodes, or user attribute nodes. 0048 */ 0049 KGpgDelUid(QObject *parent, const KGpgSignableNode::const_List &uids); 0050 /** 0051 * @brief constructor 0052 * @param parent parent object 0053 * @param keynode key to edit 0054 * @param uid uid to delete, negative to delete all others (see also removeMode) 0055 * @param removeMode control which other uids are removed in case uid is negative 0056 */ 0057 KGpgDelUid(QObject *parent, const KGpgKeyNode *keynode, const int uid, const RemoveMode removeMode = RemoveAllOther); 0058 /** 0059 * @brief destructor 0060 */ 0061 ~KGpgDelUid() override = default; 0062 0063 /** 0064 * @brief set the user id to be deleted 0065 * 0066 * This removes all previously set user ids from the list. 0067 */ 0068 void setUid(const KGpgSignableNode *uid); 0069 /** 0070 * @brief set the user id to be deleted 0071 * 0072 * @overload 0073 */ 0074 void setUid(const KGpgKeyNode *keynode, const int uid, const RemoveMode removeMode = RemoveAllOther); 0075 /** 0076 * @brief set the user ids to be deleted 0077 * 0078 * This removes all previously set user ids from the list. 0079 */ 0080 void setUids(const KGpgSignableNode::const_List &uids); 0081 0082 protected: 0083 bool preStart() override; 0084 bool nextLine(const QString &line) override; 0085 ts_boolanswer boolQuestion(const QString &line) override; 0086 void finish() override; 0087 0088 private: 0089 int m_fixargs; 0090 QList<const KGpgSignableNode *> m_uids; 0091 }; 0092 0093 #endif // KGPGDELUID_H