File indexing completed on 2024-05-19 05:54:12

0001 /*  This file was part of the KDE libraries
0002 
0003     SPDX-FileCopyrightText: 2021 Tomaz Canabrava <tcanabrava@kde.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "sshmanagerfiltermodel.h"
0009 
0010 SSHManagerFilterModel::SSHManagerFilterModel(QObject *parent)
0011     : QSortFilterProxyModel(parent)
0012 {
0013 }
0014 
0015 bool SSHManagerFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
0016 {
0017     auto text = filterRegularExpression().pattern();
0018     if (text.isEmpty()) {
0019         return true;
0020     }
0021 
0022     const QModelIndex idx = sourceModel()->index(sourceRow, 0, sourceParent);
0023     if (sourceModel()->rowCount(idx) != 0) {
0024         return true;
0025     }
0026 
0027     bool result = idx.data(Qt::DisplayRole).toString().toLower().contains(text.toLower());
0028 
0029     return m_invertFilter == false ? result : !result;
0030 }
0031 
0032 void SSHManagerFilterModel::setInvertFilter(bool invert)
0033 {
0034     m_invertFilter = invert;
0035     invalidateFilter();
0036 }
0037 
0038 #include "moc_sshmanagerfiltermodel.cpp"