Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
#include <qmetaobject_p.h>
Public Types | |
enum | { OutputRevision = 12 } |
enum | { IntsPerMethod = QMetaMethod::Data::Size } |
enum | { IntsPerEnum = QMetaEnum::Data::Size } |
enum | { IntsPerProperty = QMetaProperty::Data::Size } |
enum class | Which { Name , Alias } |
enum | DisconnectType { DisconnectAll , DisconnectOne } |
Static Public Member Functions | |
static const QMetaObjectPrivate * | get (const QMetaObject *metaobject) |
static int | originalClone (const QMetaObject *obj, int local_method_index) |
static QByteArray | decodeMethodSignature (const char *signature, QArgumentTypeArray &types) |
static int | indexOfSignalRelative (const QMetaObject **baseObject, const QByteArray &name, int argc, const QArgumentType *types) |
static int | indexOfSlotRelative (const QMetaObject **m, const QByteArray &name, int argc, const QArgumentType *types) |
static int | indexOfSignal (const QMetaObject *m, const QByteArray &name, int argc, const QArgumentType *types) |
static int | indexOfSlot (const QMetaObject *m, const QByteArray &name, int argc, const QArgumentType *types) |
static int | indexOfMethod (const QMetaObject *m, const QByteArray &name, int argc, const QArgumentType *types) |
static int | indexOfConstructor (const QMetaObject *m, const QByteArray &name, int argc, const QArgumentType *types) |
static int | indexOfEnumerator (const QMetaObject *m, QByteArrayView name, Which which) |
static int | indexOfEnumerator (const QMetaObject *m, QByteArrayView name) |
static Q_CORE_EXPORT QMetaMethod | signal (const QMetaObject *m, int signal_index) |
static int | signalOffset (const QMetaObject *m) |
static Q_CORE_EXPORT int | absoluteSignalCount (const QMetaObject *m) |
static Q_CORE_EXPORT int | signalIndex (const QMetaMethod &m) |
static bool | checkConnectArgs (int signalArgc, const QArgumentType *signalTypes, int methodArgc, const QArgumentType *methodTypes) |
static bool | checkConnectArgs (const QMetaMethodPrivate *signal, const QMetaMethodPrivate *method) |
static QList< QByteArray > | parameterTypeNamesFromSignature (const char *signature) |
static void | memberIndexes (const QObject *obj, const QMetaMethod &member, int *signalIndex, int *methodIndex) |
static QObjectPrivate::Connection * | connect (const QObject *sender, int signal_index, const QMetaObject *smeta, const QObject *receiver, int method_index_relative, const QMetaObject *rmeta=nullptr, int type=0, int *types=nullptr) |
static bool | disconnect (const QObject *sender, int signal_index, const QMetaObject *smeta, const QObject *receiver, int method_index, void **slot, DisconnectType=DisconnectAll) |
static bool | disconnectHelper (QObjectPrivate::ConnectionData *connections, int signalIndex, const QObject *receiver, int method_index, void **slot, QBasicMutex *senderMutex, DisconnectType=DisconnectAll) |
template<int MethodType> | |
static int | indexOfMethodRelative (const QMetaObject **baseObject, const QByteArray &name, int argc, const QArgumentType *types) |
static bool | methodMatch (const QMetaObject *m, const QMetaMethod &method, const QByteArray &name, int argc, const QArgumentType *types) |
static Q_CORE_EXPORT QMetaMethod | firstMethod (const QMetaObject *baseObject, QByteArrayView name) |
Public Attributes | |
int | revision |
int | className |
int | classInfoCount |
int | classInfoData |
int | methodCount |
int | methodData |
int | propertyCount |
int | propertyData |
int | enumeratorCount |
int | enumeratorData |
int | constructorCount |
int | constructorData |
int | flags |
int | signalCount |
Definition at line 170 of file qmetaobject_p.h.
anonymous enum |
Enumerator | |
---|---|
OutputRevision |
Definition at line 179 of file qmetaobject_p.h.
anonymous enum |
Enumerator | |
---|---|
IntsPerMethod |
Definition at line 180 of file qmetaobject_p.h.
anonymous enum |
Enumerator | |
---|---|
IntsPerEnum |
Definition at line 181 of file qmetaobject_p.h.
anonymous enum |
Enumerator | |
---|---|
IntsPerProperty |
Definition at line 182 of file qmetaobject_p.h.
Enumerator | |
---|---|
DisconnectAll | |
DisconnectOne |
Definition at line 240 of file qmetaobject_p.h.
|
strong |
Enumerator | |
---|---|
Name | |
Alias |
Definition at line 216 of file qmetaobject_p.h.
|
static |
Returns the number of signals for the class m, including the signals for the base class.
Similar to QMetaObject::methodCount(), but non-signal methods are excluded.
Definition at line 932 of file qmetaobject.cpp.
References priv(), and Q_ASSERT.
Referenced by QMetaObject::connectSlotsByName(), and QQmlContext::setContextProperty().
|
static |
Returns true
if the signal and method arguments are compatible; otherwise returns false
.
Definition at line 1007 of file qmetaobject.cpp.
References i, IsUnresolvedType, method, QMetaMethod::Signal, signal, typeFromTypeInfo(), and typeNameFromTypeInfo().
|
static |
Returns true
if the signalTypes and methodTypes are compatible; otherwise returns false
.
Definition at line 989 of file qmetaobject.cpp.
References i.
Referenced by QMetaObject::checkConnectArgs(), and QObject::connect().
|
static |
Same as the QMetaObject::connect, but signal_index must be the result of QObjectPrivate::signalIndex
method_index is relative to the rmeta metaobject, if rmeta is \nullptr, then it is absolute index
the QObjectPrivate::Connection* has a refcount of 2, so it must be passed to a QMetaObject::Connection
Definition at line 3576 of file qobject.cpp.
References c2, get(), QObjectPrivate::get(), Q_ASSERT, QThreadData::ref(), QObjectPrivate::Connection::sender, signal(), signalSlotLock(), Qt::SingleShotConnection, Qt::UniqueConnection, and QOrderedMutexLocker::unlock().
Referenced by QObject::connect(), QObject::connect(), QMetaObject::connect(), and QMetaObject::connectSlotsByName().
|
static |
Definition at line 778 of file qmetaobject.cpp.
References argumentTypesFromString(), QByteArray::fromRawData(), Q_ASSERT, and QByteArray().
Referenced by QObject::connect(), QObject::disconnect(), QMetaObject::indexOfConstructor(), QMetaObject::indexOfMethod(), QMetaObject::indexOfSignal(), QMetaObject::indexOfSlot(), and QObjectPrivate::signalIndex().
|
static |
Same as the QMetaObject::disconnect, but signal_index must be the result of QObjectPrivate::signalIndex
Definition at line 3711 of file qobject.cpp.
References QObjectPrivate::connections, QObjectPrivate::get(), signal(), signalSlotLock(), and QMutexLocker< Mutex >::unlock().
Referenced by QObject::disconnect(), QObject::disconnect(), QMetaObject::disconnect(), QObjectPrivate::disconnect(), and QMetaObject::disconnectOne().
|
inlinestatic |
Helper function to remove the connection from the senders list and set the receivers to \nullptr
Definition at line 3671 of file qobject.cpp.
References QObjectPrivate::connections, QOrderedMutexLocker::relock(), signalIndex, and signalSlotLock().
|
static |
Returns the first method with name name found in baseObject
Definition at line 669 of file qmetaobject.cpp.
References i, priv(), and QMetaObject::superClass().
Referenced by QV4::QQmlValueTypeWrapper::dataForPropertyKey().
|
inlinestatic |
Definition at line 194 of file qmetaobject_p.h.
Referenced by computeOffsets(), QObject::connect(), connect(), QQmlPropertyCache::copyAndAppend(), QObject::disconnect(), QQmlBindingInstantiationContext::instantiatingPropertyCache(), QMetaMethod::invokeOnGadget(), QMetaMethod::isConst(), metaObjectSignalCount(), originalClone(), and QObjectPrivate::signalIndex().
|
static |
Definition at line 899 of file qmetaobject.cpp.
References i, method, methodMatch(), and priv().
Referenced by QMetaObject::indexOfConstructor().
|
static |
Definition at line 1067 of file qmetaobject.cpp.
References indexOfEnumerator().
|
static |
Definition at line 1077 of file qmetaobject.cpp.
References d, i, Name, priv(), and stringDataView().
Referenced by QMetaObject::indexOfEnumerator(), and indexOfEnumerator().
|
static |
Definition at line 890 of file qmetaobject.cpp.
References i.
Referenced by QObject::disconnect(), and indexOfSignalRelative().
|
inlinestatic |
helper function for indexOf{Method,Slot,Signal}, returns the relative index of the method within the baseObject MethodType might be MethodSignal or MethodSlot, or \nullptr to match everything.
Definition at line 690 of file qmetaobject.cpp.
References QMetaObject::d, i, methodMatch(), MethodSignal, MethodSlot, priv(), and Q_ASSERT.
|
static |
Definition at line 872 of file qmetaobject.cpp.
References i, and indexOfSignalRelative().
|
static |
Same as QMetaObject::indexOfSignal, but the result is the local offset to the base object.
baseObject will be adjusted to the enclosing QMetaObject, or \nullptr if the signal is not found
Definition at line 823 of file qmetaobject.cpp.
References i, indexOfMethod(), and qWarning.
Referenced by QObject::connect(), QObject::disconnect(), QMetaObject::indexOfSignal(), indexOfSignal(), and QObjectPrivate::signalIndex().
|
static |
Definition at line 881 of file qmetaobject.cpp.
References i, and indexOfSlotRelative().
|
static |
Definition at line 865 of file qmetaobject.cpp.
Referenced by QObject::connect(), QMetaObject::indexOfSlot(), and indexOfSlot().
|
static |
This helper function calculates signal and method index for the given member in the specified class.
\list
This function is used by QObject::connect and QObject::disconnect which are working with QMetaMethod.
signalIndex is set to the signal index of member. If the member specified is not signal this variable is set to -1.
methodIndex is set to the method index of the member. If the member is not a method of the object specified by the obj argument this variable is set to -1.
Definition at line 2843 of file qobject.cpp.
References computeOffsets(), QMetaObject::d, QMetaMethod::methodType(), QMetaMethod::mobj, QMetaMethod::relativeMethodIndex(), QMetaMethod::Signal, and signalIndex.
Referenced by QObject::connect(), and QObject::disconnect().
|
static |
Definition at line 633 of file qmetaobject.cpp.
References i, method, priv(), stringData(), typeFromTypeInfo(), and typeNameFromTypeInfo().
Referenced by indexOfConstructor(), and indexOfMethodRelative().
|
static |
If the local_method_index is a cloned method, return the index of the original.
Example: if the index of "destroyed()" is passed, the index of "destroyed(QObject*)" is returned
Definition at line 4289 of file qmetaobject.cpp.
References get(), MethodCloned, methodCount, and Q_ASSERT.
Referenced by QObject::connect(), QObject::disconnect(), QObject::isSignalConnected(), methodIndexToSignalIndex(), and QObjectPrivate::signalIndex().
|
static |
Returns the parameter type names extracted from the given signature.
Definition at line 4304 of file qmetaobject.cpp.
References begin(), list, and QByteArray().
Referenced by QMetaMethodBuilderPrivate::parameterTypes().
|
static |
Returns the signal for the given meta-object m at signal_index.
It it different from QMetaObject::method(); the index should not include non-signal methods.
Definition at line 966 of file qmetaobject.cpp.
References d, i, priv(), Q_ASSERT, signal, and signalOffset().
Referenced by QSingleShotTimer::QSingleShotTimer(), QObject::~QObject(), QObject::connect(), connect(), QQmlNotifierEndpoint::connect(), QObjectPrivate::connectImpl(), QMetaObject::connectSlotsByName(), QQmlBinding::dependencies(), QQmlNotifierEndpoint::disconnect(), disconnect(), QObject::dumpObjectInfo(), QQmlBoundSignalExpression::evaluate(), QQmlPropertyCache::originalClone(), Q_TRACE_POINT(), QQmlBoundSignal_callback(), QTest::qSignalDumperCallback(), queued_activate(), QObjectPrivate::removeConnection(), QObject::senderSignalIndex(), QQmlData::signalEmitted(), and QQmlPropertyCache::signalParameterNames().
|
static |
Returns the index of the signal method m.
Similar to QMetaMethod::methodIndex(), but non-signal methods are excluded.
Definition at line 950 of file qmetaobject.cpp.
References signalOffset().
Referenced by QQmlEngine::captureProperty(), QQmlPrivate::initObjectLookup(), QQmlPropertyData::load(), QQmlThreadNotifierProxyObject::qt_metacall(), QQmlPropertyPrivate::signalIndex(), and QQmlPropertyToPropertyBinding::update().
|
inlinestatic |
Returns the signal offset for the class m; i.e., the index position of the class's first signal.
Similar to QMetaObject::methodOffset(), but non-signal methods are excluded.
Definition at line 221 of file qmetaobject_p.h.
References Q_ASSERT, and signalCount.
Referenced by QSingleShotTimer::QSingleShotTimer(), QMetaObject::activate(), QObject::connect(), QObject::disconnect(), QObject::isSignalConnected(), signal(), QObjectPrivate::signalIndex(), and signalIndex().
int QMetaObjectPrivate::classInfoCount |
Definition at line 186 of file qmetaobject_p.h.
int QMetaObjectPrivate::classInfoData |
Definition at line 186 of file qmetaobject_p.h.
int QMetaObjectPrivate::className |
Definition at line 185 of file qmetaobject_p.h.
int QMetaObjectPrivate::constructorCount |
Definition at line 190 of file qmetaobject_p.h.
int QMetaObjectPrivate::constructorData |
Definition at line 190 of file qmetaobject_p.h.
int QMetaObjectPrivate::enumeratorCount |
Definition at line 189 of file qmetaobject_p.h.
int QMetaObjectPrivate::enumeratorData |
Definition at line 189 of file qmetaobject_p.h.
int QMetaObjectPrivate::flags |
Definition at line 191 of file qmetaobject_p.h.
int QMetaObjectPrivate::methodCount |
Definition at line 187 of file qmetaobject_p.h.
Referenced by originalClone().
int QMetaObjectPrivate::methodData |
Definition at line 187 of file qmetaobject_p.h.
int QMetaObjectPrivate::propertyCount |
Definition at line 188 of file qmetaobject_p.h.
int QMetaObjectPrivate::propertyData |
Definition at line 188 of file qmetaobject_p.h.
int QMetaObjectPrivate::revision |
Definition at line 184 of file qmetaobject_p.h.
int QMetaObjectPrivate::signalCount |
Definition at line 192 of file qmetaobject_p.h.
Referenced by signalOffset().