Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qqml.cpp File Reference

(4381eaf567337c2b2892adeec0d2fef878c1eed3)

#include "qqml.h"
#include <private/qjsvalue_p.h>
#include <private/qqmlbuiltinfunctions_p.h>
#include <private/qqmlcomponent_p.h>
#include <private/qqmlengine_p.h>
#include <private/qqmlfinalizer_p.h>
#include <private/qqmlloggingcategorybase_p.h>
#include <private/qqmlmetatype_p.h>
#include <private/qqmlmetatypedata_p.h>
#include <private/qqmltype_p_p.h>
#include <private/qqmltypemodule_p.h>
#include <private/qqmltypewrapper_p.h>
#include <private/qqmlvaluetypewrapper_p.h>
#include <private/qv4alloca_p.h>
#include <private/qv4dateobject_p.h>
#include <private/qv4errorobject_p.h>
#include <private/qv4identifiertable_p.h>
#include <private/qv4lookup_p.h>
#include <private/qv4qobjectwrapper_p.h>
#include <QtQml/qqmlprivate.h>
#include <QtCore/qmutex.h>
#include <QtCore/qsequentialiterable.h>
Include dependency graph for qqml.cpp:

Go to the source code of this file.

Classes

struct  AliasRegistrar
struct  QQmlPrivate::LookupNotInitialized
struct  QQmlPrivate::ObjectPropertyQmlData
struct  QQmlPrivate::FallbackPropertyQmlData

Namespaces

namespace  QQmlPrivate

Macros

#define ADD_CASE(Type, id, T)

Typedefs

using ElementNames = QVarLengthArray<const char *, 8>
using QQmlPrivate::QmlContextPropertyGetter = QV4::ReturnedValue (*)(QV4::Lookup *lookup, QV4::ExecutionEngine *engine, QV4::Value *thisObject)

Enumerations

enum class  QQmlPrivate::PropertyResult {
  QQmlPrivate::OK , QQmlPrivate::NeedsInit , QQmlPrivate::Deleted , QQmlPrivate::OK ,
  QQmlPrivate::NeedsInit , QQmlPrivate::Deleted
}
enum class  QQmlPrivate::ObjectLookupResult {
  QQmlPrivate::Failure , QQmlPrivate::Object , QQmlPrivate::Fallback , QQmlPrivate::Failure ,
  QQmlPrivate::Object , QQmlPrivate::Fallback
}
enum class  QQmlPrivate::LookupType { QQmlPrivate::Concrete , QQmlPrivate::Variant , QQmlPrivate::Concrete , QQmlPrivate::Variant }
enum  QQmlPrivate::MatchScore { QQmlPrivate::NoMatch , QQmlPrivate::ExactMatch , QQmlPrivate::NoMatch , QQmlPrivate::ExactMatch }
enum class  QQmlPrivate::PropertyResult {
  QQmlPrivate::OK , QQmlPrivate::NeedsInit , QQmlPrivate::Deleted , QQmlPrivate::OK ,
  QQmlPrivate::NeedsInit , QQmlPrivate::Deleted
}
enum class  QQmlPrivate::ObjectLookupResult {
  QQmlPrivate::Failure , QQmlPrivate::Object , QQmlPrivate::Fallback , QQmlPrivate::Failure ,
  QQmlPrivate::Object , QQmlPrivate::Fallback
}
enum class  QQmlPrivate::LookupType { QQmlPrivate::Concrete , QQmlPrivate::Variant , QQmlPrivate::Concrete , QQmlPrivate::Variant }
enum  QQmlPrivate::MatchScore { QQmlPrivate::NoMatch , QQmlPrivate::ExactMatch , QQmlPrivate::NoMatch , QQmlPrivate::ExactMatch }

Functions

QT_BEGIN_NAMESPACE void qmlExecuteDeferred (QObject *object)
 \inmodule QtQml \title Functions to register C++ types to QML
