File indexing completed on 2024-05-12 16:25:50

0001 /*
0002    SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "moderationreportinfofilterproxymodel.h"
0008 #include "config-ruqola.h"
0009 #include "moderationreportinfomodel.h"
0010 
0011 #if HAVE_TEXT_UTILS
0012 #include <TextUtils/ConvertText>
0013 #endif
0014 
0015 ModerationReportInfoFilterProxyModel::ModerationReportInfoFilterProxyModel(QObject *parent)
0016     : SortFilterProxyModelBase{parent}
0017 {
0018 }
0019 
0020 ModerationReportInfoFilterProxyModel::~ModerationReportInfoFilterProxyModel() = default;
0021 
0022 bool ModerationReportInfoFilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
0023 {
0024     const QModelIndex modelIndex = sourceModel()->index(source_row, 0, source_parent);
0025 
0026     auto match = [&](int role) {
0027         if (mFilterString.isEmpty()) {
0028             return true;
0029         };
0030 #if HAVE_TEXT_UTILS
0031         const QString str = TextUtils::ConvertText::normalize(modelIndex.data(role).toString());
0032         return str.contains(mFilterString, Qt::CaseInsensitive);
0033 #else
0034         const QString str = modelIndex.data(role).toString();
0035         return str.contains(mFilterString, Qt::CaseInsensitive);
0036 #endif
0037     };
0038     if (!match(ModerationReportInfoModel::Message)) {
0039         return false;
0040     }
0041     return true;
0042 }
0043 
0044 #include "moc_moderationreportinfofilterproxymodel.cpp"