Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qqmlincubator_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 QQMLINCUBATOR_P_H
5#define QQMLINCUBATOR_P_H
6
7#include "qqmlincubator.h"
8
9#include <private/qintrusivelist_p.h>
10#include <private/qqmlvme_p.h>
11#include <private/qrecursionwatcher_p.h>
12#include <private/qqmlengine_p.h>
13#include <private/qqmlguardedcontextdata_p.h>
14
15//
16// W A R N I N G
17// -------------
18//
19// This file is not part of the Qt API. It exists purely as an
20// implementation detail. This header file may change from version to
21// version without notice, or even be removed.
22//
23// We mean it.
24//
25
27
29
30class QQmlIncubator;
31class Q_QML_PRIVATE_EXPORT QQmlIncubatorPrivate : public QQmlEnginePrivate::Incubator, public QSharedData
32{
33public:
36
37 inline static QQmlIncubatorPrivate *get(QQmlIncubator *incubator) { return incubator->d; }
38
41
42 QQmlIncubator::Status calculateStatus() const;
43 void changeStatus(QQmlIncubator::Status);
45
48 enum Progress : char { Execute, Completing, Completed };
50
52
53
55 enum HadTopLevelRequired : bool {No = 0, Yes = 1};
56 /* TODO: unify with Creator pointer once QTBUG-108760 is implemented
57 though we don't acutally own the properties here; if we ever end up
58 with a use case for async incubation of C++ types, we however could
59 not rely on the component to still exist during incubation, and
60 would need to store a copy of the required properties instead
61 */
68
73
76
77 void clear();
78
79 void forceCompletion(QQmlInstantiationInterrupt &i);
81 void incubateCppBasedComponent(QQmlComponent *component, QQmlContext *context);
82 RequiredProperties *requiredProperties();
83 bool hadTopLevelRequiredProperties() const;
84};
85
87
88#endif // QQMLINCUBATOR_P_H
89
The QIntrusiveList class is a template class that provides a list of objects using static storage.
Definition qlist.h:74
\inmodule QtCore
Definition qpointer.h:18
The QQmlComponent class encapsulates a QML component definition.
The QQmlContext class defines a context within a QML engine.
Definition qqmlcontext.h:25
void incubate(QQmlIncubator &, const QQmlRefPointer< QQmlContextData > &)
QQmlEnginePrivate::Incubator QIPBase
QIntrusiveListNode nextWaitingFor
static QQmlIncubatorPrivate * get(QQmlIncubator *incubator)
QQmlGuardedContextData rootContext
QExplicitlySharedDataPointer< QQmlIncubatorPrivate > waitingOnMe
QPointer< QObject > result
QScopedPointer< QQmlObjectCreator > creator
QQmlRefPointer< QV4::ExecutableCompilationUnit > compilationUnit
QQmlEnginePrivate * enginePriv
QQmlIncubator::IncubationMode mode
QList< QQmlError > errors
QTaggedPointer< RequiredProperties, HadTopLevelRequired > requiredPropertiesFromComponent
QVariantMap initialProperties
QRecursionNode recursion
QIntrusiveList< QQmlIncubatorPrivate, &QQmlIncubatorPrivate::nextWaitingFor > waitingFor
QQmlIncubator::Status status
The QQmlIncubator class allows QML objects to be created asynchronously.
IncubationMode
Specifies the mode the incubator operates in.
Status
Specifies the status of the QQmlIncubator.
\inmodule QtCore
\inmodule QtCore
Definition qshareddata.h:19
b clear()
Combined button and popup list for selecting options.
static void * context
const GLfloat * m
GLdouble GLdouble GLdouble GLdouble q
Definition qopenglext.h:259
static qreal component(const QPointF &point, unsigned int i)