![]() |
Qt 6.x
The Qt SDK
|
#include <qqmlincubator_p.h>
Public Types | |
enum | Progress : char { Execute , Completing , Completed } |
enum | HadTopLevelRequired : bool { No = 0 , Yes = 1 } |
typedef QQmlEnginePrivate::Incubator | QIPBase |
Public Member Functions | |
QQmlIncubatorPrivate (QQmlIncubator *q, QQmlIncubator::IncubationMode m) | |
~QQmlIncubatorPrivate () | |
QQmlIncubator::Status | calculateStatus () const |
void | changeStatus (QQmlIncubator::Status) |
void | clear () |
void | forceCompletion (QQmlInstantiationInterrupt &i) |
void | incubate (QQmlInstantiationInterrupt &i) |
void | incubateCppBasedComponent (QQmlComponent *component, QQmlContext *context) |
RequiredProperties * | requiredProperties () |
Return a pointer to a list of properties which are required but haven't been set yet. | |
bool | hadTopLevelRequiredProperties () const |
![]() | |
QSharedData () noexcept | |
Constructs a QSharedData object with a reference count of 0. | |
QSharedData (const QSharedData &) noexcept | |
Constructs a QSharedData object with reference count 0. | |
QSharedData & | operator= (const QSharedData &)=delete |
~QSharedData ()=default | |
Static Public Member Functions | |
static QQmlIncubatorPrivate * | get (QQmlIncubator *incubator) |
Definition at line 31 of file qqmlincubator_p.h.
Definition at line 70 of file qqmlincubator_p.h.
enum QQmlIncubatorPrivate::HadTopLevelRequired : bool |
Enumerator | |
---|---|
No | |
Yes |
Definition at line 55 of file qqmlincubator_p.h.
enum QQmlIncubatorPrivate::Progress : char |
Enumerator | |
---|---|
Execute | |
Completing | |
Completed |
Definition at line 48 of file qqmlincubator_p.h.
QQmlIncubatorPrivate::QQmlIncubatorPrivate | ( | QQmlIncubator * | q, |
QQmlIncubator::IncubationMode | m | ||
) |
Definition at line 93 of file qqmlincubator.cpp.
QQmlIncubatorPrivate::~QQmlIncubatorPrivate | ( | ) |
Definition at line 99 of file qqmlincubator.cpp.
References clear().
QQmlIncubator::Status QQmlIncubatorPrivate::calculateStatus | ( | ) | const |
Definition at line 768 of file qqmlincubator.cpp.
References compilationUnit, Completed, QQmlIncubator::Error, errors, QIntrusiveList< N, member >::isEmpty(), QList< T >::isEmpty(), QQmlIncubator::Loading, QQmlIncubator::Null, progress, QQmlIncubator::Ready, and waitingFor.
Referenced by incubate(), and incubateCppBasedComponent().
void QQmlIncubatorPrivate::changeStatus | ( | QQmlIncubator::Status | s | ) |
Definition at line 758 of file qqmlincubator.cpp.
References status.
Referenced by QQmlIncubator::clear(), incubate(), and incubateCppBasedComponent().
void QQmlIncubatorPrivate::clear | ( | ) |
Definition at line 104 of file qqmlincubator.cpp.
References QQmlObjectCreator::clear(), QQmlVMEGuard::clear(), compilationUnit, creator, enginePriv, QIntrusiveList< N, member >::first(), i, QQmlIncubationController::incubatingObjectCountChanged(), QQmlEnginePrivate::incubationController, QQmlContextData::incubator(), QQmlEnginePrivate::incubatorCount, QIntrusiveListNode::isInList(), QQmlGuardedContextData::isNull(), QQmlVMEGuard::isOK(), QQmlEnginePrivate::Incubator::next, nextWaitingFor, Q_ASSERT, QIntrusiveListNode::remove(), requiredPropertiesFromComponent, QScopedPointer< T, Cleanup >::reset(), QQmlRefPointer< T >::reset(), rootContext, QQmlGuardedContextData::setContextData(), QQmlContextData::setIncubator(), vmeGuard, waitingFor, and waitingOnMe.
Referenced by ~QQmlIncubatorPrivate(), QQmlIncubator::clear(), and incubate().
void QQmlIncubatorPrivate::forceCompletion | ( | QQmlInstantiationInterrupt & | i | ) |
Definition at line 228 of file qqmlincubator.cpp.
References QIntrusiveList< N, member >::first(), forceCompletion(), i, incubate(), QIntrusiveList< N, member >::isEmpty(), QQmlIncubator::Loading, status, and waitingFor.
Referenced by QQmlIncubator::forceCompletion(), and forceCompletion().
|
inlinestatic |
Definition at line 37 of file qqmlincubator_p.h.
Referenced by incubateCppBasedComponent(), QQmlComponentPrivate::incubateObject(), QQDMIncubationTask::initializeRequiredProperties(), QV4::QmlIncubatorObject::setInitialState(), QQuickLoaderPrivate::setInitialState(), QQmlComponentIncubator::setInitialState(), QQmlTableInstanceModelIncubationTask::setInitialState(), QQuickStackIncubator::setInitialState(), and QQmlTableInstanceModel::setRequiredProperty().
bool QQmlIncubatorPrivate::hadTopLevelRequiredProperties | ( | ) | const |
Definition at line 714 of file qqmlincubator.cpp.
References QQmlObjectCreator::componentHadTopLevelRequiredProperties(), creator, requiredPropertiesFromComponent, QTaggedPointer< T, Tag >::tag(), and Yes.
void QQmlIncubatorPrivate::incubate | ( | QQmlInstantiationInterrupt & | i | ) |
Definition at line 239 of file qqmlincubator.cpp.
References arg, calculateStatus(), QMap< Key, T >::cbegin(), QMap< Key, T >::cend(), changeStatus(), clear(), QQmlVMEGuard::clear(), compilationUnit, Completed, Completing, component(), QQmlObjectCreator::create(), creator, QScopedPointer< T, Cleanup >::data(), QExplicitlySharedDataPointer< T >::data(), QQmlEnginePrivate::dereferenceScarceResources(), QHash< Key, T >::empty(), QV4::ExecutableCompilationUnit::engine, enginePriv, error, QQmlEnginePrivate::erroredBindings, errors, QQmlObjectCreator::errors, Execute, QQmlData::explicitIndestructibleSet, QQmlObjectCreator::finalize(), QQmlData::get(), QQmlEnginePrivate::get(), QQmlVMEGuard::guard(), QV4::ExecutionEngineCallDepthRecorder< Frames >::hasOverflow(), i, QQmlData::indestructible, initialProperties, QQmlEnginePrivate::inProgressCreations, QIntrusiveList< N, member >::isEmpty(), QList< T >::isEmpty(), QScopedPointer< T, Cleanup >::isNull(), QQmlVMEGuard::isOK(), QQmlProperty::isValid(), it, progress, QList< T >::push_back(), Q_ASSERT, QtCriticalMsg, QtInfoMsg, QQmlEnginePrivate::referenceScarceResources(), QQmlDelayedError::removeError(), QQmlComponentPrivate::removePropertyFromRequired(), requiredProperties(), QQmlObjectCreator::requiredProperties(), rootContext, QQmlObjectCreator::rootContext(), QQmlData::rootObjectInCreation, subComponentToCreate, QQmlComponentPrivate::unsetRequiredPropertyToQQmlError(), QV4::ExecutableCompilationUnit::url(), vmeGuard, waitingFor, waitingOnMe, QQmlEnginePrivate::warning(), watcher, and QQmlProperty::write().
Referenced by forceCompletion().
void QQmlIncubatorPrivate::incubateCppBasedComponent | ( | QQmlComponent * | component, |
QQmlContext * | context | ||
) |
This is used to mimic the behavior of incubate when the Component we want to incubate refers to a creatable QQmlType (i.e., it is the result of loadFromModule).
Definition at line 385 of file qqmlincubator.cpp.
References calculateStatus(), changeStatus(), Completed, component(), context, errors, QQmlComponentPrivate::get(), get(), initialProperties, QHash< Key, T >::isEmpty(), progress, Q_ASSERT, requiredPropertiesFromComponent, QTaggedPointer< T, Tag >::setTag(), QQmlComponentPrivate::unsetRequiredPropertyToQQmlError(), and Yes.
RequiredProperties * QQmlIncubatorPrivate::requiredProperties | ( | ) |
Return a pointer to a list of properties which are required but haven't been set yet.
This list can be modified, so that subclasses which implement special logic setInitialProperties can mark properties set there as no longer required.
Definition at line 706 of file qqmlincubator.cpp.
References creator, QTaggedPointer< T, Tag >::data(), QQmlObjectCreator::requiredProperties(), and requiredPropertiesFromComponent.
Referenced by incubate().
QQmlRefPointer<QV4::ExecutableCompilationUnit> QQmlIncubatorPrivate::compilationUnit |
Definition at line 65 of file qqmlincubator_p.h.
Referenced by calculateStatus(), QQmlIncubator::clear(), clear(), incubate(), and QQmlComponentPrivate::incubateObject().
QScopedPointer<QQmlObjectCreator> QQmlIncubatorPrivate::creator |
Definition at line 66 of file qqmlincubator_p.h.
Referenced by clear(), hadTopLevelRequiredProperties(), incubate(), QQmlComponentPrivate::incubateObject(), and requiredProperties().
QQmlEnginePrivate* QQmlIncubatorPrivate::enginePriv |
Definition at line 64 of file qqmlincubator_p.h.
Referenced by QQmlIncubator::clear(), clear(), incubate(), and QQmlComponentPrivate::incubateObject().
Definition at line 51 of file qqmlincubator_p.h.
Referenced by calculateStatus(), QQmlIncubator::clear(), QQmlIncubator::errors(), incubate(), and incubateCppBasedComponent().
QVariantMap QQmlIncubatorPrivate::initialProperties |
Definition at line 75 of file qqmlincubator_p.h.
Referenced by incubate(), incubateCppBasedComponent(), and QQmlIncubator::setInitialProperties().
bool QQmlIncubatorPrivate::isAsynchronous |
Definition at line 47 of file qqmlincubator_p.h.
QQmlIncubator::IncubationMode QQmlIncubatorPrivate::mode |
Definition at line 46 of file qqmlincubator_p.h.
Referenced by QQmlIncubator::incubationMode().
QIntrusiveListNode QQmlIncubatorPrivate::nextWaitingFor |
Definition at line 71 of file qqmlincubator_p.h.
Referenced by clear().
Progress QQmlIncubatorPrivate::progress |
Definition at line 49 of file qqmlincubator_p.h.
Referenced by calculateStatus(), QQmlIncubator::clear(), incubate(), and incubateCppBasedComponent().
QQmlIncubator* QQmlIncubatorPrivate::q |
Definition at line 40 of file qqmlincubator_p.h.
Referenced by QQmlIncubator::~QQmlIncubator().
QRecursionNode QQmlIncubatorPrivate::recursion |
Definition at line 74 of file qqmlincubator_p.h.
QTaggedPointer<RequiredProperties, HadTopLevelRequired> QQmlIncubatorPrivate::requiredPropertiesFromComponent |
Definition at line 62 of file qqmlincubator_p.h.
Referenced by clear(), hadTopLevelRequiredProperties(), incubateCppBasedComponent(), and requiredProperties().
Definition at line 54 of file qqmlincubator_p.h.
Referenced by QQmlIncubator::clear(), and QQmlIncubator::object().
QQmlGuardedContextData QQmlIncubatorPrivate::rootContext |
Definition at line 63 of file qqmlincubator_p.h.
Referenced by clear(), and incubate().
QQmlIncubator::Status QQmlIncubatorPrivate::status |
Definition at line 44 of file qqmlincubator_p.h.
Referenced by changeStatus(), forceCompletion(), and QQmlIncubator::status().
int QQmlIncubatorPrivate::subComponentToCreate |
Definition at line 39 of file qqmlincubator_p.h.
Referenced by incubate(), and QQmlComponentPrivate::incubateObject().
QQmlVMEGuard QQmlIncubatorPrivate::vmeGuard |
Definition at line 67 of file qqmlincubator_p.h.
Referenced by clear(), and incubate().
QIntrusiveList<QQmlIncubatorPrivate, &QQmlIncubatorPrivate::nextWaitingFor> QQmlIncubatorPrivate::waitingFor |
Definition at line 72 of file qqmlincubator_p.h.
Referenced by calculateStatus(), QQmlIncubator::clear(), clear(), forceCompletion(), and incubate().
QExplicitlySharedDataPointer<QQmlIncubatorPrivate> QQmlIncubatorPrivate::waitingOnMe |
Definition at line 69 of file qqmlincubator_p.h.
Referenced by QQmlIncubator::clear(), clear(), and incubate().