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
qmetaobject_p.h
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// Copyright (C) 2014 Olivier Goffart <ogoffart@woboq.com>
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4// Qt-Security score:significant reason:default
5
6#ifndef QMETAOBJECT_P_H
7#define QMETAOBJECT_P_H
8
9//
10// W A R N I N G
11// -------------
12//
13// This file is not part of the Qt API. It exists for the convenience
14// of moc. This header file may change from version to version without notice,
15// or even be removed.
16//
17// We mean it.
18//
19
20#include <QtCore/qglobal.h>
21#include <QtCore/qobjectdefs.h>
22#include <QtCore/qmutex.h>
23#include <QtCore/qmetaobject.h>
24#ifndef QT_NO_QOBJECT
25#include <private/qobject_p.h> // For QObjectPrivate::Connection
26#endif
27#include <QtCore/qtmocconstants.h>
28#include <private/qtools_p.h>
29#include <QtCore/qvarlengtharray.h>
30
31QT_BEGIN_NAMESPACE
32// ### TODO - QTBUG-87869: wrap in a proper Q_NAMESPACE and use scoped enums, to avoid name clashes
33
34using namespace QtMiscUtils;
35using namespace QtMocConstants;
36
37Q_DECLARE_FLAGS(MetaObjectFlags, MetaObjectFlag)
38Q_DECLARE_OPERATORS_FOR_FLAGS(MetaObjectFlags)
39
40int qMetaTypeTypeInternal(QByteArrayView name); // in qmetatype.cpp
41
43{
44public:
45 QArgumentType() = default;
46 QArgumentType(QMetaType metaType)
48 {}
49 explicit QArgumentType(QByteArrayView name)
51 {}
52 QMetaType metaType() const noexcept
53 { return _metaType; }
54 QByteArrayView name() const noexcept
55 {
56 if (_name.isEmpty())
57 return metaType().name();
58 return _name;
59 }
60
61private:
62 friend bool comparesEqual(const QArgumentType &lhs,
63 const QArgumentType &rhs)
64 {
65 if (lhs.metaType().isValid() && rhs.metaType().isValid())
66 return lhs.metaType() == rhs.metaType();
67 else
68 return lhs.name() == rhs.name();
69 }
71
73 QByteArrayView _name;
74};
76
78
79namespace { class QMetaMethodPrivate; }
81{
82 QMetaMethodInvoker() = delete;
83
84public:
85 enum class InvokeFailReason : int {
86 // negative values mean a match was found but the invocation failed
87 // (and a warning has been printed)
90 CallViaVirtualFailed = -3, // no warning
93 ConstructorCallFailed = -6, // no warning
94
96
97 // zero is success
98 None = 0,
99
100 // positive values mean the parameters did not match
103 };
104
105 // shadows the public function
106 static InvokeFailReason Q_CORE_EXPORT
108 const void *const *parameters, const char *const *typeNames,
109 const QtPrivate::QMetaTypeInterface *const *metaTypes);
110};
111
113{
114 enum { OutputRevision = QtMocConstants::OutputRevision }; // Used by moc, qmetaobjectbuilder and qdbus
115 enum { IntsPerMethod = QMetaMethod::Data::Size };
116 enum { IntsPerEnum = QMetaEnum::Data::Size };
117 enum { IntsPerProperty = QMetaProperty::Data::Size };
118
126 int flags;
128
129 static inline const QMetaObjectPrivate *get(const QMetaObject *metaobject)
130 { return reinterpret_cast<const QMetaObjectPrivate*>(metaobject->d.data); }
131
132 static int originalClone(const QMetaObject *obj, int local_method_index);
133
134 static QByteArray normalizedSignature(QByteArrayView method);
135 static QByteArrayView decodeMethodSignature(QByteArrayView signature,
136 QArgumentTypeArray &types);
137 static int indexOfSignalRelative(const QMetaObject **baseObject,
138 QByteArrayView name,
139 QSpan<const QArgumentType> types);
140 static int indexOfSlotRelative(const QMetaObject **m,
141 QByteArrayView name,
142 QSpan<const QArgumentType> types);
143 static int indexOfSignal(const QMetaObject *m, QByteArrayView name,
144 QSpan<const QArgumentType> types);
145 static int indexOfSlot(const QMetaObject *m, QByteArrayView name,
146 QSpan<const QArgumentType> types);
147 static int indexOfMethod(const QMetaObject *m, QByteArrayView name,
148 QSpan<const QArgumentType> types);
149 static int indexOfConstructor(const QMetaObject *m, QByteArrayView name,
150 QSpan<const QArgumentType> types);
151
152 enum class Which { Name, Alias };
153 static int indexOfEnumerator(const QMetaObject *m, QByteArrayView name, Which which);
154 static int indexOfEnumerator(const QMetaObject *m, QByteArrayView name);
155
156 Q_CORE_EXPORT static QMetaMethod signal(const QMetaObject *m, int signal_index);
157 static inline int signalOffset(const QMetaObject *m)
158 {
159 Q_ASSERT(m != nullptr);
160 int offset = 0;
161 for (m = m->d.superdata; m; m = m->d.superdata)
162 offset += reinterpret_cast<const QMetaObjectPrivate *>(m->d.data)->signalCount;
163 return offset;
164 }
165 Q_CORE_EXPORT static int absoluteSignalCount(const QMetaObject *m);
166 Q_CORE_EXPORT static int signalIndex(const QMetaMethod &m);
167 static bool checkConnectArgs(QSpan<const QArgumentType> signalTypes,
168 QSpan<const QArgumentType> methodTypes);
169 static bool checkConnectArgs(const QMetaMethodPrivate *signal,
170 const QMetaMethodPrivate *method);
171
172 static QByteArrayView
173 parameterTypeNamesFromSignature(QByteArrayView signature,
174 QVarLengthArray<QByteArrayView, 10> &typeNames);
175
176#ifndef QT_NO_QOBJECT
177 // defined in qobject.cpp
179 static void memberIndexes(const QObject *obj, const QMetaMethod &member,
180 int *signalIndex, int *methodIndex);
182 const QMetaObject *smeta,
184 const QMetaObject *rmeta = nullptr,
185 int type = 0, int *types = nullptr);
186 static bool disconnect(const QObject *sender, int signal_index,
187 const QMetaObject *smeta,
188 const QObject *receiver, int method_index, void **slot,
190 static inline bool disconnectHelper(QObjectPrivate::ConnectionData *connections, int signalIndex,
191 const QObject *receiver, int method_index, void **slot,
192 QBasicMutex *senderMutex, DisconnectType = DisconnectAll);
193#endif
194
195 static inline int indexOfMethodRelative(const QMetaObject **baseObject,
196 QByteArrayView name,
197 QSpan<const QArgumentType> types,
198 QMetaMethod::MethodType what);
199
200 static bool methodMatch(const QMetaObject *m, const QMetaMethod &method,
201 QByteArrayView name,
202 QSpan<const QArgumentType> types);
203 Q_CORE_EXPORT static QMetaMethod firstMethod(const QMetaObject *baseObject, QByteArrayView name);
204
205};
206
207// For meta-object generators
208
209enum { MetaObjectPrivateFieldCount = sizeof(QMetaObjectPrivate) / sizeof(int) };
210
211#ifndef UTILS_H
212// mirrored in moc's utils.h
213static inline bool is_ident_char(char s)
214{
215 return isAsciiLetterOrNumber(s) || s == '_';
216}
217
218static inline bool is_space(char s)
219{
220 return (s == ' ' || s == '\t');
221}
222#endif
223
224QT_END_NAMESPACE
225
226#endif
QMetaType metaType() const noexcept
QArgumentType(QMetaType metaType)
QArgumentType()=default
friend bool comparesEqual(const QArgumentType &lhs, const QArgumentType &rhs)
QByteArrayView name() const noexcept
QPropertyBinding< T > makeBinding(const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION) const
Constructs a binding evaluating to the underlying property's value, using a specified source location...
Definition qproperty.h:887
QPropertyBinding< T > binding() const
Returns the currently set binding of the underlying property.
Definition qproperty.h:891
T value() const
Returns the underlying property's current value.
Definition qproperty.h:929
void setValue(const T &value)
Sets the underlying property's value to value.
Definition qproperty.h:939
friend class QPropertyAlias
Definition qproperty.h:867
QBindable(QObject *obj, const QMetaProperty &property)
Definition qproperty.h:881
QPropertyBinding< T > setBinding(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, std::enable_if_t< std::is_invocable_v< Functor > > *=nullptr)
Definition qproperty.h:918
QBindable(const QUntypedBindable &b)
Definition qproperty.h:873
QPropertyBinding< T > setBinding(const QPropertyBinding< T > &binding)
Sets the underlying property's binding to binding.
Definition qproperty.h:902
QBindable(QObject *obj, const char *property)
Definition qproperty.h:884
QPropertyBinding< T > takeBinding()
Removes the currently set binding of the underlying property and returns it.
Definition qproperty.h:896
\inmodule QtCore
\inmodule QtCore
Definition qproperty.h:1077
QObjectBindableProperty(const T &initialValue)
Constructs a property with the provided initialValue.
Definition qproperty.h:1108
QObjectBindableProperty()=default
typename QPropertyData< T >::rvalue_ref rvalue_ref
Definition qproperty.h:1104
typename QPropertyData< T >::value_type value_type
Definition qproperty.h:1102
QObjectBindableProperty(T &&initialValue)
Move-Constructs a property with the provided initialValue.
Definition qproperty.h:1109
typename QPropertyData< T >::arrow_operator_result arrow_operator_result
Definition qproperty.h:1105
QObjectBindableProperty(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, typename std::enable_if_t< std::is_invocable_r_v< T, Functor & > > *=nullptr)
Definition qproperty.h:1115
QObjectBindableProperty(const QPropertyBinding< T > &binding)
Definition qproperty.h:1110
typename QPropertyData< T >::parameter_type parameter_type
Definition qproperty.h:1103
\macro Q_OBJECT_BINDABLE_PROPERTY(containingClass, type, name, signal)
QPropertyBinding< T > binding() const
operator parameter_type() const
typename QPropertyData< T >::value_type value_type
QtPrivate::QPropertyBindingData & bindingData() const
QObjectCompatProperty & operator=(parameter_type newValue)
typename QPropertyData< T >::arrow_operator_result arrow_operator_result
typename QPropertyData< T >::parameter_type parameter_type
parameter_type value() const
QPropertyChangeHandler< Functor > onValueChanged(Functor f)
void setValue(parameter_type t)
void removeBindingUnlessInWrapper()
bool setBinding(const QUntypedPropertyBinding &newBinding)
QPropertyBinding< T > setBinding(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, std::enable_if_t< std::is_invocable_v< Functor > > *=nullptr)
arrow_operator_result operator->() const
QObjectCompatProperty(T &&initialValue)
QPropertyNotifier addNotifier(Functor f)
parameter_type operator*() const
QObjectCompatProperty(const T &initialValue)
QPropertyBinding< T > takeBinding()
QPropertyChangeHandler< Functor > subscribe(Functor f)
bool hasBinding() const
QPropertyBinding< T > setBinding(const QPropertyBinding< T > &newBinding)
\macro Q_OBJECT_COMPAT_PROPERTY(containingClass, type, name, callback)
Definition qproperty.h:1343
QObjectComputedProperty()=default
parameter_type value() const
Definition qproperty.h:1361
\inmodule QtCore
Definition qproperty.h:133
QPropertyBinding(const QUntypedPropertyBinding &binding)
Definition qproperty.h:207
QPropertyBinding()=default
QPropertyBinding(Functor &&f, const QPropertyBindingSourceLocation &location)
Definition qproperty.h:201
\inmodule QtCore
Definition qproperty.h:294
\inmodule QtCore
Definition qproperty.h:71
static constexpr bool UseReferences
Definition qproperty.h:77
void setValueBypassingBindings(parameter_type v)
Sets the data value stored in this property to v.
Definition qproperty.h:91
QPropertyData()=default
QPropertyData(parameter_type t)
Definition qproperty.h:86
~QPropertyData()=default
parameter_type valueBypassingBindings() const
Returns the data stored in this property.
Definition qproperty.h:90
\inmodule QtCore
Definition qproperty.h:321
QUntypedPropertyData * aliasData
Definition qproperty.h:256
void(*)(QPropertyObserver *, QUntypedPropertyData *) ChangeHandler
Definition qproperty.h:238
ChangeHandler changeHandler
Definition qproperty.h:255
QPropertyBindingPrivate * binding
Definition qproperty.h:254
\inmodule QtCore
Definition qproperty.h:353
typename QPropertyData< T >::arrow_operator_result arrow_operator_result
Definition qproperty.h:379
QProperty(rvalue_ref initialValue)
Definition qproperty.h:383
void setValue(rvalue_ref newValue)
Definition qproperty.h:448
typename QPropertyData< T >::value_type value_type
Definition qproperty.h:376
QPropertyChangeHandler< Functor > subscribe(Functor f)
Definition qproperty.h:524
QPropertyBinding< T > takeBinding()
Disassociates the binding expression from this property and returns it.
Definition qproperty.h:511
bool hasBinding() const
Definition qproperty.h:504
bool setBinding(const QUntypedPropertyBinding &newBinding)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qproperty.h:483
friend void operator!=(const QProperty &, const QProperty< U > &) QPROPERTY_DECL_DELETED_EQ_OP
QPropertyNotifier addNotifier(Functor f)
Definition qproperty.h:532
typename QPropertyData< T >::rvalue_ref rvalue_ref
Definition qproperty.h:378
QPropertyChangeHandler< Functor > onValueChanged(Functor f)
Registers the given functor f as a callback that shall be called whenever the value of the property c...
Definition qproperty.h:517
QPropertyBinding< T > setBinding(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, std::enable_if_t< std::is_invocable_v< Functor > > *=nullptr)
Definition qproperty.h:493
void setValue(parameter_type newValue)
Assigns newValue to this property and removes the property's associated binding, if present.
Definition qproperty.h:457
QProperty()=default
Constructs a property with a default constructed instance of T.
QProperty(const QPropertyBinding< T > &binding)
Constructs a property that is tied to the provided binding expression.
Definition qproperty.h:384
parameter_type value() const
Returns the value of the property.
Definition qproperty.h:420
QPropertyBinding< T > setBinding(const QPropertyBinding< T > &newBinding)
Associates the value of this property with the provided newBinding expression and returns the previou...
Definition qproperty.h:478
QProperty(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, typename std::enable_if_t< std::is_invocable_r_v< T, Functor & > > *=nullptr)
Definition qproperty.h:389
const QtPrivate::QPropertyBindingData & bindingData() const
Definition qproperty.h:538
typename QPropertyData< T >::parameter_type parameter_type
Definition qproperty.h:377
QProperty< T > & operator=(rvalue_ref newValue)
Definition qproperty.h:466
arrow_operator_result operator->() const
Definition qproperty.h:426
QProperty< T > & operator=(parameter_type newValue)
Assigns newValue to this property and returns a reference to this QProperty.
Definition qproperty.h:472
QPropertyBinding< T > binding() const
Returns the binding expression that is associated with this property.
Definition qproperty.h:506
parameter_type operator*() const
Definition qproperty.h:438
operator parameter_type() const
Definition qproperty.h:443
~QProperty()=default
Destroys the property.
QProperty(parameter_type initialValue)
Definition qproperty.h:382
RAII class around Qt::beginPropertyUpdateGroup()/QtendPropertyUpdateGroup().
Definition qproperty.h:59
~QTimerPrivate() override
QTimerPrivate(QTimer *qq)
Definition qtimer_p.h:28
void setIntervalDuration(std::chrono::nanoseconds nsec)
Definition qtimer_p.h:43
static constexpr int INV_TIMER
Definition qtimer_p.h:41
void setInterval(int msec)
Definition qtimer_p.h:53
bool isActive() const
Definition qtimer_p.h:59
const bool isQTimer
Definition qtimer_p.h:71
QTimerPrivate(std::chrono::nanoseconds nsec, QChronoTimer *qq)
Definition qtimer_p.h:33
Qt::TimerId id
Definition qtimer_p.h:61
\inmodule QtCore
Definition qtimer.h:21
\inmodule QtCore
Definition qproperty.h:731
QUntypedPropertyBinding binding() const
Returns the underlying property's binding if there is any, or a default constructed QUntypedPropertyB...
Definition qproperty.h:811
QUntypedPropertyBinding makeBinding(const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION) const
Creates a binding returning the underlying properties' value, using a specified source location.
Definition qproperty.h:755
bool hasBinding() const
Returns true if the underlying property has a binding.
Definition qproperty.h:841
constexpr QUntypedBindable()=default
Default-constructs a QUntypedBindable.
QMetaType metaType() const
Definition qproperty.h:846
const QtPrivate::QBindableInterface * iface
Definition qproperty.h:735
QPropertyChangeHandler< Functor > onValueChanged(Functor f) const
Installs f as a change handler.
Definition qproperty.h:789
QUntypedPropertyBinding takeBinding()
Removes the currently set binding from the property and returns it.
Definition qproperty.h:760
QPropertyNotifier addNotifier(Functor f)
Installs f as a change handler.
Definition qproperty.h:804
QUntypedPropertyData * data
Definition qproperty.h:734
bool isBindable() const
Definition qproperty.h:752
bool isValid() const
Returns true if the QUntypedBindable is valid.
Definition qproperty.h:751
bool setBinding(const QUntypedPropertyBinding &binding)
Sets the underlying property's binding to binding.
Definition qproperty.h:822
bool isReadOnly() const
Definition qproperty.h:753
QUntypedBindable(Property *p)
Constructs a QUntypedBindable from the property property.
Definition qproperty.h:746
QPropertyChangeHandler< Functor > subscribe(Functor f) const
Behaves like a call to f followed by onValueChanged(f),.
Definition qproperty.h:797
constexpr QUntypedBindable(QUntypedPropertyData *d, const QtPrivate::QBindableInterface *i)
Definition qproperty.h:736
void observe(QPropertyObserver *observer) const
Definition qproperty.h:777
\inmodule QtCore
Definition qproperty.h:160
static constexpr QBindableInterface iface
Definition qproperty.h:607
QPropertyBindingData & bindingData()
friend class QT_PREPEND_NAMESPACE(QUntypedBindable)
const QMetaProperty & metaProperty() const
static QPropertyAdaptorSlotObject * cast(QSlotObjectBase *ptr, int propertyIndex)
const QPropertyBindingData & bindingData() const
Combined button and popup list for selecting options.
const T & const_reference()
constexpr bool has_ostream_operator_v
constexpr bool is_dereferenceable_v
constexpr bool has_operator_equal_v
constexpr bool has_stream_operator_v
constexpr bool has_operator_compare_three_way_v
constexpr bool has_istream_operator_v
std::disjunction< std::is_base_of< Container, T >, QTypeTraits::has_operator_equal< T > > has_operator_equal_container
std::disjunction< std::is_base_of< Container, T >, QTypeTraits::has_operator_less_than< T > > has_operator_less_than_container
constexpr bool has_operator_compare_three_way_with_v
constexpr bool has_operator_less_than_v
void printMetaTypeMismatch(QMetaType actual, QMetaType expected)
void printUnsuitableBindableWarning(QAnyStringView prefix, BindableWarnings::Reason reason)
Q_CORE_EXPORT void printSignalArgumentsWithCustomGetter()
void setter(QUntypedPropertyData *d, const void *value)
void getter(const QUntypedPropertyData *d, void *value)
bool bindingWrapper(QMetaType type, QUntypedPropertyData *d, QtPrivate::QPropertyBindingFunction binding, QUntypedPropertyData *temp, void *value)
QUntypedPropertyBinding setBinding(QUntypedPropertyData *d, const QUntypedPropertyBinding &binding)
Definition qproperty.h:699
constexpr QBindableInterface iface
Definition qproperty.h:718
bool bindingWrapper(QMetaType type, QUntypedPropertyData *d, QtPrivate::QPropertyBindingFunction binding)
Definition qproperty.h:688
QUntypedPropertyBinding makeBinding(const QUntypedPropertyData *d, const QPropertyBindingSourceLocation &location)
Definition qproperty.h:705
void setObserver(const QUntypedPropertyData *d, QPropertyObserver *observer)
void assertObjectType(QObjectPrivate *d)
Definition qobject_p.h:251
Q_CORE_EXPORT bool isAnyBindingEvaluating()
Q_CORE_EXPORT void restoreBindingStatus(BindingEvaluationState *status)
constexpr bool is_standard_or_extended_integer_type_v
const QObject * getQObject(const QObjectPrivate *d)
Definition qobject_p.h:246
Q_CORE_EXPORT bool isPropertyInBindingWrapper(const QUntypedPropertyData *property)
Definition qcompare.h:111
auto makePropertyBinding(Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, std::enable_if_t< std::is_invocable_v< Functor > > *=nullptr)
Definition qproperty.h:214
Q_CORE_EXPORT void beginPropertyUpdateGroup()
QPropertyBinding< PropertyType > makePropertyBinding(const QProperty< PropertyType > &otherProperty, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION)
Definition qproperty.h:568
Q_CORE_EXPORT void endPropertyUpdateGroup()
#define __has_include(x)
QT_BEGIN_NAMESPACE typedef QList< QTranslator * > QTranslatorList
static bool is_ident_char(char s)
static bool is_space(char s)
Q_DECLARE_TYPEINFO(QArgumentType, Q_RELOCATABLE_TYPE)
QVarLengthArray< QArgumentType, 10 > QArgumentTypeArray
@ MetaObjectPrivateFieldCount
#define QT_CONCAT(B, M, m, u)
Definition qobject_p.h:43
QBindingStorage * qGetBindingStorage(QObjectPrivate *o)
Definition qobject_p.h:454
QBindingStorage * qGetBindingStorage(QObjectPrivate::ExtraData *ed)
Definition qobject_p.h:462
const QBindingStorage * qGetBindingStorage(const QObjectPrivate *o)
Definition qobject_p.h:450
#define QPROPERTY_DECL_DELETED_EQ_OP
Definition qproperty.h:411
#define Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(...)
Definition qproperty.h:1336
#define QT_PROPERTY_DEFAULT_BINDING_LOCATION
Definition qproperty.h:48
#define Q_OBJECT_COMPUTED_PROPERTY(Class, Type, name, ...)
Definition qproperty.h:1425
#define Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(...)
constexpr T qExchange(T &t, U &&newValue) noexcept(std::conjunction_v< std::is_nothrow_move_constructible< T >, std::is_nothrow_assignable< T &, U > >)
#define QSEIT_EXCLUDE(X)
QBindingObserverPtr()=default
QPropertyObserver * operator->()
QPropertyBindingPrivate * binding() const noexcept
static int signalOffset(const QMetaObject *m)
static int indexOfMethodRelative(const QMetaObject **baseObject, QByteArrayView name, QSpan< const QArgumentType > types, QMetaMethod::MethodType what)
static bool methodMatch(const QMetaObject *m, const QMetaMethod &method, QByteArrayView name, QSpan< const QArgumentType > types)
static bool disconnect(const QObject *sender, int signal_index, const QMetaObject *smeta, const QObject *receiver, int method_index, void **slot, DisconnectType=DisconnectAll)
Definition qobject.cpp:3873
static int indexOfEnumerator(const QMetaObject *m, QByteArrayView name)
static int indexOfMethod(const QMetaObject *m, QByteArrayView name, QSpan< const QArgumentType > types)
static int indexOfSignalRelative(const QMetaObject **baseObject, QByteArrayView name, QSpan< const QArgumentType > types)
static int indexOfEnumerator(const QMetaObject *m, QByteArrayView name, Which which)
static int indexOfSignal(const QMetaObject *m, QByteArrayView name, QSpan< const QArgumentType > types)
static void memberIndexes(const QObject *obj, const QMetaMethod &member, int *signalIndex, int *methodIndex)
Definition qobject.cpp:2964
static int indexOfConstructor(const QMetaObject *m, QByteArrayView name, QSpan< const QArgumentType > types)
static int indexOfSlot(const QMetaObject *m, QByteArrayView name, QSpan< const QArgumentType > types)
static Q_CORE_EXPORT int absoluteSignalCount(const QMetaObject *m)
static QByteArrayView parameterTypeNamesFromSignature(QByteArrayView signature, QVarLengthArray< QByteArrayView, 10 > &typeNames)
static const QMetaObjectPrivate * get(const QMetaObject *metaobject)
static bool disconnectHelper(QObjectPrivate::ConnectionData *connections, int signalIndex, const QObject *receiver, int method_index, void **slot, QBasicMutex *senderMutex, DisconnectType=DisconnectAll)
Definition qobject.cpp:3833
static bool checkConnectArgs(const QMetaMethodPrivate *signal, const QMetaMethodPrivate *method)
static QByteArray normalizedSignature(QByteArrayView method)
static int indexOfSlotRelative(const QMetaObject **m, QByteArrayView name, QSpan< const QArgumentType > types)
static int originalClone(const QMetaObject *obj, int local_method_index)
static Q_CORE_EXPORT int signalIndex(const QMetaMethod &m)
static bool checkConnectArgs(QSpan< const QArgumentType > signalTypes, QSpan< const QArgumentType > methodTypes)
static QByteArrayView decodeMethodSignature(QByteArrayView signature, QArgumentTypeArray &types)
static QPropertyProxyBindingData * proxyData(QtPrivate::QPropertyBindingData *ptr)
static void fixupAfterMove(QtPrivate::QPropertyBindingData *ptr)
Q_ALWAYS_INLINE void addObserver(QPropertyObserver *observer)
Definition qproperty.cpp:41
const QtPrivate::QPropertyBindingData * ptr
Definition qproperty_p.h:75
static QPropertyBindingDataPointer get(QProperty< T > &property)
Definition qproperty_p.h:97
QPropertyBindingPrivate * binding() const
Definition qproperty_p.h:77
void setObservers(QPropertyObserver *observer)
Definition qproperty_p.h:82
QPropertyObserverPointer firstObserver() const
void setFirstObserver(QPropertyObserver *observer)
QPropertyObserver * next() const
void noSelfDependencies(QPropertyBindingPrivate *binding)
void notify(QUntypedPropertyData *propertyDataPtr)
QPropertyBindingPrivate * binding() const
void evaluateBindings(PendingBindingObserverList &bindingObservers, QBindingStatus *status)
void observeProperty(QPropertyBindingDataPointer property)
QPropertyObserver * ptr
QPropertyObserverPointer nextObserver() const
void setBindingToNotify_unsafe(QPropertyBindingPrivate *binding)
void setChangeHandler(QPropertyObserver::ChangeHandler changeHandler)
void setBindingToNotify(QPropertyBindingPrivate *binding)
void(* BeginCallback)(QObject *caller, int signal_or_method_index, void **argv)
Definition qobject_p.h:64
BeginCallback slot_begin_callback
Definition qobject_p.h:67
EndCallback slot_end_callback
Definition qobject_p.h:69
EndCallback signal_end_callback
Definition qobject_p.h:68
BeginCallback signal_begin_callback
Definition qobject_p.h:66
void(* EndCallback)(QObject *caller, int signal_or_method_index)
Definition qobject_p.h:65
static QtPrivate::QBindableInterface const * getInterface(const QUntypedBindable &bindable)
static QUntypedPropertyData * getPropertyData(const QUntypedBindable &bindable)
QPropertyBindingPrivate * binding
QVarLengthArray< const QPropertyBindingData *, 8 > alreadyCaptureProperties
BindingEvaluationState(QPropertyBindingPrivate *binding, QBindingStatus *status)
BindingEvaluationState * previousState
BindingEvaluationState ** currentState
QtPrivate::BindingEvaluationState ** currentlyEvaluatingBindingList
CompatPropertySafePoint * previousState
CompatPropertySafePoint ** currentState
QUntypedPropertyData * property
QtPrivate::BindingEvaluationState * bindingState
void(*)(const QUntypedPropertyData *d, void *value) Getter
Definition qproperty.h:582
void(*)(const QUntypedPropertyData *d, QPropertyObserver *observer) SetObserver
Definition qproperty.h:587
void(*)(QUntypedPropertyData *d, const void *value) Setter
Definition qproperty.h:583
static constexpr quintptr MetaTypeAccessorFlag
Definition qproperty.h:597