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 && mEnablePlasmaActivities) {
18 // TODO add ActivitiesEnabled
19 const auto activities = sourceModel()->index(source_row, 0).data(LdapModel::Activities).toStringList();
20 return mLdapActivitiesAbstract->filterAcceptsRow(activities);
21 }
22 return QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent);
23}
24
25bool LdapSortProxyModel::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const
26{
27 if (!sourceModel()) {
28 return false;
29 }
30 if (source_left.isValid() && source_right.isValid()) {
31 const int left = sourceModel()->data(source_left, LdapModel::Index).toInt();
32 const int right = sourceModel()->data(source_right, LdapModel::Index).toInt();
33 return left < right;
34 } else {
35 return false;
36 }
37 return true;
38}
39
40LdapActivitiesAbstract *LdapSortProxyModel::ldapActivitiesAbstract() const
41{
42 return mLdapActivitiesAbstract;
43}
44
45void LdapSortProxyModel::setLdapActivitiesAbstract(LdapActivitiesAbstract *newIdentityActivitiesAbstract)
46{
47 if (mLdapActivitiesAbstract != newIdentityActivitiesAbstract) {
48 mLdapActivitiesAbstract = newIdentityActivitiesAbstract;
49 connect(mLdapActivitiesAbstract, &LdapActivitiesAbstract::activitiesChanged, this, &LdapSortProxyModel::invalidateFilter);
51 }
52}
53
54bool LdapSortProxyModel::enablePlasmaActivities() const
55{
56 return mEnablePlasmaActivities;
57}
58
59void LdapSortProxyModel::setEnablePlasmaActivities(bool newEnablePlasmaActivities)
60{
61 mEnablePlasmaActivities = newEnablePlasmaActivities;
63}
64
65#include "moc_ldapsortproxymodel.cpp"
The LdapActivitiesAbstract class.
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
QTextStream & left(QTextStream &stream)
QTextStream & right(QTextStream &stream)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Oct 11 2024 12:14:23 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.