File indexing completed on 2024-04-28 09:45:57

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 */