File indexing completed on 2024-05-19 16:38:51
0001 /* 0002 SPDX-FileCopyrightText: 2020 Kai Uwe Broulik <kde@privat.broulik.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #pragma once 0008 0009 #include <QSortFilterProxyModel> 0010 0011 #include "kcmkded.h" 0012 0013 class FilterProxyModel : public QSortFilterProxyModel 0014 { 0015 Q_OBJECT 0016 0017 Q_PROPERTY(QString query READ query WRITE setQuery NOTIFY queryChanged) 0018 Q_PROPERTY(KDEDConfig::ModuleStatus statusFilter WRITE setStatusFilter NOTIFY statusFilterChanged) 0019 0020 public: 0021 FilterProxyModel(QObject *parent = nullptr); 0022 ~FilterProxyModel() override; 0023 0024 QString query() const; 0025 void setQuery(const QString &query); 0026 0027 KDEDConfig::ModuleStatus statusFilter() const; 0028 void setStatusFilter(KDEDConfig::ModuleStatus statusFilter); 0029 0030 bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; 0031 0032 Q_SIGNALS: 0033 void queryChanged(); 0034 void statusFilterChanged(); 0035 0036 private: 0037 QString m_query; 0038 KDEDConfig::ModuleStatus m_statusFilter = KDEDConfig::UnknownStatus; // "all" 0039 };