KLdap

ldapsortproxymodel.cpp
1// SPDX-FileCopyrightText: 2024 Laurent Montel <montel@kde.org>
2// SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
3
4#include "ldapsortproxymodel.h"
5#include "ldapactivitiesabstract.h"
6#include "ldapmodel.h"
7using namespace KLDAPCore;
8LdapSortProxyModel::LdapSortProxyModel(QObject *parent)
10{
11}
12
13LdapSortProxyModel::~LdapSortProxyModel() = default;
14
15bool LdapSortProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
16{
17 if (mLdapActivitiesAbstract) {
18 const auto activities = sourceModel()->index(source_row, 0).data(LdapModel::Activities).toStringList();
19 return mLdapActivitiesAbstract->filterAcceptsRow(activities);
20 }
21 return QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent);
22}
23
24bool LdapSortProxyModel::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const
25{
26 if (!sourceModel()) {
27 return false;
28 }
29 if (source_left.isValid() && source_right.isValid()) {
30 const int left = sourceModel()->data(source_left, LdapModel::Index).toInt();
31 const int right = sourceModel()->data(source_right, LdapModel::Index).toInt();
32 return left < right;
33 } else {
34 return false;
35 }
36 return true;
37}
38
39LdapActivitiesAbstract *LdapSortProxyModel::ldapActivitiesAbstract() const
40{
41 return mLdapActivitiesAbstract;
42}
43
44void LdapSortProxyModel::setLdapActivitiesAbstract(LdapActivitiesAbstract *newIdentityActivitiesAbstract)
45{
46 if (mLdapActivitiesAbstract != newIdentityActivitiesAbstract) {
47 mLdapActivitiesAbstract = newIdentityActivitiesAbstract;
48 connect(mLdapActivitiesAbstract, &LdapActivitiesAbstract::activitiesChanged, this, &LdapSortProxyModel::invalidateFilter);
50 }
51}
52
53#include "moc_ldapsortproxymodel.cpp"
The LdapActivitiesAbstract class.
QVariant data(int role) const const
bool isValid() const const
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const const
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const const override
QTextStream & left(QTextStream &stream)
QTextStream & right(QTextStream &stream)
QStringList toStringList() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Jul 26 2024 11:55:02 by doxygen 1.11.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.