File indexing completed on 2024-04-21 05:50:39

0001 /*
0002     SPDX-FileCopyrightText: 2008, 2014 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 #ifndef GROUPEDITPROXYMODEL_H
0007 #define GROUPEDITPROXYMODEL_H
0008 
0009 #include "core/kgpgkey.h"
0010 
0011 #include <QSortFilterProxyModel>
0012 
0013 class KGpgNode;
0014 class KGpgItemModel;
0015 
0016 class GroupEditProxyModel: public QSortFilterProxyModel
0017 {
0018 public:
0019     explicit GroupEditProxyModel(QObject * parent, const bool invert, QList<KGpgNode *> *ids, const KgpgCore::KgpgKeyTrust mintrust = KgpgCore::TRUST_FULL);
0020 
0021     void setKeyModel(KGpgItemModel *);
0022 
0023     KGpgNode *nodeForIndex(const QModelIndex &index) const;
0024 
0025     int rowCount(const QModelIndex &parent = QModelIndex()) const override;
0026 
0027     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
0028     bool hasChildren(const QModelIndex &parent) const override;
0029     QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
0030 
0031 protected:
0032     bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
0033     int columnCount(const QModelIndex &) const override;
0034 
0035 private:
0036     KGpgItemModel *m_model;
0037     bool m_invert;
0038     QList<KGpgNode *> *m_ids;
0039     KgpgCore::KgpgKeyTrust m_mintrust;
0040 };
0041 
0042 #endif