File indexing completed on 2025-03-16 08:32:46
0001 /* 0002 SPDX-FileCopyrightText: 2008, 2009, 2010, 2012, 2016 Rolf Eike Beer <kde@opensource.sf-tec.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef KGPGGROUPNODE_H 0008 #define KGPGGROUPNODE_H 0009 0010 #include "KGpgExpandableNode.h" 0011 #include "KGpgKeyNode.h" 0012 #include <QStringList> 0013 class QString; 0014 0015 class KGpgGroupNodePrivate; 0016 0017 /** 0018 * @brief A GnuPG group of public keys 0019 */ 0020 class KGpgGroupNode : public KGpgExpandableNode 0021 { 0022 private: 0023 KGpgGroupNodePrivate * const d_ptr; 0024 Q_DECLARE_PRIVATE(KGpgGroupNode) 0025 Q_DISABLE_COPY(KGpgGroupNode) 0026 0027 protected: 0028 void readChildren() override; 0029 0030 public: 0031 KGpgGroupNode(KGpgRootNode *parent, const QString &name, const QStringList &members); 0032 KGpgGroupNode(KGpgRootNode *parent, const QString &name, const KGpgKeyNode::List &members); 0033 ~KGpgGroupNode() override; 0034 0035 KgpgCore::KgpgItemType getType() const override; 0036 /** 0037 * Return size of group 0038 * 0039 * @return the number of keys in this group 0040 */ 0041 QString getSize() const override; 0042 QString getName() const override; 0043 0044 /** 0045 * Rename this group node 0046 * 0047 * @param newName new name of the group 0048 */ 0049 void rename(const QString &newName); 0050 0051 /** 0052 * Write the current members to GnuPG config file 0053 */ 0054 void saveMembers(); 0055 0056 /** 0057 * Remove this group from the GnuPG config file 0058 */ 0059 void remove(); 0060 }; 0061 0062 #endif /* KGPGGROUPNODE_H */