3#ifndef QQMLOBJECTCREATOR_P_H
4#define QQMLOBJECTCREATOR_P_H
17#include <private/qqmlimport_p.h>
18#include <private/qqmltypenamecache_p.h>
19#include <private/qv4compileddata_p.h>
20#include <private/qfinitestack_p.h>
21#include <private/qrecursionwatcher_p.h>
22#include <private/qqmlprofiler_p.h>
23#include <private/qv4qmlcontext_p.h>
24#include <private/qqmlguardedcontextdata_p.h>
25#include <private/qqmlfinalizer_p.h>
26#include <private/qqmlvmemetaobject_p.h>
75 return a.object ==
b.object &&
a.data ==
b.data;
121 void populateDeferredBinding(
const QQmlProperty &qmlProperty,
int deferredIndex,
123 void finalizePopulateDeferred();
135 return parentContext.contextData();
150 auto it = std::remove_if(pendingBindings.
begin(), pendingBindings.
end(),
152 return deferred.properyIndex == propertyIndex && deferred.target == target;
154 pendingBindings.
erase(
it, pendingBindings.
end());
161 bool isContextObject);
172 void populateDeferred(
QObject *instance,
int deferredIndex);
173 void populateDeferred(
QObject *instance,
int deferredIndex,
179 ApplyImmediate = 0x1,
181 ApplyAll = ApplyImmediate | ApplyDeferred,
185 void setupBindings(BindingSetupFlags
mode = BindingMode::ApplyImmediate);
188 void setupFunctions();
190 QString stringAt(
int idx)
const {
return compilationUnit->stringAt(idx); }
198 return compilationUnit->resolvedType(
id);
204 CreatingObjectsPhase2,
218 bool topLevelCreator;
219 bool isContextObject;
227 int _compiledObjectIndex;
238 std::vector<PendingAliasBinding> pendingAliasBindings;
240 template<
typename Functor>
241 void doPopulateDeferred(
QObject *instance,
int deferredIndex,
Functor f)
244 QObject *bindingTarget = instance;
249 QObject *scopeObject = instance;
254 valueScope.alloc(compilationUnit->totalObjectCount()));
264 int objectIndex = deferredIndex;
265 std::swap(_compiledObjectIndex, objectIndex);
279 std::swap(_compiledObjectIndex, objectIndex);
iterator erase(const_iterator begin, const_iterator end)
The QQmlComponent class encapsulates a QML component definition.
QQmlPropertyCache::ConstPtr propertyCache
static QQmlData * get(QObjectPrivate *priv, bool create)
The QQmlEngine class provides an environment for instantiating QML components.
The QQmlListProperty class allows applications to expose list-like properties of QObject-derived clas...
QQmlComponentAttached ** componentAttachment()
QQmlObjectCreator(QQmlRefPointer< QQmlContextData > parentContext, const QQmlRefPointer< QV4::ExecutableCompilationUnit > &compilationUnit, const QQmlRefPointer< QQmlContextData > &creationContext, QQmlIncubatorPrivate *incubator=nullptr)
bool componentHadTopLevelRequiredProperties() const
QQmlRefPointer< QQmlContextData > parentContextData() const
void removePendingBinding(QObject *target, int propertyIndex)
RequiredProperties * requiredProperties()
QList< QQmlError > errors
QFiniteStack< QQmlGuard< QObject > > & allCreatedObjects()
QQmlRefPointer< QQmlContextData > rootContext() const
The QQmlProperty class abstracts accessing properties on objects created from QML.
void swap(QQmlRefPointer &other) noexcept
\macro QT_RESTRICTED_CAST_FROM_ASCII
QCache< int, Employee > cache
[0]
QSet< QString >::iterator it
Combined button and popup list for selecting options.
#define Q_DECLARE_TR_FUNCTIONS(context)
#define Q_DECLARE_FLAGS(Flags, Enum)
constexpr QtPrivate::QHashMultiReturnType< T... > qHashMulti(size_t seed, const T &... args) noexcept(std::conjunction_v< QtPrivate::QNothrowHashable< T >... >)
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
[7]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
QQmlContext * qmlContext(const QObject *obj)
static Q_CONSTINIT QBasicAtomicInteger< unsigned > seed
constexpr void qt_ptr_swap(T *&lhs, T *&rhs) noexcept
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
QItemEditorCreatorBase * creator
QUntypedPropertyBinding binding
QList< DeferredQPropertyBinding > allQPropertyBindings
QFiniteStack< QQmlAbstractBinding::Ptr > allCreatedBindings
QQmlRefPointer< QQmlContextData > rootContext
QV4::Value * allJavaScriptObjects
QQmlRefPointer< QQmlContextData > creationContext
QQmlComponentAttached * componentAttached
QFiniteStack< QQmlGuard< QObject > > allCreatedObjects
RequiredProperties requiredProperties
QFiniteStack< QQmlParserStatus * > allParserStatusCallbacks
QRecursionNode recursionNode
QList< QQmlFinalizerHook * > finalizeHooks
bool hadTopLevelRequiredProperties
ExecutionContext * rootContext() const
static Heap::QmlContext * create(QV4::ExecutionContext *parent, QQmlRefPointer< QQmlContextData > context, QObject *scopeObject)
QVector< AliasToRequiredInfo > aliasesToRequired
QV4::CompiledData::Location location
friend bool operator==(const RequiredPropertyKey &a, const RequiredPropertyKey &b)
friend size_t qHash(const RequiredPropertyKey &key, size_t seed=0)
RequiredPropertyKey()=default
RequiredPropertyKey(const QObject *object, const QQmlPropertyData *data)
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent