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

0001 /*
0002    SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "usercompleterfilterproxymodel.h"
0008 #include "usercompletermodel.h"
0009 
0010 UserCompleterFilterProxyModel::UserCompleterFilterProxyModel(QObject *parent)
0011     : QSortFilterProxyModel(parent)
0012 {
0013     setFilterCaseSensitivity(Qt::CaseInsensitive);
0014     setFilterRole(UserCompleterModel::UserName);
0015     sort(0);
0016 }
0017 
0018 UserCompleterFilterProxyModel::~UserCompleterFilterProxyModel() = default;
0019 
0020 void UserCompleterFilterProxyModel::clear()
0021 {
0022     static_cast<UserCompleterModel *>(sourceModel())->clear();
0023 }
0024 
0025 bool UserCompleterFilterProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
0026 {
0027     if (!sourceModel()) {
0028         return false;
0029     }
0030     if (left.isValid() && right.isValid()) {
0031         const QString leftString = sourceModel()->data(left, UserCompleterModel::UserName).toString();
0032         const QString rightString = sourceModel()->data(right, UserCompleterModel::UserName).toString();
0033         return QString::localeAwareCompare(leftString, rightString) < 0;
0034     } else {
0035         return false;
0036     }
0037 }
0038 
0039 #include "moc_usercompleterfilterproxymodel.cpp"