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