File indexing completed on 2024-05-19 05:06:57

0001 /*
0002     SPDX-FileCopyrightText: 2020 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef IDFILTER_H
0007 #define IDFILTER_H
0008 
0009 #include "kmm_models_export.h"
0010 
0011 // ----------------------------------------------------------------------------
0012 // QT Includes
0013 
0014 #include <QSortFilterProxyModel>
0015 
0016 // ----------------------------------------------------------------------------
0017 // KDE Includes
0018 
0019 // ----------------------------------------------------------------------------
0020 // Project Includes
0021 
0022 class IdFilterPrivate;
0023 class KMM_MODELS_EXPORT IdFilter : public QSortFilterProxyModel
0024 {
0025     Q_OBJECT
0026     Q_DECLARE_PRIVATE(IdFilter)
0027     Q_DISABLE_COPY(IdFilter)
0028 
0029 public:
0030     explicit IdFilter(QObject* parent);
0031 
0032     void setFilterList(const QStringList& idList);
0033     void addFilter(const QString& id);
0034     void removeFilter(const QString& id);
0035     QList<QString> filterList() const;
0036 
0037 protected:
0038     bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override;
0039     bool lessThan(const QModelIndex& left, const QModelIndex& right) const override;
0040 
0041 private:
0042     IdFilterPrivate*  d_ptr;
0043 };
0044 
0045 #endif // IDFILTER_H
0046