4#ifndef QQMLPROPERTYDATA_P_H
5#define QQMLPROPERTYDATA_P_H
18#include <private/qobject_p.h>
19#include <QtCore/qglobal.h>
20#include <QtCore/qversionnumber.h>
43 QObjectDerivedType = 2,
57 enum { BitsLeftInFlags = 16 };
58 unsigned otherBits : BitsLeftInFlags;
71 unsigned isWritableORhasArguments : 1;
72 unsigned isResettableORisSignal : 1;
73 unsigned isAliasORisVMESignal : 1;
74 unsigned isFinalORisV4Function : 1;
80 unsigned isRequiredORisCloned : 1;
81 unsigned isConstructorORisBindable : 1;
92 inline void copyPropertyTypeFlags(
Flags from);
100 isWritableORhasArguments =
b;
105 isResettableORisSignal =
b;
110 isAliasORisVMESignal =
b;
115 isFinalORisV4Function =
b;
124 isConstructorORisBindable =
b;
129 isRequiredORisCloned =
b;
138 isWritableORhasArguments =
b;
142 isResettableORisSignal =
b;
146 isAliasORisVMESignal =
b;
151 isFinalORisV4Function =
b;
168 isRequiredORisCloned =
b;
173 isConstructorORisBindable =
b;
191 unsigned otherBits = m_flags.otherBits;
193 m_flags.otherBits = otherBits;
207 bool isFunction()
const {
return m_flags.type == Flags::FunctionType; }
208 bool isQObject()
const {
return m_flags.type == Flags::QObjectDerivedType; }
209 bool isEnum()
const {
return m_flags.type == Flags::EnumType; }
210 bool isQList()
const {
return m_flags.type == Flags::QListType; }
211 bool isVarProperty()
const {
return m_flags.type == Flags::VarPropertyType; }
212 bool isQVariant()
const {
return m_flags.type == Flags::QVariantType; }
240 Q_ASSERT(idx >= std::numeric_limits<qint16>::min());
241 Q_ASSERT(idx <= std::numeric_limits<qint16>::max());
242 m_notifyIndex =
qint16(idx);
251 Q_ASSERT(idx >= std::numeric_limits<qint16>::min());
252 Q_ASSERT(idx <= std::numeric_limits<qint16>::max());
253 m_overrideIndex =
qint16(idx);
259 Q_ASSERT(idx >= std::numeric_limits<qint16>::min());
260 Q_ASSERT(idx <= std::numeric_limits<qint16>::max());
261 m_coreIndex =
qint16(idx);
322 Q_ASSERT(off >= std::numeric_limits<qint16>::min());
323 Q_ASSERT(off <= std::numeric_limits<qint16>::max());
324 m_metaObjectOffset =
qint16(off);
354 template<QMetaObject::Call call>
358 dynamicMetaObject->metaCall(
object, call, idx, argv);
360 object->qt_metacall(call, idx, argv);
374 void *argv[] = {
value,
nullptr, &status, &
flags };
396 f.setIsVMESignal(
true);
404 f.setIsVMEFunction(
true);
416 qint16 m_notifyIndex = -1;
417 qint16 m_overrideIndex = -1;
419 qint16 m_metaObjectOffset = -1;
433#if QT_POINTER_SIZE == 4
439static_assert(std::is_trivially_copyable<QQmlPropertyData>::value);
453 , isVMEFunction(
false)
454 , isWritableORhasArguments(
false)
455 , isResettableORisSignal(
false)
456 , isAliasORisVMESignal(
false)
457 , isFinalORisV4Function(
false)
458 , isSignalHandler(
false)
459 , isOverridableSignal(
false)
460 , isRequiredORisCloned(
false)
461 , isConstructorORisBindable(
false)
462 , isOverridden(
false)
463 , hasMetaObject(
false)
465 , overrideIndexIsProperty(
false)
471 return isConst ==
other.isConst &&
473 isWritableORhasArguments ==
other.isWritableORhasArguments &&
474 isResettableORisSignal ==
other.isResettableORisSignal &&
475 isAliasORisVMESignal ==
other.isAliasORisVMESignal &&
476 isFinalORisV4Function ==
other.isFinalORisV4Function &&
479 isRequiredORisCloned ==
other.isRequiredORisCloned &&
482 isConstructorORisBindable ==
other.isConstructorORisBindable &&
489 case QObjectDerivedType:
static QObjectPrivate * get(QObject *o)
bool overrideIndexIsProperty() const
void readProperty(QObject *target, void *property) const
bool isResettable() const
bool isConstructor() const
bool isOverridden() const
int metaObjectOffset() const
bool isVarProperty() const
void readPropertyWithArgs(QObject *target, void *args[]) const
QMetaMethod metaMethod() const
QTypeRevision typeVersion() const
void setRevision(QTypeRevision revision)
bool writeProperty(QObject *target, void *value, WriteFlags flags) const
QTypeRevision revision() const
bool isVMEFunction() const
void setNotifyIndex(int idx)
StaticMetaCallFunction m_staticMetaCallFunction
StaticMetaCallFunction staticMetaCallFunction() const
bool operator==(const QQmlPropertyData &) const
void setMetaObjectOffset(int off)
void setMetaObject(const QMetaObject *metaObject)
bool hasArguments() const
QMetaType propType() const
bool isV4Function() const
void doMetacall(QObject *object, int idx, void **argv) const
void setOverrideIndexIsProperty(bool onoff)
void setCoreIndex(int idx)
void setArguments(QQmlPropertyCacheMethodArguments *args)
QObjectPrivate::StaticMetaCallFunction StaticMetaCallFunction
void setPropType(QMetaType pt)
bool hasMetaObject() const
const QMetaObject * m_metaObject
bool markAsOverrideOf(QQmlPropertyData *predecessor)
void setOverrideIndex(int idx)
QQmlPropertyCacheMethodArguments * arguments() const
QQmlPropertyCacheMethodArguments * m_arguments
static Flags defaultSlotFlags()
void setWritable(bool onoff)
bool hasStaticMetaCallFunction() const
void trySetStaticMetaCallFunction(StaticMetaCallFunction f, unsigned relativePropertyIndex)
static Flags defaultSignalFlags()
@ RemoveBindingOnAliasWrite
static Flags flagsForProperty(const QMetaProperty &)
void load(const QMetaProperty &)
int overrideIndex() const
bool resetProperty(QObject *target, WriteFlags flags) const
bool isSignalHandler() const
bool isOverridableSignal() const
void setTypeVersion(QTypeRevision typeVersion)
const QMetaObject * metaObject() const
quint16 relativePropertyIndex() const
\macro QT_RESTRICTED_CAST_FROM_ASCII
static constexpr QTypeRevision zero()
Produces a QTypeRevision with major and minor version {0}.
Combined button and popup list for selecting options.
#define Q_STATIC_ASSERT(Condition)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define Q_DECLARE_FLAGS(Flags, Enum)
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
GLboolean GLboolean GLboolean b
void setIsConstant(bool b)
void setHasArguments(bool b)
void copyPropertyTypeFlags(Flags from)
void setIsOverridden(bool b)
void setIsResettable(bool b)
void setIsV4Function(bool b)
void setIsConstructor(bool b)
void setIsWritable(bool b)
void setIsOverridableSignal(bool b)
bool operator==(const Flags &other) const
void setIsRequired(bool b)
void setIsSignalHandler(bool b)
void setHasMetaObject(bool b)
void setIsBindable(bool b)
void setIsVMEFunction(bool b)
void setType(Type newType)
void setIsVMESignal(bool b)