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
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
28
38{
42
43public:
44 QQuickStackViewArg() = default;
49
50#ifndef QT_NO_DEBUG_STREAM
52#endif
53
54private:
56 friend class QQuickStackElement;
57
58 QQuickItem *mItem = nullptr;
59 QQmlComponent *mComponent = nullptr;
60 QUrl mUrl;
61 QVariantMap mProperties;
62};
63
64class Q_QUICKTEMPLATES2_EXPORT QQuickStackView : public QQuickControl
65{
67 Q_PROPERTY(bool busy READ isBusy NOTIFY busyChanged FINAL)
68 Q_PROPERTY(int depth READ depth NOTIFY depthChanged FINAL)
69 Q_PROPERTY(QQuickItem *currentItem READ currentItem NOTIFY currentItemChanged FINAL)
70 Q_PROPERTY(QJSValue initialItem READ initialItem WRITE setInitialItem FINAL)
71#if QT_CONFIG(quick_viewtransitions)
72 Q_PROPERTY(QQuickTransition *popEnter READ popEnter WRITE setPopEnter NOTIFY popEnterChanged FINAL)
73 Q_PROPERTY(QQuickTransition *popExit READ popExit WRITE setPopExit NOTIFY popExitChanged FINAL)
74 Q_PROPERTY(QQuickTransition *pushEnter READ pushEnter WRITE setPushEnter NOTIFY pushEnterChanged FINAL)
75 Q_PROPERTY(QQuickTransition *pushExit READ pushExit WRITE setPushExit NOTIFY pushExitChanged FINAL)
76 Q_PROPERTY(QQuickTransition *replaceEnter READ replaceEnter WRITE setReplaceEnter NOTIFY replaceEnterChanged FINAL)
77 Q_PROPERTY(QQuickTransition *replaceExit READ replaceExit WRITE setReplaceExit NOTIFY replaceExitChanged FINAL)
78#endif
79 // 2.3 (Qt 5.10)
80 Q_PROPERTY(bool empty READ isEmpty NOTIFY emptyChanged FINAL REVISION(2, 3))
81 QML_NAMED_ELEMENT(StackView)
84
85public:
86 explicit QQuickStackView(QQuickItem *parent = nullptr);
88
89 static QQuickStackViewAttached *qmlAttachedProperties(QObject *object);
90
91 bool isBusy() const;
92 int depth() const;
93 QQuickItem *currentItem() const;
94
95 enum Status {
96 Inactive = 0,
97 Deactivating = 1,
98 Activating = 2,
99 Active = 3
100 };
101 Q_ENUM(Status)
102
103 QJSValue initialItem() const;
104 void setInitialItem(const QJSValue &item);
105
106#if QT_CONFIG(quick_viewtransitions)
107 QQuickTransition *popEnter() const;
108 void setPopEnter(QQuickTransition *enter);
109
110 QQuickTransition *popExit() const;
111 void setPopExit(QQuickTransition *exit);
112
113 QQuickTransition *pushEnter() const;
114 void setPushEnter(QQuickTransition *enter);
115
116 QQuickTransition *pushExit() const;
117 void setPushExit(QQuickTransition *exit);
118
119 QQuickTransition *replaceEnter() const;
120 void setReplaceEnter(QQuickTransition *enter);
121
122 QQuickTransition *replaceExit() const;
123 void setReplaceExit(QQuickTransition *exit);
124#endif
125
128 ForceLoad
129 };
130 Q_ENUM(LoadBehavior)
131
133 Q_INVOKABLE QQuickItem *find(const QJSValue &callback, QQuickStackView::LoadBehavior behavior = DontLoad);
134
136 Transition = -1, // ### Deprecated in Qt 6; remove in Qt 7.
137 Immediate = 0,
138 PushTransition = 1,
139 ReplaceTransition = 2,
140 PopTransition = 3,
141 };
143
146 Q_INVOKABLE void replace(QQmlV4FunctionPtr args);
147
149 Operation operation = Immediate);
151 Operation operation = Immediate);
153 Operation operation = Immediate);
154 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *pushItem(const QUrl &url, const QVariantMap &properties = {},
155 Operation operation = Immediate);
156
157 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *popToItem(QQuickItem *item, Operation operation = PopTransition);
158 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *popToIndex(int index, Operation operation = PopTransition);
159 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *popCurrentItem(Operation operation = PopTransition);
160
162 Operation operation = ReplaceTransition);
163 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *replaceCurrentItem(QQuickItem *item,
164 const QVariantMap &properties = {}, Operation operation = ReplaceTransition);
166 const QVariantMap &properties = {}, Operation operation = ReplaceTransition);
167 Q_REVISION(6, 7) Q_INVOKABLE QQuickItem *replaceCurrentItem(const QUrl &url,
168 const QVariantMap &properties = {}, Operation operation = ReplaceTransition);
169
170 // 2.3 (Qt 5.10)
171 bool isEmpty() const;
172
173public Q_SLOTS:
174 void clear(Operation operation = Immediate);
175
180#if QT_CONFIG(quick_viewtransitions)
181 void popEnterChanged();
182 void popExitChanged();
183 void pushEnterChanged();
184 void pushExitChanged();
185 void replaceEnterChanged();
186 void replaceExitChanged();
187#endif
188 // 2.3 (Qt 5.10)
189 Q_REVISION(2, 3) void emptyChanged();
190
191protected:
192 void componentComplete() override;
193 void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
194 bool childMouseEventFilter(QQuickItem *, QEvent *) override;
195
196#if QT_CONFIG(quicktemplates2_multitouch)
197 void touchEvent(QTouchEvent *event) override;
198#endif
199
200#if QT_CONFIG(accessibility)
201 QAccessible::Role accessibleRole() const override;
202#endif
203
204private:
205 Q_DISABLE_COPY(QQuickStackView)
206 Q_DECLARE_PRIVATE(QQuickStackView)
207};
208
209class Q_QUICKTEMPLATES2_EXPORT QQuickStackViewAttached : public QObject
210{
212 Q_PROPERTY(int index READ index NOTIFY indexChanged FINAL)
213 Q_PROPERTY(QQuickStackView *view READ view NOTIFY viewChanged FINAL)
214 Q_PROPERTY(QQuickStackView::Status status READ status NOTIFY statusChanged FINAL)
215 // 2.2 (Qt 5.9)
216 Q_PROPERTY(bool visible READ isVisible WRITE setVisible RESET resetVisible NOTIFY visibleChanged FINAL) // REVISION(2, 2)
217
218public:
219 explicit QQuickStackViewAttached(QObject *parent = nullptr);
221
222 int index() const;
223 QQuickStackView *view() const;
224 QQuickStackView::Status status() const;
225
226 // 2.2 (Qt 5.9)
227 bool isVisible() const;
228 void setVisible(bool visible);
229 void resetVisible();
230
232 void indexChanged();
233 void viewChanged();
235 // 2.1 (Qt 5.8)
236 /*Q_REVISION(2, 1)*/ void activated();
237 /*Q_REVISION(2, 1)*/ void activating();
238 /*Q_REVISION(2, 1)*/ void deactivated();
239 /*Q_REVISION(2, 1)*/ void deactivating();
240 /*Q_REVISION(2, 1)*/ void removed();
241 // 2.2 (Qt 5.9)
242 /*Q_REVISION(2, 2)*/ void visibleChanged();
243
244private:
245 Q_DISABLE_COPY(QQuickStackViewAttached)
246 Q_DECLARE_PRIVATE(QQuickStackViewAttached)
247};
248
250
251#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:75
\inmodule QtCore
Definition qobject.h:103
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:63
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:484
The QTouchEvent class contains parameters that describe a touch event.
Definition qevent.h:917
\inmodule QtCore
Definition qurl.h:94
void statusChanged(QQmlComponent::Status status)
[1]
Definition qlogging.cpp:11
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_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
#define explicit
QUrl url("example.com")
[constructor-url-reference]
QGraphicsItem * item
edit isVisible()
stack push(command1)
QQuickView * view
[0]
QJSValueList args