QQmlContextqmlContext (const QObject *obj)
QQmlEngineqmlEngine (const QObject *obj)
static QObjectresolveAttachedProperties (QQmlAttachedPropertiesFunc pf, QQmlData *data, QObject *object, bool create)
QQmlAttachedPropertiesFunc qmlAttachedPropertiesFunction (QObject *object, const QMetaObject *attachedMetaObject)
QObjectqmlAttachedPropertiesObject (QObject *object, QQmlAttachedPropertiesFunc func, bool createIfMissing)
static QQmlDirParser::Import resolveImport (const QString &uri, int importMajor, int importMinor)
static QTypeRevision resolveModuleVersion (int moduleMajor)
static bool checkSingletonInstance (QQmlEngine *engine, QObject *instance)
static QVector< QTypeRevisionavailableRevisions (const QMetaObject *metaObject)
template<typename Registration>
void assignVersions (Registration *registration, QTypeRevision revision, QTypeRevision defaultVersion)
static QVector< QTypeRevisionprepareRevisions (const QMetaObject *metaObject, QTypeRevision added)
static void uniqueRevisions (QVector< QTypeRevision > *revisions, QTypeRevision defaultVersion, QTypeRevision added)
static QQmlType::SingletonInstanceInfo::ConstPtr singletonInstanceInfo (const QQmlPrivate::RegisterSingletonType &type)
static QQmlType::SingletonInstanceInfo::ConstPtr singletonInstanceInfo (const QQmlPrivate::RegisterCompositeSingletonType &type)
static int finalizeType (const QQmlType &dtype)
static ElementNames classElementNames (const QMetaObject *metaObject)
static void doRegisterTypeAndRevisions (const QQmlPrivate::RegisterTypeAndRevisions &type, const ElementNames &elementNames)
static void doRegisterSingletonAndRevisions (const QQmlPrivate::RegisterSingletonTypeAndRevisions &type, const ElementNames &elementNames)
template<>
void QQmlPrivate::qmlRegisterTypeAndRevisions< QQmlTypeNotAvailable, void > (const char *uri, int versionMajor, const QMetaObject *classInfoMetaObject, QVector< int > *qmlTypeIds, const QMetaObject *extension, bool)
static QQmlPropertyCaptureQQmlPrivate::propertyCapture (const AOTCompiledContext *aotContext)
static bool QQmlPrivate::markPointer (const QVariant &element, QV4::MarkStack *markStack)
static void QQmlPrivate::iterateVariant (const QVariant &element, std::vector< QVariant > *elements)
static void QQmlPrivate::captureFallbackProperty (QObject *object, int coreIndex, int notifyIndex, bool isConstant, const AOTCompiledContext *aotContext)
static void QQmlPrivate::captureObjectProperty (QObject *object, const QQmlPropertyCache *propertyCache, const QQmlPropertyData *property, const AOTCompiledContext *aotContext)
static bool QQmlPrivate::inherits (const QQmlPropertyCache *descendent, const QQmlPropertyCache *ancestor)
template<bool StrictType>
ObjectPropertyQmlData QQmlPrivate::findObjectPropertyQmlData (QV4::Lookup *lookup, QObject *object)
template<bool StrictType = false>
PropertyResult QQmlPrivate::loadObjectProperty (QV4::Lookup *lookup, QObject *object, void *target, const AOTCompiledContext *aotContext)
template<bool StrictType = false>
PropertyResult QQmlPrivate::writeBackObjectProperty (QV4::Lookup *lookup, QObject *object, void *source)
static FallbackPropertyQmlData QQmlPrivate::findFallbackPropertyQmlData (QV4::Lookup *lookup, QObject *object)
static PropertyResult QQmlPrivate::loadFallbackProperty (QV4::Lookup *lookup, QObject *object, void *target, const AOTCompiledContext *aotContext)
static PropertyResult QQmlPrivate::writeBackFallbackProperty (QV4::Lookup *lookup, QObject *object, void *source)
PropertyResult QQmlPrivate::loadObjectAsVariant (QV4::Lookup *lookup, QObject *object, void *target, const AOTCompiledContext *aotContext)
PropertyResult QQmlPrivate::writeBackObjectAsVariant (QV4::Lookup *lookup, QObject *object, void *source)
PropertyResult QQmlPrivate::loadFallbackAsVariant (QV4::Lookup *lookup, QObject *object, void *target, const AOTCompiledContext *aotContext)
PropertyResult QQmlPrivate::writeBackFallbackAsVariant (QV4::Lookup *lookup, QObject *object, void *source)
template<bool StrictType, typename Op>
static PropertyResult QQmlPrivate::changeObjectProperty (QV4::Lookup *lookup, QObject *object, Op op)
template<bool StrictType = false>
static PropertyResult QQmlPrivate::resetObjectProperty (QV4::Lookup *l, QObject *object, QV4::ExecutionEngine *v4)
template<bool StrictType = false>
static PropertyResult QQmlPrivate::storeObjectProperty (QV4::Lookup *l, QObject *object, void *value)
template<typename Op>
static PropertyResult QQmlPrivate::changeFallbackProperty (QV4::Lookup *lookup, QObject *object, Op op)
static PropertyResult QQmlPrivate::storeFallbackProperty (QV4::Lookup *l, QObject *object, void *value)
static PropertyResult QQmlPrivate::resetFallbackProperty (QV4::Lookup *l, QObject *object, const QMetaProperty *property, QV4::ExecutionEngine *v4)
static bool QQmlPrivate::isEnumUnderlyingType (QMetaType enumType, QMetaType numberType)
static bool QQmlPrivate::canHoldVoid (QMetaType type)
static bool QQmlPrivate::isTypeCompatible (QMetaType source, QMetaType target)
static PropertyResult QQmlPrivate::storeObjectAsVariant (QV4::ExecutionEngine *v4, QV4::Lookup *lookup, QObject *object, void *value)
static PropertyResult QQmlPrivate::storeFallbackAsVariant (QV4::ExecutionEngine *v4, QV4::Lookup *lookup, QObject *object, void *value)
static ObjectLookupResult QQmlPrivate::initObjectLookup (const AOTCompiledContext *aotContext, QV4::Lookup *lookup, QObject *object)
template<QV4::Lookup::Call ObjectCall, QV4::Lookup::Call FallbackCall, LookupType Type>
void QQmlPrivate::initObjectLookup (const AOTCompiledContext *aotContext, uint index, QObject *object)
static void QQmlPrivate::initValueLookup (QV4::Lookup *lookup, QV4::ExecutableCompilationUnit *compilationUnit, const QMetaObject *metaObject)
static bool QQmlPrivate::isUndefined (const void *value, QMetaType type)
static QMetaType QQmlPrivate::jsTypedFunctionArgument (const QQmlType &type, const QV4::CompiledData::ParameterType &parameter)
static bool QQmlPrivate::callQObjectMethodWithTypes (QV4::ExecutionEngine *engine, QV4::Lookup *lookup, QObject *thisObject, void **args, QMetaType *types, int argc)
static bool QQmlPrivate::callQObjectMethodAsVariant (QV4::ExecutionEngine *engine, QV4::Lookup *lookup, QObject *thisObject, void **args, int argc)
static bool QQmlPrivate::callQObjectMethod (QV4::ExecutionEngine *engine, QV4::Lookup *lookup, QObject *thisObject, void **args, int argc)
static bool QQmlPrivate::callArrowFunction (QV4::ExecutionEngine *engine, QV4::ArrowFunction *function, QObject *thisObject, void **args, int argc)
static MatchScore QQmlPrivate::resolveQObjectMethodOverload (QV4::QObjectMethod *method, QV4::Lookup *lookup, int relativeMethodIndex)
static bool QQmlPrivate::tryEnsureMethodsCache (QV4::QObjectMethod *method, QObject *object)
template<QV4::Lookup::Call call>
static void QQmlPrivate::initTypeWrapperLookup (const AOTCompiledContext *context, QV4::Lookup *lookup, uint importNamespace)
static PropertyResult QQmlPrivate::storeValueProperty (QV4::Lookup *lookup, const QMetaObject *metaObject, void *target, void *value)
static PropertyResult QQmlPrivate::resetValueProperty (QV4::Lookup *lookup, const QMetaObject *metaObject, void *target, QV4::ExecutionEngine *v4)
static PropertyResult QQmlPrivate::storeValueAsVariant (QV4::ExecutionEngine *v4, QV4::Lookup *lookup, const QMetaObject *metaObject, void *target, void *value)
template<LookupType Type>
void QQmlPrivate::initValueLookup (const AOTCompiledContext *aotContext, uint index, const QMetaObject *metaObject)
template<>
void QQmlPrivate::qmlRegisterTypeAndRevisions< QQmlTypeNotAvailable, void > (const char *uri, int versionMajor, const QMetaObject *classInfoMetaObject, QVector< int > *qmlTypeIds, const QMetaObject *extension, bool)

