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
qquickindicatorbutton_p.cpp
Go to the documentation of this file.
1
// Copyright (C) 2020 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
#
include
"qquickindicatorbutton_p.h"
5
#
include
"qquickdeferredexecute_p_p.h"
6
#
include
"qquickcontrol_p_p.h"
7
8
QT_BEGIN_NAMESPACE
9
10
class
QQuickIndicatorButton;
11
12
void
QQuickIndicatorButtonPrivate
::cancelIndicator()
13
{
14
Q_Q(QQuickIndicatorButton);
15
quickCancelDeferred(q, indicatorName());
16
}
17
18
void
QQuickIndicatorButtonPrivate
::
executeIndicator
(
bool
complete)
19
{
20
Q_Q(QQuickIndicatorButton);
21
if
(indicator.wasExecuted())
22
return
;
23
24
if
(!indicator || complete)
25
quickBeginDeferred(q, indicatorName(), indicator);
26
if
(complete)
27
quickCompleteDeferred(q, indicatorName(), indicator);
28
}
29
30
QQuickIndicatorButton::QQuickIndicatorButton(QObject *parent)
31
: QObject(*(
new
QQuickIndicatorButtonPrivate), parent)
32
{
33
}
34
35
QQuickIndicatorButton::~QQuickIndicatorButton()
36
{
37
Q_D(QQuickIndicatorButton);
38
QQuickControl *parentControl =
static_cast
<QQuickControl *>(parent());
39
if
(parentControl)
40
QQuickControlPrivate::get(parentControl)->removeImplicitSizeListener(d->indicator);
41
}
42
43
bool
QQuickIndicatorButton::isPressed()
const
44
{
45
Q_D(
const
QQuickIndicatorButton);
46
return
d->pressed;
47
}
48
49
void
QQuickIndicatorButton::setPressed(
bool
pressed)
50
{
51
Q_D(QQuickIndicatorButton);
52
if
(d->pressed == pressed)
53
return
;
54
55
d->pressed = pressed;
56
emit pressedChanged();
57
}
58
59
QQuickItem *QQuickIndicatorButton::indicator()
const
60
{
61
QQuickIndicatorButtonPrivate *d =
const_cast
<QQuickIndicatorButtonPrivate *>(d_func());
62
if
(!d->indicator)
63
d->executeIndicator();
64
return
d->indicator;
65
}
66
67
void
QQuickIndicatorButton::setIndicator(QQuickItem *indicator)
68
{
69
Q_D(QQuickIndicatorButton);
70
if
(d->indicator == indicator)
71
return
;
72
73
if
(!d->indicator.isExecuting())
74
d->cancelIndicator();
75
76
const
qreal oldImplicitIndicatorWidth = implicitIndicatorWidth();
77
const
qreal oldImplicitIndicatorHeight = implicitIndicatorHeight();
78
79
QQuickControl *par =
static_cast
<QQuickControl *>(parent());
80
QQuickControlPrivate::warnIfCustomizationNotSupported(par, indicator, QStringLiteral(
"indicator"
));
81
82
QQuickControlPrivate::get(par)->removeImplicitSizeListener(d->indicator);
83
QQuickControlPrivate::hideOldItem(d->indicator);
84
d->indicator = indicator;
85
86
if
(indicator) {
87
if
(!indicator->parentItem())
88
indicator->setParentItem(par);
89
QQuickControlPrivate::get(par)->addImplicitSizeListener(indicator);
90
}
91
92
if
(!qFuzzyCompare(oldImplicitIndicatorWidth, implicitIndicatorWidth()))
93
emit implicitIndicatorWidthChanged();
94
if
(!qFuzzyCompare(oldImplicitIndicatorHeight, implicitIndicatorHeight()))
95
emit implicitIndicatorHeightChanged();
96
if
(!d->indicator.isExecuting())
97
emit indicatorChanged();
98
}
99
100
bool
QQuickIndicatorButton::isHovered()
const
101
{
102
Q_D(
const
QQuickIndicatorButton);
103
return
d->hovered;
104
}
105
106
void
QQuickIndicatorButton::setHovered(
bool
hovered)
107
{
108
Q_D(QQuickIndicatorButton);
109
if
(d->hovered == hovered)
110
return
;
111
112
d->hovered = hovered;
113
emit hoveredChanged();
114
}
115
116
qreal QQuickIndicatorButton::implicitIndicatorWidth()
const
117
{
118
Q_D(
const
QQuickIndicatorButton);
119
if
(!d->indicator)
120
return
0;
121
return
d->indicator->implicitWidth();
122
}
123
124
qreal QQuickIndicatorButton::implicitIndicatorHeight()
const
125
{
126
Q_D(
const
QQuickIndicatorButton);
127
if
(!d->indicator)
128
return
0;
129
return
d->indicator->implicitHeight();
130
}
131
132
QT_END_NAMESPACE
133
134
#
include
"moc_qquickindicatorbutton_p.cpp"
QQuickIndicatorButtonPrivate
Definition
qquickindicatorbutton_p.h:71
QQuickIndicatorButtonPrivate::executeIndicator
void executeIndicator(bool complete=false)
Definition
qquickindicatorbutton_p.cpp:18
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtdeclarative
src
quicktemplates
qquickindicatorbutton_p.cpp
Generated on
for Qt by
1.18.0