Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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) {
76 QQuickItemPrivate::get(item)->setCulled(!visible);
77 QQuickItemPrivate::get(item)->isAccessible = visible;
78 }
79}
80
82{
83 if (track) {
84 if (!trackGeom) {
85 if (item) {
88 }
89 trackGeom = true;
90 }
91 } else {
92 if (trackGeom) {
93 if (item) {
96 }
97 trackGeom = false;
98 }
99 }
100}
101
103{
104 return QRectF(item->position(), item->size());
105}
106
112
113#if QT_CONFIG(quick_viewtransitions)
114QQuickItemViewTransitioner::TransitionType QQuickItemViewFxItem::scheduledTransitionType() const
115{
116 return transitionableItem ? transitionableItem->nextTransitionType : QQuickItemViewTransitioner::NoTransition;
117}
118
119bool QQuickItemViewFxItem::transitionScheduledOrRunning() const
120{
121 return transitionableItem ? transitionableItem->transitionScheduledOrRunning() : false;
122}
123
124bool QQuickItemViewFxItem::transitionRunning() const
125{
126 return transitionableItem ? transitionableItem->transitionRunning() : false;
127}
128
129bool QQuickItemViewFxItem::isPendingRemoval() const
130{
131 return transitionableItem ? transitionableItem->isPendingRemoval() : false;
132}
133
134void QQuickItemViewFxItem::transitionNextReposition(QQuickItemViewTransitioner *transitioner, QQuickItemViewTransitioner::TransitionType type, bool asTarget)
135{
136 if (!transitioner)
137 return;
138 if (!transitionableItem)
139 transitionableItem = new QQuickItemViewTransitionableItem(item);
140 transitioner->transitionNextReposition(transitionableItem, type, asTarget);
141}
142
143bool QQuickItemViewFxItem::prepareTransition(QQuickItemViewTransitioner *transitioner, const QRectF &viewBounds)
144{
145 return transitionableItem ? transitionableItem->prepareTransition(transitioner, index, viewBounds) : false;
146}
147
148void QQuickItemViewFxItem::startTransition(QQuickItemViewTransitioner *transitioner)
149{
150 if (transitionableItem)
151 transitionableItem->startTransition(transitioner, index);
152}
153#endif
154
156
void deleteLater()
\threadsafe
Definition qobject.cpp:2435
\inmodule QtCore\reentrant
Definition qpoint.h:217
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)
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:63
void setSize(const QSizeF &size)
qreal x
\qmlproperty real QtQuick::Item::x \qmlproperty real QtQuick::Item::y \qmlproperty real QtQuick::Item...
Definition qquickitem.h:72
void setParentItem(QQuickItem *parent)
qreal y
Defines the item's y position relative to its parent.
Definition qquickitem.h:73
QSizeF size() const
QPointF position() const
void setPosition(const QPointF &)
\inmodule QtCore\reentrant
Definition qrect.h:484
constexpr QPointF topLeft() const noexcept
Returns the position of the rectangle's top-left corner.
Definition qrect.h:511
constexpr QSizeF size() const noexcept
Returns the size of the rectangle.
Definition qrect.h:735
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:187
if(qFloatDistance(a, b)<(1<< 7))
[0]
QObject::connect nullptr
QGraphicsItem * item