Macro Definition Documentation

◆ ADD_CASE

#define ADD_CASE ( Type,
id,
T )
Value:
Type
\macro Q_DECLARE_OPAQUE_POINTER(PointerType)
Definition qmetatype.h:343

Typedef Documentation

◆ ElementNames

typedef QVarLengthArray< const char *, 8 > ElementNames = QVarLengthArray<const char *, 8>

Definition at line 688 of file qqml.cpp.

Function Documentation

◆ assignVersions()

template<typename Registration>
void assignVersions ( Registration * registration,
QTypeRevision revision,
QTypeRevision defaultVersion )

Definition at line 611 of file qqml.cpp.

◆ availableRevisions()

QVector< QTypeRevision > availableRevisions ( const QMetaObject * metaObject)
static

Definition at line 581 of file qqml.cpp.

◆ checkSingletonInstance()

bool checkSingletonInstance ( QQmlEngine * engine,
QObject * instance )
static

Definition at line 521 of file qqml.cpp.

◆ classElementNames()

ElementNames classElementNames ( const QMetaObject * metaObject)
static

Definition at line 689 of file qqml.cpp.

◆ doRegisterSingletonAndRevisions()

void doRegisterSingletonAndRevisions ( const QQmlPrivate::RegisterSingletonTypeAndRevisions & type,
const ElementNames & elementNames )
static

