Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquickstackview_p.h
Go to the documentation of this file.
1// Copyright (C) 2017 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 QQUICKSTACKVIEW_P_H
5#define QQUICKSTACKVIEW_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 <QtCore/qdebug.h>
19#include <QtQuickTemplates2/private/qquickcontrol_p.h>
20
22
23class QQmlV4Function;
29
39{
43
44public:
45 QQuickStackViewArg() = default;
50
51#ifndef QT_NO_DEBUG_STREAM
53#endif
54
55private:
57 friend class QQuickStackElement;
58
59 QQuickItem *mItem = nullptr;
60 QQmlComponent *mComponent = nullptr;
61 QUrl mUrl;
62 QVariantMap mProperties;
63};
64
65class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickStackView : public QQuickControl
66{
68 Q_PROPERTY(bool busy READ isBusy NOTIFY busyChanged FINAL)
69 Q_PROPERTY(int depth READ depth NOTIFY depthChanged FINAL)
70 Q_PROPERTY(QQuickItem *currentItem READ currentItem NOTIFY currentItemChanged FINAL)
71 Q_PROPERTY(QJSValue initialItem READ initialItem WRITE setInitialItem FINAL)
72#if QT_CONFIG(quick_viewtransitions)
73 Q_PROPERTY(QQuickTransition *popEnter READ popEnter WRITE setPopEnter NOTIFY popEnterChanged FINAL)
74 Q_PROPERTY(QQuickTransition *popExit READ popExit WRITE setPopExit NOTIFY popExitChanged FINAL)
75 Q_PROPERTY(QQuickTransition *pushEnter READ pushEnter WRITE setPushEnter NOTIFY pushEnterChanged FINAL)
76 Q_PROPERTY(QQuickTransition *pushExit READ pushExit WRITE setPushExit NOTIFY pushExitChanged FINAL)
77 Q_PROPERTY(QQuickTransition *replaceEnter READ replaceEnter WRITE setReplaceEnter NOTIFY replaceEnterChanged FINAL)
78 Q_PROPERTY(QQuickTransition *replaceExit READ replaceExit WRITE setReplaceExit NOTIFY replaceExitChanged FINAL)
79#endif
80 // 2.3 (Qt 5.10)
81 Q_PROPERTY(bool empty READ isEmpty NOTIFY emptyChanged FINAL REVISION(2, 3))
82 QML_NAMED_ELEMENT(StackView)
85
86public:
87 explicit QQuickStackView(QQuickItem *parent = nullptr);
89
90 static QQuickStackViewAttached *qmlAttachedProperties(QObject *object);
91
92 bool isBusy() const;
93 int depth() const;
94 QQuickItem *currentItem() const;
95
96 enum Status {
97 Inactive = 0,
98 Deactivating = 1,
99 Activating = 2,
100 Active = 3
101 };
102 Q_ENUM(Status)
103
104 QJSValue initialItem() const;
105 void setInitialItem(const QJSValue &item);
106
107#if QT_CONFIG(quick_viewtransitions)
108 QQuickTransition *popEnter() const;
109 void setPopEnter(QQuickTransition *enter);
110
111 QQuickTransition *popExit() const;
112 void setPopExit(QQuickTransition *exit);
113
114 QQuickTransition *pushEnter() const;
115 void setPushEnter(QQuickTransition *enter);
116
117 QQuickTransition *pushExit() const;
118 void setPushExit(QQuickTransition *exit);
119
120 QQuickTransition *replaceEnter() const;
121 void setReplaceEnter(QQuickTransition *enter);
122
123 QQuickTransition *replaceExit() const;
124 void setReplaceExit(QQuickTransition *exit);
125#endif
126
129 ForceLoad
130 };
131 Q_ENUM(LoadBehavior)
132
134 Q_INVOKABLE QQuickItem *find(const QJSValue &callback, QQuickStackView::LoadBehavior behavior = DontLoad);
135
137 Transition = -1, // ### Deprecated in Qt 6; remove in Qt 7.
138 Immediate = 0,
139 PushTransition = 1,
140 ReplaceTransition = 2,
141 PopTransition = 3,
142 };
144
147 Q_INVOKABLE void replace(QQmlV4Function *args);
148
150 Operation operation = Immediate);
152 Operation operation = Immediate);
154 Operation operation = Immediate);
155 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *pushItem(const QUrl &url, const QVariantMap &properties = {},
156 Operation operation = Immediate);
157
158 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *popToItem(QQuickItem *item, Operation operation = PopTransition);
159 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *popToIndex(int index, Operation operation = PopTransition);
160 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *popCurrentItem(Operation operation = PopTransition);
161
163 Operation operation = ReplaceTransition);
164 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *replaceCurrentItem(QQuickItem *item,
165 const QVariantMap &properties = {}, Operation operation = ReplaceTransition);
167 const QVariantMap &properties = {}, Operation operation = ReplaceTransition);
168 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *replaceCurrentItem(const QUrl &url,
169 const QVariantMap &properties = {}, Operation operation = ReplaceTransition);
170
171 // 2.3 (Qt 5.10)
172 bool isEmpty() const;
173
174public Q_SLOTS:
175 void clear(Operation operation = Immediate);
176
181#if QT_CONFIG(quick_viewtransitions)
182 void popEnterChanged();
183 void popExitChanged();
184 void pushEnterChanged();
185 void pushExitChanged();
186 void replaceEnterChanged();
187 void replaceExitChanged();
188#endif
189 // 2.3 (Qt 5.10)
190 Q_REVISION(2, 3) void emptyChanged();
191
192protected:
193 void componentComplete() override;
194 void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
195 bool childMouseEventFilter(QQuickItem *, QEvent *) override;
196
197#if QT_CONFIG(quicktemplates2_multitouch)
198 void touchEvent(QTouchEvent *event) override;
199#endif
200
201#if QT_CONFIG(accessibility)
202 QAccessible::Role accessibleRole() const override;
203#endif
204
205private:
206 Q_DISABLE_COPY(QQuickStackView)
207 Q_DECLARE_PRIVATE(QQuickStackView)
208};
209
210class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickStackViewAttached : public QObject
211{
213 Q_PROPERTY(int index READ index NOTIFY indexChanged FINAL)
214 Q_PROPERTY(QQuickStackView *view READ view NOTIFY viewChanged FINAL)
215 Q_PROPERTY(QQuickStackView::Status status READ status NOTIFY statusChanged FINAL)
216 // 2.2 (Qt 5.9)
217 Q_PROPERTY(bool visible READ isVisible WRITE setVisible RESET resetVisible NOTIFY visibleChanged FINAL) // REVISION(2, 2)
218
219public:
220 explicit QQuickStackViewAttached(QObject *parent = nullptr);
222
223 int index() const;
224 QQuickStackView *view() const;
225 QQuickStackView::Status status() const;
226
227 // 2.2 (Qt 5.9)
228 bool isVisible() const;
229 void setVisible(bool visible);
230 void resetVisible();
231
236 // 2.1 (Qt 5.8)
237 /*Q_REVISION(2, 1)*/ void activated();
238 /*Q_REVISION(2, 1)*/ void activating();
239 /*Q_REVISION(2, 1)*/ void deactivated();
240 /*Q_REVISION(2, 1)*/ void deactivating();
241 /*Q_REVISION(2, 1)*/ void removed();
242 // 2.2 (Qt 5.9)
243 /*Q_REVISION(2, 2)*/ void visibleChanged();
244
245private:
246 Q_DISABLE_COPY(QQuickStackViewAttached)
247 Q_DECLARE_PRIVATE(QQuickStackViewAttached)
248};
249
251
253
254#endif // QQUICKSTACKVIEW_P_H
\inmodule QtCore
\inmodule QtCore
Definition qcoreevent.h:45
The QJSValue class acts as a container for Qt/JavaScript data types.
Definition qjsvalue.h:31
Definition qlist.h:74
\inmodule QtCore
Definition qobject.h:90
The QQmlComponent class encapsulates a QML component definition.
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:64
bool isVisible() const
void setVisible(bool)
virtual void touchEvent(QTouchEvent *event)
This event handler can be reimplemented in a subclass to receive touch events for an item.
friend QDebug operator<<(QDebug debug, const QQuickStackViewArg &arg)
QQuickStackViewArg()=default
Q_REVISION(2, 3) void emptyChanged()
Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *replaceCurrentItem(QQmlComponent *component
Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *pushItems(QList< QQuickStackViewArg > args
void currentItemChanged()
Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *pushItem(const QUrl &url
Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *popToItem(QQuickItem *item
Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *pushItem(QQmlComponent *component
Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *replaceCurrentItem(const QUrl &url
\inmodule QtCore\reentrant
Definition qrect.h:483
The QTouchEvent class contains parameters that describe a touch event.
Definition qevent.h:916
\inmodule QtCore
Definition qurl.h:94
void statusChanged(QDeclarativeComponent::Status status)
[1]
Definition qlogging.cpp:9
b clear()
Combined button and popup list for selecting options.
static const QCssKnownValue properties[NumProperties - 1]
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
static QDBusError::ErrorType get(const char *name)
GLint GLenum GLsizei GLsizei GLsizei depth
GLuint index
[2]
struct _cl_event * event
static qreal component(const QPointF &point, unsigned int i)
#define QML_DECLARE_TYPE(TYPE)
Definition qqml.h:19
#define QML_ANONYMOUS
#define QML_NAMED_ELEMENT(NAME)
#define QML_CONSTRUCTIBLE_VALUE
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define QML_ATTACHED(ATTACHED_TYPE)
SSL_CTX int(*) void arg)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_REVISION(...)
#define Q_INVOKABLE
#define Q_SLOTS
#define Q_GADGET
#define Q_SIGNALS
QUrl url("example.com")
[constructor-url-reference]
QGraphicsItem * item
edit isVisible()
stack push(command1)
QQuickView * view
[0]
QJSValueList args
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent