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
qquickitemviewfxitem.cpp
Go to the documentation of this file.
1
// Copyright (C) 2018 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
"qquickitemviewfxitem_p_p.h"
6
#
include
"qquickitem_p.h"
7
#
include
"qquickitemview_p_p.h"
8
9
QT_BEGIN_NAMESPACE
10
11
QQuickItemViewFxItem::QQuickItemViewFxItem(QQuickItem *item,
bool
ownItem, QQuickItemChangeListener* changeListener)
12
: item(item)
13
, changeListener(changeListener)
14
#
if
QT_CONFIG
(
quick_viewtransitions
)
15
, transitionableItem(
nullptr
)
16
#
endif
17
, ownItem(ownItem)
18
, releaseAfterTransition(
false
)
19
, trackGeom(
false
)
20
{
21
}
22
23
QQuickItemViewFxItem::~QQuickItemViewFxItem()
24
{
25
#
if
QT_CONFIG
(
quick_viewtransitions
)
26
delete
transitionableItem;
27
transitionableItem =
nullptr
;
28
#
endif
29
30
if
(ownItem && item) {
31
trackGeometry(
false
);
32
item->setParentItem(0);
33
item->deleteLater();
34
}
35
}
36
37
qreal QQuickItemViewFxItem::itemX()
const
38
{
39
return
40
#
if
QT_CONFIG
(
quick_viewtransitions
)
41
transitionableItem ? transitionableItem->itemX() :
42
#
endif
43
(item ? item->x() : 0);
44
}
45
46
qreal QQuickItemViewFxItem::itemY()
const
47
{
48
return
49
#
if
QT_CONFIG
(
quick_viewtransitions
)
50
transitionableItem ? transitionableItem->itemY() :
51
#
endif
52
(item ? item->y() : 0);
53
}
54
55
void
QQuickItemViewFxItem::moveTo(
const
QPointF &pos,
bool
immediate)
56
{
57
#
if
QT_CONFIG
(
quick_viewtransitions
)
58
if
(transitionableItem)
59
transitionableItem->moveTo(pos, immediate);
60
else
61
#
else
62
Q_UNUSED(immediate)
63
#
endif
64
if
(item)
65
item->setPosition(pos);
66
}
67
68
void
QQuickItemViewFxItem::setVisible(
bool
visible)
69
{
70
if
(!visible
71
#
if
QT_CONFIG
(
quick_viewtransitions
)
72
&& transitionableItem && transitionableItem->transitionScheduledOrRunning()
73
#
endif
74
)
75
return
;
76
if
(item) {
77
QQuickItemPrivate::get(item)->setCulled(!visible);
78
QQuickItemPrivate::get(item)->isAccessible = visible;
79
}
80
}
81
82
void
QQuickItemViewFxItem::trackGeometry(
bool
track)
83
{
84
if
(track) {
85
if
(!trackGeom) {
86
if
(item) {
87
QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
88
itemPrivate->addItemChangeListener(changeListener, QQuickItemPrivate::Geometry);
89
}
90
trackGeom =
true
;
91
}
92
}
else
{
93
if
(trackGeom) {
94
if
(item) {
95
QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
96
itemPrivate->removeItemChangeListener(changeListener, QQuickItemPrivate::Geometry);
97
}
98
trackGeom =
false
;
99
}
100
}
101
}
102
103
QRectF QQuickItemViewFxItem::geometry()
const
104
{
105
return
QRectF(item->position(), item->size());
106
}
107
108
void
QQuickItemViewFxItem::setGeometry(
const
QRectF &geometry)
109
{
110
item->setPosition(geometry.topLeft());
111
item->setSize(geometry.size());
112
}
113
114
#
if
QT_CONFIG
(
quick_viewtransitions
)
115
QQuickItemViewTransitioner::TransitionType QQuickItemViewFxItem::scheduledTransitionType()
const
116
{
117
return
transitionableItem ? transitionableItem->nextTransitionType : QQuickItemViewTransitioner::NoTransition;
118
}
119
120
bool
QQuickItemViewFxItem::transitionScheduledOrRunning()
const
121
{
122
return
transitionableItem ? transitionableItem->transitionScheduledOrRunning() :
false
;
123
}
124
125
bool
QQuickItemViewFxItem::transitionRunning()
const
126
{
127
return
transitionableItem ? transitionableItem->transitionRunning() :
false
;
128
}
129
130
bool
QQuickItemViewFxItem::isPendingRemoval()
const
131
{
132
return
transitionableItem ? transitionableItem->isPendingRemoval() :
false
;
133
}
134
135
void
QQuickItemViewFxItem::transitionNextReposition(QQuickItemViewTransitioner *transitioner, QQuickItemViewTransitioner::TransitionType type,
bool
asTarget)
136
{
137
if
(!transitioner)
138
return
;
139
if
(!transitionableItem)
140
transitionableItem =
new
QQuickItemViewTransitionableItem(item);
141
transitioner->transitionNextReposition(transitionableItem, type, asTarget);
142
}
143
144
bool
QQuickItemViewFxItem::prepareTransition(QQuickItemViewTransitioner *transitioner,
const
QRectF &viewBounds)
145
{
146
return
transitionableItem ? transitionableItem->prepareTransition(transitioner, index, viewBounds) :
false
;
147
}
148
149
void
QQuickItemViewFxItem::startTransition(QQuickItemViewTransitioner *transitioner)
150
{
151
if
(transitionableItem)
152
transitionableItem->startTransition(transitioner, index);
153
}
154
#
endif
155
156
QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtdeclarative
src
quick
items
qquickitemviewfxitem.cpp
Generated on
for Qt by
1.18.0