![]() |
Qt 6.x
The Qt SDK
|
#include "qobject.h"
#include "qobject_p.h"
#include "qobject_p_p.h"
#include "qmetaobject_p.h"
#include "qabstracteventdispatcher.h"
#include "qabstracteventdispatcher_p.h"
#include "qcoreapplication.h"
#include "qcoreapplication_p.h"
#include "qcoreevent_p.h"
#include "qloggingcategory.h"
#include "qvariant.h"
#include "qmetaobject.h"
#include <qthread.h>
#include <private/qthread_p.h>
#include <qdebug.h>
#include <qpair.h>
#include <qvarlengtharray.h>
#include <qscopeguard.h>
#include <qset.h>
#include <private/qorderedmutexlocker_p.h>
#include <private/qhooks_p.h>
#include <qtcore_tracepoints_p.h>
#include <new>
#include <mutex>
#include <memory>
#include <ctype.h>
#include <limits.h>
#include "moc_qobject.cpp"
Go to the source code of this file.
Classes | |
struct | SlotObjectGuard |
Functions | |
QT_BEGIN_NAMESPACE | Q_TRACE_POINT (qtcore, QObject_ctor, QObject *object) |
Q_TRACE_POINT (qtcore, QObject_dtor, QObject *object) | |
Q_TRACE_POINT (qtcore, QMetaObject_activate_entry, QObject *sender, int signalIndex) | |
Q_TRACE_POINT (qtcore, QMetaObject_activate_exit) | |
Q_TRACE_POINT (qtcore, QMetaObject_activate_slot_entry, QObject *receiver, int slotIndex) | |
Q_TRACE_POINT (qtcore, QMetaObject_activate_slot_exit) | |
Q_TRACE_POINT (qtcore, QMetaObject_activate_slot_functor_entry, void *slotObject) | |
Q_TRACE_POINT (qtcore, QMetaObject_activate_slot_functor_exit) | |
Q_TRACE_POINT (qtcore, QMetaObject_activate_declarative_signal_entry, QObject *sender, int signalIndex) | |
Q_TRACE_POINT (qtcore, QMetaObject_activate_declarative_signal_exit) | |
void | qt_register_signal_spy_callbacks (QSignalSpyCallbackSet *callback_set) |
static int * | queuedConnectionTypes (const QMetaMethod &method) |
static int * | queuedConnectionTypes (const QArgumentType *argumentTypes, int argc) |
static QBasicMutex * | signalSlotLock (const QObject *o) |
static void | computeOffsets (const QMetaObject *metaobject, int *signalOffset, int *methodOffset) |
static bool | check_parent_thread (QObject *parent, QThreadData *parentThreadData, QThreadData *currentThreadData) |
static void | qt_qFindChildren_with_name (const QObject *parent, const QString &name, const QMetaObject &mo, QList< void * > *list, Qt::FindChildOptions options) |
void | qt_qFindChildren_helper (const QObject *parent, const QString &name, const QMetaObject &mo, QList< void * > *list, Qt::FindChildOptions options) |
void | qt_qFindChildren_helper (const QObject *parent, const QMetaObject &mo, QList< void * > *list, Qt::FindChildOptions options) |
QObject * | qt_qFindChild_helper (const QObject *parent, const QString &name, const QMetaObject &mo, Qt::FindChildOptions options) |
const char * | qFlagLocation (const char *method) |
static int | extract_code (const char *member) |
static const char * | extract_location (const char *member) |
static bool | check_signal_macro (const QObject *sender, const char *signal, const char *func, const char *op) |
static bool | check_method_code (int code, const QObject *object, const char *method, const char *func) |
static Q_DECL_COLD_FUNCTION void | err_method_notfound (const QObject *object, const char *method, const char *func) |
static Q_DECL_COLD_FUNCTION void | err_info_about_objects (const char *func, const QObject *sender, const QObject *receiver) |
static void | check_and_warn_compat (const QMetaObject *sender, const QMetaMethod &signal, const QMetaObject *receiver, const QMetaMethod &method) |
static int | methodIndexToSignalIndex (const QMetaObject **base, int signal_index) |
static QByteArray | formatConnectionSignature (const char *className, const QMetaMethod &method) |
static QByteArray | msgConnect (const QMetaObject *senderMo, const QByteArray &senderName, const QMetaMethod &signal, const QObject *receiver, int receiverIndex) |
static void | queued_activate (QObject *sender, int signal, QObjectPrivate::Connection *c, void **argv) |
template<bool callbacks_enabled> | |
void | doActivate (QObject *sender, int signal_index, void **argv) |
static void | dumpRecursive (int level, const QObject *object) |
QDebug | operator<< (QDebug dbg, const QObject *o) |
void | qDeleteInEventHandler (QObject *o) |
static void | connectWarning (const QObject *sender, const QMetaObject *senderMetaObject, const QObject *receiver, const char *message) |
Variables | |
static int | DIRECT_CONNECTION_ONLY = 0 |
Q_CORE_EXPORT QBasicAtomicPointer< QSignalSpyCallbackSet > | qt_signal_spy_callback_set = Q_BASIC_ATOMIC_INITIALIZER(nullptr) |
static Q_CONSTINIT QBasicMutex | _q_ObjectMutexPool [131] |
|
inlinestatic |
Definition at line 2736 of file qobject.cpp.
References QMetaObject::className(), QMetaMethod::Compatibility, method, qCWarning, QMetaMethod::Signal, and signal.
Referenced by QObject::connect(), and QObject::connect().
|
static |
Definition at line 2458 of file qobject.cpp.
References method, qCWarning, QSIGNAL_CODE, and QSLOT_CODE.
Referenced by QObject::connect(), and QObject::disconnect().
|
static |
Definition at line 875 of file qobject.cpp.
References QBasicAtomicPointer< X >::loadAcquire(), parent, qWarning, and QThreadData::thread.
Referenced by QObject::QObject().
|
static |
Definition at line 2442 of file qobject.cpp.
References extract_code(), qCWarning, QSIGNAL_CODE, QSLOT_CODE, and signal.
Referenced by QObject::connect(), QObject::disconnect(), and QObject::receivers().
|
static |
For a given metaobject, compute the signal offset, and the method offset (including signals)
Definition at line 216 of file qobject.cpp.
References d, QMetaObject::d, QMetaObjectPrivate::get(), Q_ASSERT, and QMetaObject::Data::superdata.
Referenced by QMetaObjectPrivate::memberIndexes(), and methodIndexToSignalIndex().
|
static |
Definition at line 5070 of file qobject.cpp.
References QMetaObject::className(), and qCWarning.
Referenced by QObjectPrivate::connectImpl().
void doActivate | ( | QObject * | sender, |
int | signal_index, | ||
void ** | argv | ||
) |
Definition at line 3857 of file qobject.cpp.
References QSemaphore::acquire(), QObjectPrivate::SignalVector::at(), Qt::AutoConnection, Qt::BlockingQueuedConnection, QObjectPrivate::connections, QThread::currentThreadId(), QList< T >::first(), QObjectPrivate::get(), QMetaObject::InvokeMetaMethod, list, QBasicAtomicPointer< X >::loadRelaxed(), lock, QMetaObject::metacall(), method, QCoreApplication::postEvent(), Q_ASSERT, Q_HAS_TRACEPOINTS, Q_TRACE_SCOPE, qt_signal_spy_callback_set, queued_activate(), Qt::QueuedConnection, qWarning, QObjectPrivate::removeConnection(), QSignalSpyCallbackSet::signal_begin_callback, QSignalSpyCallbackSet::signal_end_callback, QAbstractDeclarativeData::signalEmitted, signalSlotLock(), QSignalSpyCallbackSet::slot_begin_callback, QSignalSpyCallbackSet::slot_end_callback, sp, QObjectPrivate::threadData, and QThreadData::threadId.
Definition at line 4233 of file qobject.cpp.
References child, dumpRecursive(), QObjectPrivate::flagsForDumping(), QObjectPrivate::get(), qDebug, and qUtf16Printable.
Referenced by QObject::dumpObjectTree(), and dumpRecursive().
|
static |
Definition at line 2489 of file qobject.cpp.
References QObject::objectName, and qCWarning.
Referenced by QObject::connect(), and QObject::disconnect().
|
static |
Definition at line 2471 of file qobject.cpp.
References extract_code(), extract_location(), method, qCWarning, QSIGNAL_CODE, and QSLOT_CODE.
Referenced by QObject::connect(), QObject::disconnect(), and QObject::receivers().
|
static |
Definition at line 2425 of file qobject.cpp.
Referenced by check_signal_macro(), QObject::connect(), QObject::disconnect(), and err_method_notfound().
|
static |
Definition at line 2431 of file qobject.cpp.
References qstrlen().
Referenced by err_method_notfound().
|
static |
Definition at line 3621 of file qobject.cpp.
References className, method, Q_ASSERT, and QByteArrayLiteral.
Referenced by msgConnect().
|
static |
Definition at line 3391 of file qobject.cpp.
References base, computeOffsets(), QObjectData::metaObject, and QMetaObjectPrivate::originalClone().
Referenced by QMetaObject::connect(), QObjectPrivate::connect(), QMetaObject::disconnect(), QObjectPrivate::disconnect(), QMetaObject::disconnectOne(), and QObjectPrivate::getPropertyAdaptorSlotObject().
|
static |
Definition at line 3639 of file qobject.cpp.
References QMetaObject::className(), formatConnectionSignature(), QObject::objectName, QByteArrayLiteral, signal, and QString::toLatin1().
Referenced by QMetaObject::connectSlotsByName().
Definition at line 4336 of file qobject.cpp.
References o.
Q_TRACE_POINT | ( | qtcore | , |
QMetaObject_activate_declarative_signal_entry | , | ||
QObject * | sender, | ||
int | signalIndex | ||
) |
Q_TRACE_POINT | ( | qtcore | , |
QMetaObject_activate_declarative_signal_exit | |||
) |
Q_TRACE_POINT | ( | qtcore | , |
QMetaObject_activate_entry | , | ||
QObject * | sender, | ||
int | signalIndex | ||
) |
Q_TRACE_POINT | ( | qtcore | , |
QMetaObject_activate_exit | |||
) |
Q_TRACE_POINT | ( | qtcore | , |
QMetaObject_activate_slot_entry | , | ||
QObject * | receiver, | ||
int | slotIndex | ||
) |
Q_TRACE_POINT | ( | qtcore | , |
QMetaObject_activate_slot_exit | |||
) |
Q_TRACE_POINT | ( | qtcore | , |
QMetaObject_activate_slot_functor_entry | , | ||
void * | slotObject | ||
) |
Q_TRACE_POINT | ( | qtcore | , |
QMetaObject_activate_slot_functor_exit | |||
) |
QT_BEGIN_NAMESPACE Q_TRACE_POINT | ( | qtcore | , |
QObject_ctor | , | ||
QObject * | object | ||
) |
Q_TRACE_POINT | ( | qtcore | , |
QObject_dtor | , | ||
QObject * | object | ||
) |
Definition at line 4876 of file qobject.cpp.
References o.
Referenced by QStatusBar::clearMessage(), QNativeSocketEngine::close(), QObject::event(), QWhatsThis::hideText(), and QSingleShotTimer::timerEvent().
const char * qFlagLocation | ( | const char * | method | ) |
Definition at line 2419 of file qobject.cpp.
References method.
QObject * qt_qFindChild_helper | ( | const QObject * | parent, |
const QString & | name, | ||
const QMetaObject & | mo, | ||
Qt::FindChildOptions | options | ||
) |
Definition at line 2121 of file qobject.cpp.
References child, QObject::children(), Qt::FindChildrenRecursively, mo, QObjectData::parent, Q_ASSERT, and qt_qFindChild_helper().
Referenced by QObject::findChild(), and qt_qFindChild_helper().
void qt_qFindChildren_helper | ( | const QObject * | parent, |
const QMetaObject & | mo, | ||
QList< void * > * | list, | ||
Qt::FindChildOptions | options | ||
) |
Definition at line 2084 of file qobject.cpp.
References QList< T >::append(), QObject::children(), Qt::FindChildrenRecursively, list, mo, QObjectData::parent, Q_ASSERT, and qt_qFindChildren_helper().
void qt_qFindChildren_helper | ( | const QObject * | parent, |
const QString & | name, | ||
const QMetaObject & | mo, | ||
QList< void * > * | list, | ||
Qt::FindChildOptions | options | ||
) |
Definition at line 2072 of file qobject.cpp.
References list, mo, QObjectData::parent, qt_qFindChildren_helper(), and qt_qFindChildren_with_name().
Referenced by QObject::findChildren(), QObject::findChildren(), qt_qFindChildren_helper(), and qt_qFindChildren_helper().
|
static |
Definition at line 2054 of file qobject.cpp.
References QList< T >::append(), QObject::children(), Qt::FindChildrenRecursively, list, mo, QObjectData::parent, Q_ASSERT, and qt_qFindChildren_with_name().
Referenced by qt_qFindChildren_helper(), and qt_qFindChildren_with_name().
void qt_register_signal_spy_callbacks | ( | QSignalSpyCallbackSet * | callback_set | ) |
Definition at line 64 of file qobject.cpp.
References qt_signal_spy_callback_set.
Referenced by QSignalDumper::endDump(), and QSignalDumper::startDump().
|
static |
signal must be in the signal index range (see QObjectPrivate::signalIndex()).
Definition at line 3792 of file qobject.cpp.
References QMetaCallEvent::args(), args, create(), DIRECT_CONNECTION_ONLY, QCoreApplication::postEvent(), queuedConnectionTypes(), QMutexLocker< Mutex >::relock(), QObjectPrivate::removeConnection(), QMetaObjectPrivate::signal(), signal, signalSlotLock(), QMetaCallEvent::types(), and QMutexLocker< Mutex >::unlock().
Referenced by doActivate().
|
static |
Definition at line 105 of file qobject.cpp.
References QMetaType::fromName(), i, QMetaType::id(), qCWarning, and QArgumentType::type().
|
static |
Definition at line 77 of file qobject.cpp.
References QMetaType::flags(), i, QMetaType::id(), QMetaType::IsPointer, method, Q_CHECK_PTR(), qCWarning, and typeName.
Referenced by QObject::connect(), QObject::connect(), and queued_activate().
|
inlinestatic |
mutex to be locked when accessing the connection lists or the senders list
Definition at line 136 of file qobject.cpp.
References _q_ObjectMutexPool, and o.
Referenced by QObject::~QObject(), QObjectPrivate::ConnectionData::cleanOrphanedConnectionsImpl(), QMetaObjectPrivate::connect(), QObjectPrivate::connectImpl(), QMetaObjectPrivate::disconnect(), QMetaObjectPrivate::disconnectHelper(), doActivate(), QObject::dumpObjectInfo(), QObject::event(), QObjectPrivate::isSender(), QObject::isSignalConnected(), QObject::moveToThread(), queued_activate(), QObject::receivers(), QObjectPrivate::removeConnection(), QObject::sender(), QObjectPrivate::senderList(), and QObject::senderSignalIndex().
|
static |
Definition at line 130 of file qobject.cpp.
Referenced by signalSlotLock().
|
static |
Definition at line 57 of file qobject.cpp.
Referenced by QObjectPrivate::Connection::~Connection(), and queued_activate().
Q_CORE_EXPORT QBasicAtomicPointer<QSignalSpyCallbackSet> qt_signal_spy_callback_set = Q_BASIC_ATOMIC_INITIALIZER(nullptr) |
Definition at line 62 of file qobject.cpp.
Referenced by QMetaObject::activate(), QMetaObject::activate(), doActivate(), and qt_register_signal_spy_callbacks().