Qt 6.x
The Qt SDK
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
5#include "qquickitem_p.h"
7
9
11 : item(item)
12 , changeListener(changeListener)
13#if QT_CONFIG(quick_viewtransitions)
14 , transitionableItem(nullptr)
15#endif
16 , ownItem(ownItem)
17 , releaseAfterTransition(false)
18 , trackGeom(false)
19{
20}
21
23{
24#if QT_CONFIG(quick_viewtransitions)
25 delete transitionableItem;
26 transitionableItem = nullptr;
27#endif
28
29 if (ownItem && item) {
30 trackGeometry(false);
33 }
34}
35
37{
38 return
39#if QT_CONFIG(quick_viewtransitions)
40 transitionableItem ? transitionableItem->itemX() :
41#endif
42 (item ? item->x() : 0);
43}
44
46{
47 return
48#if QT_CONFIG(quick_viewtransitions)
49 transitionableItem ? transitionableItem->itemY() :
50#endif
51 (item ? item->y() : 0);
52}
53
54void QQuickItemViewFxItem::moveTo(const QPointF &pos, bool immediate)
55{
56#if QT_CONFIG(quick_viewtransitions)
57 if (transitionableItem)
58 transitionableItem->moveTo(pos, immediate);
59 else
60#else
61 Q_UNUSED(immediate)
62#endif
63 if (item)
65}
66
68{
69 if (!visible
70#if QT_CONFIG(quick_viewtransitions)
71 && transitionableItem && transitionableItem->transitionScheduledOrRunning()
72#endif
73 )
74 return;
75 if (item)
77}
78
80{
81 if (track) {
82 if (!trackGeom) {
83 if (item) {
86 }
87 trackGeom = true;
88 }
89 } else {
90 if (trackGeom) {
91 if (item) {
94 }
95 trackGeom = false;
96 }
97 }
98}
99
101{
102 return QRectF(item->position(), item->size());
103}
104
106{
109}
110
111#if QT_CONFIG(quick_viewtransitions)
112QQuickItemViewTransitioner::TransitionType QQuickItemViewFxItem::scheduledTransitionType() const
113{
114 return transitionableItem ? transitionableItem->nextTransitionType : QQuickItemViewTransitioner::NoTransition;
115}
116
117bool QQuickItemViewFxItem::transitionScheduledOrRunning() const
118{
119 return transitionableItem ? transitionableItem->transitionScheduledOrRunning() : false;
120}
121
122bool QQuickItemViewFxItem::transitionRunning() const
123{
124 return transitionableItem ? transitionableItem->transitionRunning() : false;
125}
126
127bool QQuickItemViewFxItem::isPendingRemoval() const
128{
129 return transitionableItem ? transitionableItem->isPendingRemoval() : false;
130}
131
132void QQuickItemViewFxItem::transitionNextReposition(QQuickItemViewTransitioner *transitioner, QQuickItemViewTransitioner::TransitionType type, bool asTarget)
133{
134 if (!transitioner)
135 return;
136 if (!transitionableItem)
137 transitionableItem = new QQuickItemViewTransitionableItem(item);
138 transitioner->transitionNextReposition(transitionableItem, type, asTarget);
139}
140
141bool QQuickItemViewFxItem::prepareTransition(QQuickItemViewTransitioner *transitioner, const QRectF &viewBounds)
142{
143 return transitionableItem ? transitionableItem->prepareTransition(transitioner, index, viewBounds) : false;
144}
145
146void QQuickItemViewFxItem::startTransition(QQuickItemViewTransitioner *transitioner)
147{
148 if (transitionableItem)
149 transitionableItem->startTransition(transitioner, index);
150}
151#endif
152
154
void deleteLater()
\threadsafe
Definition qobject.cpp:2352
\inmodule QtCore\reentrant
Definition qpoint.h:214
void removeItemChangeListener(QQuickItemChangeListener *, ChangeTypes types)
void addItemChangeListener(QQuickItemChangeListener *listener, ChangeTypes types)
static QQuickItemPrivate * get(QQuickItem *item)
QPointer< QQuickItem > item
QQuickItemViewFxItem(QQuickItem *item, bool ownItem, QQuickItemChangeListener *changeListener)
void setVisible(bool visible)
QQuickItemChangeListener * changeListener
void moveTo(const QPointF &pos, bool immediate)
void setGeometry(const QRectF &geometry)
void transitionNextReposition(QQuickItemViewTransitionableItem *item, QQuickItemViewTransitioner::TransitionType type, bool isTarget)
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:64
void setSize(const QSizeF &size)
qreal x
\qmlproperty real QtQuick::Item::x \qmlproperty real QtQuick::Item::y \qmlproperty real QtQuick::Item...
Definition qquickitem.h:73
void setParentItem(QQuickItem *parent)
qreal y
Defines the item's y position relative to its parent.
Definition qquickitem.h:74
QSizeF size() const
QPointF position() const
void setPosition(const QPointF &)
\inmodule QtCore\reentrant
Definition qrect.h:483
constexpr QPointF topLeft() const noexcept
Returns the position of the rectangle's top-left corner.
Definition qrect.h:510
constexpr QSizeF size() const noexcept
Returns the size of the rectangle.
Definition qrect.h:721
Combined button and popup list for selecting options.
GLuint index
[2]
GLenum type
#define QT_CONFIG(feature)
#define Q_UNUSED(x)
double qreal
Definition qtypes.h:92
if(qFloatDistance(a, b)<(1<< 7))
[0]
QObject::connect nullptr
QGraphicsItem * item