Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qqmlcompositefilterbase.cpp
Go to the documentation of this file.
1
// Copyright (C) 2026 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
include
<
QtQmlModels
/
private
/
qqmlcompositefilterbase_p
.
h
>
6
7
QT_BEGIN_NAMESPACE
8
9
/*!
10
\qmltype CompositeFilter
11
\internal
12
\inherits FilterBase
13
\inqmlmodule QtQml.Models
14
\since 6.12
15
\preliminary
16
\brief Abstract base type providing functionality common to composite
17
filters.
18
19
CompositeFilter provides a set of common properties that all composite
20
filter types inherit, such as \l AllOfFilter and \l AnyOfFilter.
21
*/
22
23
QQmlCompositeFilterBase::QQmlCompositeFilterBase(QObject *parent)
24
: QQmlFilterCompositor(
new
QQmlFilterCompositorPrivate, parent)
25
{
26
}
27
28
QQmlCompositeFilterBase::QQmlCompositeFilterBase(QQmlFilterCompositorPrivate *priv, QObject *parent)
29
: QQmlFilterCompositor(priv, parent)
30
{
31
32
}
33
34
void
QQmlCompositeFilterBase::update(
const
QQmlSortFilterProxyModel *proxyModel)
35
{
36
Q_D(QQmlCompositeFilterBase);
37
auto
*sfpm =
const_cast
<QQmlSortFilterProxyModel *>(proxyModel);
38
39
if
(d->m_sfpmModel != sfpm) {
40
if
(d->m_sfpmModel) {
41
disconnect(d->m_sfpmModel, &QQmlSortFilterProxyModel::modelReset,
42
this
, &QQmlFilterCompositor::updateFilters);
43
for
(
auto
&filter: d->m_filters)
44
disconnect(filter, &QQmlFilterBase::invalidateModel,
45
d->m_sfpmModel, &QQmlSortFilterProxyModel::invalidate);
46
}
47
48
d->m_sfpmModel = sfpm;
49
50
if
(d->m_sfpmModel) {
51
connect(d->m_sfpmModel, &QQmlSortFilterProxyModel::modelReset,
52
this
, &QQmlFilterCompositor::updateFilters);
53
for
(
auto
&filter: d->m_filters)
54
connect(filter, &QQmlFilterBase::invalidateModel,
55
d->m_sfpmModel, &QQmlSortFilterProxyModel::invalidate);
56
}
57
}
58
59
updateFilters();
60
}
61
62
bool
QQmlCompositeFilterBase::isActive()
const
63
{
64
Q_D(
const
QQmlFilterCompositor);
65
return
enabled() && !d->m_effectiveFilters.isEmpty();
66
}
67
68
void
QQmlCompositeFilterBase::refreshCache()
69
{
70
Q_D(QQmlFilterCompositor);
71
const
auto
prevCount = d->m_effectiveFilters.count();
72
QQmlFilterCompositor::refreshCache();
73
if
(d->m_effectiveFilters.count() != prevCount)
74
emit invalidateCache(
this
);
75
}
76
77
bool
QQmlCompositeFilterBase::supportColumnFiltering()
const
78
{
79
Q_D(
const
QQmlFilterCompositor);
80
return
std::any_of(d->m_effectiveFilters.begin(), d->m_effectiveFilters.end(),
81
[](
const
QQmlFilterBase *f) {
return
f->supportColumnFiltering(); });
82
}
83
84
QT_END_NAMESPACE
85
86
#
include
"moc_qqmlcompositefilterbase_p.cpp"
qtdeclarative
src
qmlmodels
sfpm
filters
qqmlcompositefilterbase.cpp
Generated on
for Qt by
1.18.0