Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquickitemviewtransition_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 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
4#ifndef QQUICKITEMVIEWTRANSITION_P_P_H
5#define QQUICKITEMVIEWTRANSITION_P_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtQuick/private/qtquickglobal_p.h>
19
20QT_REQUIRE_CONFIG(quick_viewtransitions);
21
22#include <QtCore/qobject.h>
23#include <QtCore/qpoint.h>
24#include <QtQml/qqml.h>
25#include <private/qqmlguard_p.h>
26#include <private/qquicktransition_p.h>
27#include <private/qanimationjobutil_p.h>
28
30
31class QQuickItem;
35
36
37class Q_QUICK_PRIVATE_EXPORT QQuickItemViewTransitionChangeListener
38{
39public:
42
44};
45
46
47class Q_QUICK_PRIVATE_EXPORT QQuickItemViewTransitioner
48{
49public:
55 RemoveTransition
56 };
57
60
61 bool canTransition(QQuickItemViewTransitioner::TransitionType type, bool asTarget) const;
62 void transitionNextReposition(QQuickItemViewTransitionableItem *item, QQuickItemViewTransitioner::TransitionType type, bool isTarget);
63
65 void resetTargetLists();
66
67 QQuickTransition *transitionObject(QQuickItemViewTransitioner::TransitionType type, bool asTarget) const;
70
71 inline void setPopulateTransitionEnabled(bool b) { usePopulateTransition = b; }
72 inline bool populateTransitionEnabled() const { return usePopulateTransition; }
73
75
77
84
93
94private:
96
98 bool usePopulateTransition;
99
101};
102
103
104/*
105 An item that can be transitioned using QQuickViewTransitionJob.
106 */
107class Q_QUICK_PRIVATE_EXPORT QQuickItemViewTransitionableItem
108{
109public:
112
113 qreal itemX() const;
114 qreal itemY() const;
115
116 void moveTo(const QPointF &pos, bool immediate = false);
117
118 bool transitionScheduledOrRunning() const;
119 bool transitionRunning() const;
120 bool isPendingRemoval() const;
121
122 bool prepareTransition(QQuickItemViewTransitioner *transitioner, int index, const QRectF &viewBounds);
123 void startTransition(QQuickItemViewTransitioner *transitioner, int index);
124 void completeTransition(QQuickTransition *quickTransition);
125
137 bool prepared : 1;
138
139private:
142 void setNextTransition(QQuickItemViewTransitioner::TransitionType, bool isTargetItem);
143 bool transitionWillChangePosition() const;
144 void finishedTransition();
145 void resetNextTransitionPos();
146 void clearCurrentScheduledTransition();
147 void stopTransition();
148};
149
150
152{
154
155 Q_PROPERTY(int index READ index NOTIFY indexChanged FINAL)
156 Q_PROPERTY(QQuickItem* item READ item NOTIFY itemChanged FINAL)
158
161
162 QML_NAMED_ELEMENT(ViewTransition)
164 QML_UNCREATABLE("ViewTransition is only available via attached properties.")
166
167public:
169
170 int index() const { return m_index; }
171 QQuickItem *item() const { return m_item; }
172 QPointF destination() const { return m_destination; }
173
174 QList<int> targetIndexes() const { return m_targetIndexes; }
176
178
183
186
187private:
189 QPointF m_destination;
190 QList<int> m_targetIndexes;
191 QList<QObject *> m_targetItems;
192
194 int m_index;
195};
196
198
200
201#endif // QQUICKITEMVIEWTRANSITION_P_P_H
Definition qlist.h:74
\inmodule QtCore
Definition qobject.h:90
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:311
\inmodule QtCore\reentrant
Definition qpoint.h:214
\inmodule QtCore
Definition qpointer.h:18
The QQmlListProperty class allows applications to expose list-like properties of QObject-derived clas...
Definition qqmllist.h:24
virtual void viewItemTransitionFinished(QQuickItemViewTransitionableItem *item)=0
QQuickItemViewTransitionJob * transition
QQuickItemViewTransitioner::TransitionType nextTransitionType
QSet< QQuickItemViewTransitionJob * > runningJobs
QQmlGuard< QQuickTransition > displacedTransition
QQmlGuard< QQuickTransition > addTransition
QQmlGuard< QQuickTransition > removeTransition
QQmlGuard< QQuickTransition > removeDisplacedTransition
QQmlGuard< QQuickTransition > moveTransition
QQmlGuard< QQuickTransition > addDisplacedTransition
QQmlGuard< QQuickTransition > moveDisplacedTransition
QQmlGuard< QQuickTransition > populateTransition
void setChangeListener(QQuickItemViewTransitionChangeListener *obj)
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:64
QQmlListProperty< QObject > targetItems()
QQmlListProperty< QObject > targetItems
\qmltype ViewTransition \instantiates QQuickViewTransitionAttached \inqmlmodule QtQuick
static QQuickViewTransitionAttached * qmlAttachedProperties(QObject *)
\inmodule QtCore\reentrant
Definition qrect.h:483
Definition qset.h:18
Combined button and popup list for selecting options.
GLboolean GLboolean GLboolean b
GLuint index
[2]
GLenum type
GLhandleARB obj
[2]
#define QML_DECLARE_TYPE(TYPE)
Definition qqml.h:19
#define QML_UNCREATABLE(REASON)
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define QML_ATTACHED(ATTACHED_TYPE)
static QList< QQuickStateAction > prepareTransition(QQuickDrawer *drawer, QQuickTransition *transition, qreal to)
#define QT_REQUIRE_CONFIG(feature)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_SIGNALS
double qreal
Definition qtypes.h:92
QGraphicsItem * item