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
qquickpaddedrectangle.cpp
Go to the documentation of this file.
1
// Copyright (C) 2017 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
"qquickpaddedrectangle_p.h"
6
7
#
include
<
QtQuick
/
private
/
qsgadaptationlayer_p
.
h
>
8
9
QT_BEGIN_NAMESPACE
10
11
QQuickPaddedRectangle::QQuickPaddedRectangle(QQuickItem *parent) :
12
QQuickRectangle(parent)
13
{
14
}
15
16
qreal QQuickPaddedRectangle::padding()
const
17
{
18
return
m_padding;
19
}
20
21
void
QQuickPaddedRectangle::setPadding(qreal padding)
22
{
23
if
(!qFuzzyCompare(m_padding, padding)) {
24
m_padding = padding;
25
update();
26
emit paddingChanged();
27
if
(!m_hasTopPadding)
28
emit topPaddingChanged();
29
if
(!m_hasLeftPadding)
30
emit leftPaddingChanged();
31
if
(!m_hasRightPadding)
32
emit rightPaddingChanged();
33
if
(!m_hasBottomPadding)
34
emit bottomPaddingChanged();
35
}
36
}
37
38
void
QQuickPaddedRectangle::resetPadding()
39
{
40
setPadding(0);
41
}
42
43
qreal QQuickPaddedRectangle::topPadding()
const
44
{
45
return
m_hasTopPadding ? m_topPadding : m_padding;
46
}
47
48
void
QQuickPaddedRectangle::setTopPadding(qreal padding)
49
{
50
setTopPadding(padding,
true
);
51
}
52
53
void
QQuickPaddedRectangle::resetTopPadding()
54
{
55
setTopPadding(0,
false
);
56
}
57
58
qreal QQuickPaddedRectangle::leftPadding()
const
59
{
60
return
m_hasLeftPadding ? m_leftPadding : m_padding;
61
}
62
63
void
QQuickPaddedRectangle::setLeftPadding(qreal padding)
64
{
65
setLeftPadding(padding,
true
);
66
}
67
68
void
QQuickPaddedRectangle::resetLeftPadding()
69
{
70
setLeftPadding(0,
false
);
71
}
72
73
qreal QQuickPaddedRectangle::rightPadding()
const
74
{
75
return
m_hasRightPadding ? m_rightPadding : m_padding;
76
}
77
78
void
QQuickPaddedRectangle::setRightPadding(qreal padding)
79
{
80
setRightPadding(padding,
true
);
81
}
82
83
void
QQuickPaddedRectangle::resetRightPadding()
84
{
85
setRightPadding(0,
false
);
86
}
87
88
qreal QQuickPaddedRectangle::bottomPadding()
const
89
{
90
return
m_hasBottomPadding ? m_bottomPadding : m_padding;
91
}
92
93
void
QQuickPaddedRectangle::setBottomPadding(qreal padding)
94
{
95
setBottomPadding(padding,
true
);
96
}
97
98
void
QQuickPaddedRectangle::resetBottomPadding()
99
{
100
setBottomPadding(0,
false
);
101
}
102
103
void
QQuickPaddedRectangle::setTopPadding(qreal padding,
bool
has)
104
{
105
qreal oldPadding = topPadding();
106
m_hasTopPadding = has;
107
m_topPadding = padding;
108
if
(!qFuzzyCompare(oldPadding, padding)) {
109
update();
110
emit topPaddingChanged();
111
}
112
}
113
114
void
QQuickPaddedRectangle::setLeftPadding(qreal padding,
bool
has)
115
{
116
qreal oldPadding = leftPadding();
117
m_hasLeftPadding = has;
118
m_leftPadding = padding;
119
if
(!qFuzzyCompare(oldPadding, padding)) {
120
update();
121
emit leftPaddingChanged();
122
}
123
}
124
125
void
QQuickPaddedRectangle::setRightPadding(qreal padding,
bool
has)
126
{
127
qreal oldPadding = rightPadding();
128
m_hasRightPadding = has;
129
m_rightPadding = padding;
130
if
(!qFuzzyCompare(oldPadding, padding)) {
131
update();
132
emit rightPaddingChanged();
133
}
134
}
135
136
void
QQuickPaddedRectangle::setBottomPadding(qreal padding,
bool
has)
137
{
138
qreal oldPadding = bottomPadding();
139
m_hasBottomPadding = has;
140
m_bottomPadding = padding;
141
if
(!qFuzzyCompare(oldPadding, padding)) {
142
update();
143
emit bottomPaddingChanged();
144
}
145
}
146
147
QSGNode *QQuickPaddedRectangle::updatePaintNode(QSGNode *node, UpdatePaintNodeData *data)
148
{
149
QSGTransformNode *transformNode =
static_cast
<QSGTransformNode *>(node);
150
if
(!transformNode)
151
transformNode =
new
QSGTransformNode;
152
153
QSGInternalRectangleNode *rectNode =
static_cast
<QSGInternalRectangleNode *>(QQuickRectangle::updatePaintNode(transformNode->firstChild(), data));
154
155
if
(rectNode) {
156
if
(!transformNode->firstChild())
157
transformNode->appendChildNode(rectNode);
158
159
qreal top = topPadding();
160
qreal left = leftPadding();
161
qreal right = rightPadding();
162
qreal bottom = bottomPadding();
163
164
if
(!qFuzzyIsNull(top) || !qFuzzyIsNull(left) || !qFuzzyIsNull(right) || !qFuzzyIsNull(bottom)) {
165
QMatrix4x4 m;
166
m.translate(left, top);
167
transformNode->setMatrix(m);
168
169
qreal w = qMax<qreal>(0.0, width() -left-right);
170
qreal h = qMax<qreal>(0.0, height() -top-bottom);
171
172
rectNode->setRect(QRectF(0, 0, w, h));
173
rectNode->update();
174
}
175
}
176
return
transformNode;
177
}
178
179
QT_END_NAMESPACE
180
181
#
include
"moc_qquickpaddedrectangle_p.cpp"
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtdeclarative
src
quickcontrolsimpl
qquickpaddedrectangle.cpp
Generated on
for Qt by
1.18.0