Warning, file /plasma/plasma-workspace/kcms/notifications/filterproxymodel.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2019 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 #include "filterproxymodel.h" 0008 0009 #include "sourcesmodel.h" 0010 0011 FilterProxyModel::FilterProxyModel(QObject *parent) 0012 : QSortFilterProxyModel(parent) 0013 { 0014 setRecursiveFilteringEnabled(true); 0015 } 0016 0017 FilterProxyModel::~FilterProxyModel() = default; 0018 0019 QString FilterProxyModel::query() const 0020 { 0021 return m_query; 0022 } 0023 0024 void FilterProxyModel::setQuery(const QString &query) 0025 { 0026 if (m_query != query) { 0027 m_query = query; 0028 invalidateFilter(); 0029 Q_EMIT queryChanged(); 0030 } 0031 } 0032 0033 bool FilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const 0034 { 0035 if (m_query.isEmpty()) { 0036 return true; 0037 } 0038 0039 const QModelIndex idx = sourceModel()->index(source_row, 0, source_parent); 0040 0041 const QString display = idx.data(Qt::DisplayRole).toString(); 0042 if (display.contains(m_query, Qt::CaseInsensitive)) { 0043 return true; 0044 } 0045 0046 return false; 0047 }