18#include <private/qrecursionwatcher_p.h>
20#include <QtCore/QStack>
21#include <QtCore/QString>
22#include <QtCore/qelapsedtimer.h>
23#include <QtCore/qdeadlinetimer.h>
24#include <QtCore/qcoreapplication.h>
25#include <QtCore/qtypeinfo.h>
27#include <private/qqmlengine_p.h>
44 enum Mode { None, Time, Flag };
46 QDeadlineTimer deadline;
47 std::atomic<
bool> *runWhile =
nullptr;
53 static void enableComponentComplete();
54 static void disableComponentComplete();
55 static bool componentCompleteEnabled();
58 static bool s_enableComponentComplete;
74 void guard(QQmlObjectCreator *);
81 QQmlGuard<QObject> *m_objects;
83 QQmlGuardedContextData *m_contexts;
107 return deadline.hasExpired();
109 return !runWhile->load(std::memory_order_acquire) || deadline.hasExpired();
111 Q_UNREACHABLE_RETURN(
false);
void setInitialState(QObject *o) override
Called after the object is first created, but before complex property bindings are evaluated and,...
void statusChanged(Status s) override
Called when the status of the incubator changes.
QQmlComponentIncubator(QV4::Heap::QmlIncubatorObject *inc, IncubationMode mode)
QV4::PersistentValue incubatorObject
The QQmlComponent class encapsulates a QML component definition.
The QQmlError class encapsulates a QML error.
Status
Specifies the status of the QQmlIncubator.
QQmlInstantiationInterrupt(std::atomic< bool > *runWhile, QDeadlineTimer deadline=QDeadlineTimer::Forever)
bool shouldInterrupt() const
QQmlInstantiationInterrupt()
QQmlInstantiationInterrupt(QDeadlineTimer deadline)
void guard(QQmlObjectCreator *)
DECLARE_HEAP_OBJECT(QmlContext, ExecutionContext)
Q_STATIC_LOGGING_CATEGORY(lcAccessibilityCore, "qt.accessibility.core")
Q_DECLARE_TYPEINFO(QByteArrayView, Q_PRIMITIVE_TYPE)
static void removePendingQPropertyBinding(QV4::Value *object, const QString &propertyName, const QQmlObjectCreator *creator)
static void QQmlComponent_setQmlParent(QObject *me, QObject *parent)
DEFINE_OBJECT_VTABLE(QV4::QmlIncubatorObject)
V4_DEFINE_EXTENSION(QQmlComponentExtension, componentExtension)
static QQmlParserStatus * parserStatusCast(const QQmlType &type, QObject *rv)
QDebug Q_QML_EXPORT operator<<(QDebug debug, const QQmlError &error)
static ReturnedValue method_set_statusChanged(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_status(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_object(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
void statusChanged(QQmlIncubator::Status)
void setInitialState(QObject *, RequiredProperties *requiredProperties)
static ReturnedValue method_forceCompletion(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)