Definition at line 866 of file qqml.cpp.

◆ doRegisterTypeAndRevisions()

void doRegisterTypeAndRevisions ( const QQmlPrivate::RegisterTypeAndRevisions & type,
const ElementNames & elementNames )
static

Definition at line 753 of file qqml.cpp.

◆ finalizeType()

int finalizeType ( const QQmlType & dtype)
static

Definition at line 679 of file qqml.cpp.

◆ prepareRevisions()

QVector< QTypeRevision > prepareRevisions ( const QMetaObject * metaObject,
QTypeRevision added )
static

Definition at line 622 of file qqml.cpp.

◆ qmlAttachedPropertiesFunction()

QQmlAttachedPropertiesFunc qmlAttachedPropertiesFunction ( QObject * object,
const QMetaObject * attachedMetaObject )

Definition at line 116 of file qqml.cpp.

◆ qmlAttachedPropertiesObject()

QObject * qmlAttachedPropertiesObject ( QObject * object,
QQmlAttachedPropertiesFunc func,
bool createIfMissing )

Definition at line 124 of file qqml.cpp.

◆ qmlContext()

QQmlContext * qmlContext ( const QObject * obj)
related

Definition at line 85 of file qqml.cpp.

◆ qmlEngine()

QQmlEngine * qmlEngine ( const QObject * obj)
related

Definition at line 90 of file qqml.cpp.

◆ qmlExecuteDeferred()

QT_BEGIN_NAMESPACE void qmlExecuteDeferred ( QObject * object)

\inmodule QtQml \title Functions to register C++ types to QML

This header provides a collection of functions that allow the registration of C++ types to QML.

See also
{Overview - QML and C++ Integration}, qqmlintegration.h, qmltyperegistrar

This method completes the setup of all deferred properties of object. Deferred properties are declared with Q_CLASSINFO("DeferredPropertyNames", "comma,separated,property,list");

Any binding to a deferred property is not executed when the object is instantiated, but only when completion is requested with qmlExecuteDeferred, or by manually calling QQmlComponentPrivate::beginDeferred and completeDeferred.

See also
QV4::CompiledData::Binding::IsDeferredBinding, QV4::CompiledData::Object::HasDeferredBindings, QQmlData::deferData, QQmlObjectCreator::setupBindings

Definition at line 59 of file qqml.cpp.

◆ resolveAttachedProperties()

QObject * resolveAttachedProperties ( QQmlAttachedPropertiesFunc pf,
QQmlData * data,
QObject * object,
bool create )
static

Definition at line 98 of file qqml.cpp.

◆ resolveImport()

QQmlDirParser::Import resolveImport ( const QString & uri,
int importMajor,
int importMinor )
static

Definition at line 368 of file qqml.cpp.

◆ resolveModuleVersion()

QTypeRevision resolveModuleVersion ( int moduleMajor)
static

Definition at line 379 of file qqml.cpp.

◆ singletonInstanceInfo() [1/2]

Definition at line 669 of file qqml.cpp.

◆ singletonInstanceInfo() [2/2]

Definition at line 658 of file qqml.cpp.

◆ uniqueRevisions()

void uniqueRevisions ( QVector< QTypeRevision > * revisions,
QTypeRevision defaultVersion,
QTypeRevision added )
static

Definition at line 629 of file qqml.cpp.