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
QMetaObjectPrivate Struct Reference

#include <qmetaobject_p.h>

+ Inheritance diagram for QMetaObjectPrivate:
+ Collaboration diagram for QMetaObjectPrivate:

Public Types

enum  { OutputRevision = QtMocConstants::OutputRevision }
 
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 QMetaObjectPrivateget (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< QByteArrayparameterTypeNamesFromSignature (const char *signature)
 
static void memberIndexes (const QObject *obj, const QMetaMethod &member, int *signalIndex, int *methodIndex)
 
static QObjectPrivate::Connectionconnect (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
 

Detailed Description

Definition at line 111 of file qmetaobject_p.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
OutputRevision 

Definition at line 113 of file qmetaobject_p.h.

◆ anonymous enum

anonymous enum
Enumerator
IntsPerMethod 

Definition at line 114 of file qmetaobject_p.h.

◆ anonymous enum

anonymous enum
Enumerator
IntsPerEnum 

Definition at line 115 of file qmetaobject_p.h.

◆ anonymous enum

anonymous enum
Enumerator
IntsPerProperty 

Definition at line 116 of file qmetaobject_p.h.

◆ DisconnectType

Enumerator
DisconnectAll 
DisconnectOne 

Definition at line 174 of file qmetaobject_p.h.

◆ Which

enum class QMetaObjectPrivate::Which
strong
Enumerator
Name 
Alias 

Definition at line 150 of file qmetaobject_p.h.

Member Function Documentation

◆ absoluteSignalCount()

int QMetaObjectPrivate::absoluteSignalCount ( const QMetaObject * m)
static
Since
5.0

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 946 of file qmetaobject.cpp.

◆ checkConnectArgs() [1/2]

bool QMetaObjectPrivate::checkConnectArgs ( const QMetaMethodPrivate * signal,
const QMetaMethodPrivate * method )
static

Returns true if the signal and method arguments are compatible; otherwise returns false.

Definition at line 1021 of file qmetaobject.cpp.

References typeFromTypeInfo().

+ Here is the call graph for this function:

◆ checkConnectArgs() [2/2]

bool QMetaObjectPrivate::checkConnectArgs ( int signalArgc,
const QArgumentType * signalTypes,
int methodArgc,
const QArgumentType * methodTypes )
static

Returns true if the signalTypes and methodTypes are compatible; otherwise returns false.

Definition at line 1003 of file qmetaobject.cpp.

◆ connect()

QObjectPrivate::Connection * QMetaObjectPrivate::connect ( const QObject * sender,
int signal_index,
const QMetaObject * smeta,
const QObject * receiver,
int method_index,
const QMetaObject * rmeta = nullptr,
int type = 0,
int * types = nullptr )
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 3590 of file qobject.cpp.

References revision.

◆ decodeMethodSignature()

QByteArray QMetaObjectPrivate::decodeMethodSignature ( const char * signature,
QArgumentTypeArray & types )
static

Definition at line 792 of file qmetaobject.cpp.

References argumentTypesFromString().

+ Here is the call graph for this function:

◆ disconnect()

bool QMetaObjectPrivate::disconnect ( const QObject * sender,
int signal_index,
const QMetaObject * smeta,
const QObject * receiver,
int method_index,
void ** slot,
DisconnectType disconnectType = DisconnectAll )
static

Same as the QMetaObject::disconnect, but signal_index must be the result of QObjectPrivate::signalIndex

Definition at line 3725 of file qobject.cpp.

◆ disconnectHelper()

bool QMetaObjectPrivate::disconnectHelper ( QObjectPrivate::ConnectionData * connections,
int signalIndex,
const QObject * receiver,
int method_index,
void ** slot,
QBasicMutex * senderMutex,
DisconnectType disconnectType = DisconnectAll )
inlinestatic

Helper function to remove the connection from the senders list and set the receivers to \nullptr

Definition at line 3685 of file qobject.cpp.

◆ firstMethod()

QMetaMethod QMetaObjectPrivate::firstMethod ( const QMetaObject * baseObject,
QByteArrayView name )
static

Returns the first method with name name found in baseObject

Definition at line 683 of file qmetaobject.cpp.

◆ get()

static const QMetaObjectPrivate * QMetaObjectPrivate::get ( const QMetaObject * metaobject)
inlinestatic

Definition at line 128 of file qmetaobject_p.h.

◆ indexOfConstructor()

int QMetaObjectPrivate::indexOfConstructor ( const QMetaObject * m,
const QByteArray & name,
int argc,
const QArgumentType * types )
static

Definition at line 913 of file qmetaobject.cpp.

◆ indexOfEnumerator() [1/2]

int QMetaObjectPrivate::indexOfEnumerator ( const QMetaObject * m,
QByteArrayView name )
static

Definition at line 1081 of file qmetaobject.cpp.

◆ indexOfEnumerator() [2/2]

int QMetaObjectPrivate::indexOfEnumerator ( const QMetaObject * m,
QByteArrayView name,
Which which )
static

Definition at line 1091 of file qmetaobject.cpp.

References enumeratorCount.

◆ indexOfMethod()

int QMetaObjectPrivate::indexOfMethod ( const QMetaObject * m,
const QByteArray & name,
int argc,
const QArgumentType * types )
static

Definition at line 904 of file qmetaobject.cpp.

◆ indexOfMethodRelative()

template<int MethodType>
int QMetaObjectPrivate::indexOfMethodRelative ( const QMetaObject ** baseObject,
const QByteArray & name,
int argc,
const QArgumentType * types )
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 704 of file qmetaobject.cpp.

◆ indexOfSignal()

int QMetaObjectPrivate::indexOfSignal ( const QMetaObject * m,
const QByteArray & name,
int argc,
const QArgumentType * types )
static

Definition at line 886 of file qmetaobject.cpp.

◆ indexOfSignalRelative()

int QMetaObjectPrivate::indexOfSignalRelative ( const QMetaObject ** baseObject,
const QByteArray & name,
int argc,
const QArgumentType * types )
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 837 of file qmetaobject.cpp.

◆ indexOfSlot()

int QMetaObjectPrivate::indexOfSlot ( const QMetaObject * m,
const QByteArray & name,
int argc,
const QArgumentType * types )
static

Definition at line 895 of file qmetaobject.cpp.

◆ indexOfSlotRelative()

int QMetaObjectPrivate::indexOfSlotRelative ( const QMetaObject ** m,
const QByteArray & name,
int argc,
const QArgumentType * types )
static

Definition at line 879 of file qmetaobject.cpp.

◆ memberIndexes()

void QMetaObjectPrivate::memberIndexes ( const QObject * obj,
const QMetaMethod & member,
int * signalIndex,
int * methodIndex )
static

This helper function calculates signal and method index for the given member in the specified class.

\list

  • If member.mobj is \nullptr then both signalIndex and methodIndex are set to -1.
  • If specified member is not a member of obj instance class (or one of its parent classes) then both signalIndex and methodIndex are set to -1. \endlist

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().

+ Here is the call graph for this function:

◆ methodMatch()

bool QMetaObjectPrivate::methodMatch ( const QMetaObject * m,
const QMetaMethod & method,
const QByteArray & name,
int argc,
const QArgumentType * types )
static

Definition at line 646 of file qmetaobject.cpp.

◆ originalClone()

int QMetaObjectPrivate::originalClone ( const QMetaObject * mobj,
int local_method_index )
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 4488 of file qmetaobject.cpp.

◆ parameterTypeNamesFromSignature()

QList< QByteArray > QMetaObjectPrivate::parameterTypeNamesFromSignature ( const char * signature)
static

Returns the parameter type names extracted from the given signature.

Definition at line 4503 of file qmetaobject.cpp.

◆ signal()

QMetaMethod QMetaObjectPrivate::signal ( const QMetaObject * m,
int signal_index )
static
Since
5.0

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 980 of file qmetaobject.cpp.

◆ signalIndex()

int QMetaObjectPrivate::signalIndex ( const QMetaMethod & m)
static
Since
5.0

Returns the index of the signal method m.

Similar to QMetaMethod::methodIndex(), but non-signal methods are excluded.

Definition at line 964 of file qmetaobject.cpp.

◆ signalOffset()

static int QMetaObjectPrivate::signalOffset ( const QMetaObject * m)
inlinestatic
Since
5.0

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 155 of file qmetaobject_p.h.

References signalCount.

Member Data Documentation

◆ classInfoCount

int QMetaObjectPrivate::classInfoCount

Definition at line 120 of file qmetaobject_p.h.

Referenced by buildMetaObject().

◆ classInfoData

int QMetaObjectPrivate::classInfoData

Definition at line 120 of file qmetaobject_p.h.

Referenced by buildMetaObject().

◆ className

int QMetaObjectPrivate::className

Definition at line 119 of file qmetaobject_p.h.

Referenced by buildMetaObject().

◆ constructorCount

int QMetaObjectPrivate::constructorCount

Definition at line 124 of file qmetaobject_p.h.

Referenced by buildMetaObject().

◆ constructorData

int QMetaObjectPrivate::constructorData

Definition at line 124 of file qmetaobject_p.h.

Referenced by buildMetaObject().

◆ enumeratorCount

int QMetaObjectPrivate::enumeratorCount

Definition at line 123 of file qmetaobject_p.h.

Referenced by buildMetaObject(), and indexOfEnumerator().

◆ enumeratorData

int QMetaObjectPrivate::enumeratorData

Definition at line 123 of file qmetaobject_p.h.

Referenced by buildMetaObject().

◆ flags

int QMetaObjectPrivate::flags

Definition at line 125 of file qmetaobject_p.h.

◆ methodCount

int QMetaObjectPrivate::methodCount

Definition at line 121 of file qmetaobject_p.h.

Referenced by buildMetaObject(), and computeOffsets().

◆ methodData

int QMetaObjectPrivate::methodData

Definition at line 121 of file qmetaobject_p.h.

Referenced by buildMetaObject().

◆ propertyCount

int QMetaObjectPrivate::propertyCount

Definition at line 122 of file qmetaobject_p.h.

Referenced by buildMetaObject().

◆ propertyData

int QMetaObjectPrivate::propertyData

Definition at line 122 of file qmetaobject_p.h.

Referenced by buildMetaObject().

◆ revision

int QMetaObjectPrivate::revision

Definition at line 118 of file qmetaobject_p.h.

Referenced by buildMetaObject(), computeOffsets(), and connect().

◆ signalCount

int QMetaObjectPrivate::signalCount

Definition at line 126 of file qmetaobject_p.h.

Referenced by computeOffsets(), and signalOffset().


The documentation for this struct was generated from the following files: