diff options
author | Lars Knoll <lars.knoll@qt.io> | 2019-05-16 09:28:55 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2019-10-07 20:40:51 +0200 |
commit | 4c571032f8763c55526a3d9f6bcb8e1336766bd9 (patch) | |
tree | 39d4d604b71b48aeb8e1bde08c27f0ded0ec9781 /src/corelib/kernel | |
parent | 1acc4448c24784dbf824c78acb862240f938d47a (diff) |
Add support for slots to receive the raw void ** arguments array
This is currently being used by dbus und our state machine framework,
and supported by hand editing moc generated code.
Get rid of that hack, and instead add support to moc to forward
the raw arguments array to the slot.
Change-Id: I0e36626f91eb01041464e6d931dc1d4660de91d2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qmetaobject.cpp | 15 | ||||
-rw-r--r-- | src/corelib/kernel/qobjectdefs.h | 4 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 5cb30a74ac..a8e8866339 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -3655,6 +3655,21 @@ const char* QMetaClassInfo::value() const } /*! + \class QMethodRawArguments + \internal + + A wrapper class for the void ** arguments array used by the meta + object system. If a slot uses a single argument of this type, + the meta object system will pass the raw arguments array directly + to the slot and set the arguments count in the slot description to + zero, so that any signal can connect to it. + + This is used internally to implement signal relay functionality in + our state machine and dbus. +*/ + + +/*! \macro QGenericArgument Q_ARG(Type, const Type &value) \relates QMetaObject diff --git a/src/corelib/kernel/qobjectdefs.h b/src/corelib/kernel/qobjectdefs.h index dc2d832fe5..9f654b0318 100644 --- a/src/corelib/kernel/qobjectdefs.h +++ b/src/corelib/kernel/qobjectdefs.h @@ -285,6 +285,10 @@ class QMetaEnum; class QMetaProperty; class QMetaClassInfo; +struct QMethodRawArguments +{ + void **arguments; +}; class Q_CORE_EXPORT QGenericArgument { |