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,
59 enum { BitsLeftInFlags = 16 };
74 unsigned isWritableORhasArguments : 1;
75 unsigned isResettableORisSignal : 1;
76 unsigned isAliasORisVMESignal : 1;
77 unsigned isFinalORisV4Function : 1;
80 unsigned isRequiredORisCloned : 1;
81 unsigned isConstructorORisBindable : 1;
93 inline void copyPropertyTypeFlags(
Flags from);
101 isWritableORhasArguments =
b;
106 isResettableORisSignal =
b;
111 isAliasORisVMESignal =
b;
116 isFinalORisV4Function =
b;
125 isConstructorORisBindable =
b;
130 isRequiredORisCloned =
b;
139 isWritableORhasArguments =
b;
143 isResettableORisSignal =
b;
147 isAliasORisVMESignal =
b;
152 isFinalORisV4Function =
b;
167 isRequiredORisCloned =
b;
172 isConstructorORisBindable =
b;
200 bool isQObject()
const {
return m_flags.
type == Flags::QObjectDerivedType; }
201 bool isEnum()
const {
return m_flags.
type == Flags::EnumType; }
230 Q_ASSERT(idx >= std::numeric_limits<qint16>::min());
231 Q_ASSERT(idx <= std::numeric_limits<qint16>::max());
232 m_notifyIndex =
qint16(idx);
241 Q_ASSERT(idx >= std::numeric_limits<qint16>::min());
242 Q_ASSERT(idx <= std::numeric_limits<qint16>::max());
243 m_overrideIndex =
qint16(idx);
249 Q_ASSERT(idx >= std::numeric_limits<qint16>::min());
250 Q_ASSERT(idx <= std::numeric_limits<qint16>::max());
251 m_coreIndex =
qint16(idx);
284 Q_ASSERT(off >= std::numeric_limits<qint16>::min());
285 Q_ASSERT(off <= std::numeric_limits<qint16>::max());
286 m_metaObjectOffset =
qint16(off);
316 template<QMetaObject::Call call>
320 dynamicMetaObject->metaCall(
object, call, idx, argv);
322 object->qt_metacall(call, idx, argv);
336 void *argv[] = {
value,
nullptr, &status, &
flags };
356 f.type = Flags::FunctionType;
358 f.setIsVMESignal(
true);
365 f.type = Flags::FunctionType;
366 f.setIsVMEFunction(
true);
378 qint16 m_notifyIndex = -1;
379 qint16 m_overrideIndex = -1;
381 qint16 m_metaObjectOffset = -1;
394#if QT_POINTER_SIZE == 4
400static_assert(std::is_trivially_copyable<QQmlPropertyData>::value);
414 , isVMEFunction(
false)
415 , isWritableORhasArguments(
false)
416 , isResettableORisSignal(
false)
417 , isAliasORisVMESignal(
false)
418 , isFinalORisV4Function(
false)
419 , isSignalHandler(
false)
421 , isRequiredORisCloned(
false)
422 , isConstructorORisBindable(
false)
423 , isOverridden(
false)
425 , overrideIndexIsProperty(
false)
430 return isConst ==
other.isConst &&
432 isWritableORhasArguments ==
other.isWritableORhasArguments &&
433 isResettableORisSignal ==
other.isResettableORisSignal &&
434 isAliasORisVMESignal ==
other.isAliasORisVMESignal &&
435 isFinalORisV4Function ==
other.isFinalORisV4Function &&
438 isRequiredORisCloned ==
other.isRequiredORisCloned &&
440 isConstructorORisBindable ==
other.isConstructorORisBindable &&
447 case QObjectDerivedType:
friend constexpr bool operator==(QFlags lhs, QFlags rhs) noexcept
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
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
void setOverload(bool onoff)
StaticMetaCallFunction staticMetaCallFunction() const
bool operator==(const QQmlPropertyData &) const
void setMetaObjectOffset(int off)
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 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
void setTypeVersion(QTypeRevision typeVersion)
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
obj metaObject() -> className()
void setIsConstant(bool b)
void setIsOverload(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)
unsigned overrideIndexIsProperty
void setIsRequired(bool b)
void setIsSignalHandler(bool b)
void setIsBindable(bool b)
void setIsVMEFunction(bool b)
void setIsVMESignal(bool b)