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
qqmlvaluetypeproxybinding.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 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
4
5
#
include
"qqmlvaluetypeproxybinding_p.h"
6
7
QT_BEGIN_NAMESPACE
8
9
/*!
10
\class QQmlValueTypeProxyBinding
11
\inmodule QtQml
12
\internal
13
*/
14
QQmlValueTypeProxyBinding::QQmlValueTypeProxyBinding(QObject *o, QQmlPropertyIndex index)
15
: QQmlAbstractBinding(),
16
m_bindings(
nullptr
)
17
{
18
m_target = o;
19
m_targetIndex = index;
20
}
21
22
QQmlValueTypeProxyBinding::~QQmlValueTypeProxyBinding()
23
{
24
QQmlAbstractBinding *binding = m_bindings.data();
25
while
(binding) {
26
binding->setAddedToObject(
false
);
27
binding = binding->nextBinding();
28
}
29
}
30
31
void
QQmlValueTypeProxyBinding::setEnabled(
bool
e, QQmlPropertyData::WriteFlags flags)
32
{
33
QQmlAbstractBinding *b = m_bindings.data();
34
while
(b) {
35
b->setEnabled(e, flags);
36
b = b->nextBinding();
37
}
38
}
39
40
QQmlAbstractBinding *QQmlValueTypeProxyBinding::binding(QQmlPropertyIndex propertyIndex)
const
41
{
42
QQmlAbstractBinding *binding = m_bindings.data();
43
44
while
(binding && binding->targetPropertyIndex() != propertyIndex)
45
binding = binding->nextBinding();
46
47
return
binding;
48
}
49
50
/*!
51
\internal
52
Removes a collection of bindings, corresponding to the set bits
53
in \a mask.
54
*/
55
void
QQmlValueTypeProxyBinding::removeBindings(quint32 mask)
56
{
57
QQmlAbstractBinding *binding = m_bindings.data();
58
QQmlAbstractBinding *lastBinding =
nullptr
;
59
60
while
(binding) {
61
const
int
valueTypeIndex = binding->targetPropertyIndex().valueTypeIndex();
62
if
(valueTypeIndex != -1 && (mask & (1 << valueTypeIndex))) {
63
QQmlAbstractBinding *remove = binding;
64
remove->setAddedToObject(
false
);
65
binding = remove->nextBinding();
66
67
if
(lastBinding ==
nullptr
)
68
m_bindings = remove->nextBinding();
69
else
70
lastBinding->setNextBinding(remove->nextBinding());
71
}
else
{
72
lastBinding = binding;
73
binding = binding->nextBinding();
74
}
75
}
76
}
77
78
QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtdeclarative
src
qml
qml
qqmlvaluetypeproxybinding.cpp
Generated on
for Qt by
1.18.0