GammaRay API Documentation  2.7.0
Classes | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
GammaRay::Probe Class Reference
Inheritance diagram for GammaRay::Probe:
Inheritance graph
[legend]

Signals

void nonQObjectSelected (void *object, const QString &typeName)
 
void objectCreated (QObject *obj)
 
void objectDestroyed (QObject *obj)
 
void objectReparented (QObject *obj)
 
void objectSelected (QObject *object, const QPoint &pos)
 

Public Member Functions

void discoverObject (QObject *object) override
 
bool filterObject (QObject *obj) const override
 
void installGlobalEventFilter (QObject *filter) override
 
bool isValidObject (QObject *obj) const
 
bool needsObjectDiscovery () const override
 
QAbstractItemModelobjectListModel () const override
 
QAbstractItemModelobjectTreeModel () const override
 
QObjectprobe () const override
 
void registerModel (const QString &objectName, QAbstractItemModel *model) override
 
void registerSignalSpyCallbackSet (const SignalSpyCallbackSet &callbacks) override
 
void selectObject (QObject *object, const QPoint &pos=QPoint()) override
 
void selectObject (QObject *object, const QString &toolId, const QPoint &pos=QPoint()) override
 
void selectObject (void *object, const QString &typeName) override
 
void setWindow (QObject *window)
 
QObjectwindow () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectList & children () const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const
 
bool disconnect (const QObject *receiver, const char *method) const
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArraydynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
findChild (const QString &name, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const
 
bool inherits (const char *className) const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const
 
bool isWindowType () const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const
 
QVariant property (const char *name) const
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval, Qt::TimerType timerType)
 
QThreadthread () const
 

Static Public Member Functions

template<typename Func >
static void executeSignalCallback (const Func &func)
 
static Probeinstance ()
 
static bool isInitialized ()
 
static void objectAdded (QObject *obj, bool fromCtor=false)
 
static QMutexobjectLock ()
 
static void objectRemoved (QObject *obj)
 
static void startupHookReceived ()
 internal
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 

Protected Member Functions

bool eventFilter (QObject *receiver, QEvent *event) override
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const
 
int receivers (const char *signal) const
 
QObjectsender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Additional Inherited Members

- Properties inherited from QObject
 objectName
 

Member Function Documentation

void GammaRay::Probe::discoverObject ( QObject object)
overridevirtual

Notify the probe about QObjects your plug-in can discover by using information about the types it can handle. Only use this if needsObjectDiscovery() returns true to maximise performance.

See also
needsObjectDiscovery()
Since
2.0

Implements GammaRay::ProbeInterface.

bool GammaRay::Probe::filterObject ( QObject object) const
overridevirtual

Determines if the specified QObject belongs to the GammaRay Probe or Window.

These objects should not be tracked or shown to the user, hence must be explictly filtered.

Parameters
objectis a pointer to a QObject instance.
Returns
true if the specified QObject belongs to the GammaRay Probe or Window; false otherwise.

Implements GammaRay::ProbeInterface.

void GammaRay::Probe::installGlobalEventFilter ( QObject filter)
overridevirtual

Install a global event filter. Use this rather than installing the filter manually on QCoreApplication, this will filter out GammaRay-internal events and objects already for you.

Implements GammaRay::ProbeInterface.

static Probe* GammaRay::Probe::instance ( )
static

NOTE: You must hold the object lock when operating on the instance!

static bool GammaRay::Probe::isInitialized ( )
static

Returns true if the probe is initialized, false otherwise.

bool GammaRay::Probe::isValidObject ( QObject obj) const

check whether obj is still valid

NOTE: the objectLock must be locked when this is called!

bool GammaRay::Probe::needsObjectDiscovery ( ) const
overridevirtual

Returns true if we haven't been able to track all objects from startup, ie. usually when attaching at runtime. If this is the case, we try to discover QObjects by walking the hierarchy, starting from known singletons, and by watching out for unknown receivers of events. This is far from complete obviously, and plug-ins can help finding more objects, using specific knowledge about the types they are responsible for.

Connect to the objectAdded(QObject*) signal on probe(), and call discoverObject(QObject*) for "your" objects.

Since
2.5

Implements GammaRay::ProbeInterface.

void GammaRay::Probe::objectCreated ( QObject obj)
signal

Emitted for newly created QObjects.

Note:

  • This signal is always emitted from the thread the probe exists in.
  • The signal is emitted delayed enough for the QObject to have been fully constructed, i.e. on the next event loop re-entry.
  • The signal is not emitted if the object has been destroyed completely again meanwhile, e.g. for objects that only existed on the stack.
  • For objects created and destroyed in other threads, this signal might be emitted after its dtor has been entered (in case of short-lived objects), but before it has been finished. At this point the dtor might have already emitted the destroyed() signal and informed smart pointers about the destruction. This means you must not rely on any of this for object lifetime tracking for objects from other threads. Use objectDestroyed() instead.
  • Do not put obj into a QWeakPointer, even if it's exclusively handled in the same thread as the Probe instance. Qt4 asserts if target code tries to put obj into a QSharedPointer afterwards.
  • The objectLock() is locked.
void GammaRay::Probe::objectDestroyed ( QObject obj)
signal

Emitted for destroyed objects.

Note:

  • This signal is emitted from the thread the probe exists in.
  • The signal is emitted from the end of the QObject dtor, dereferencing obj is no longer safe at this point.
  • In a multi-threaded application, this signal might reach you way after obj has been destroyed, see isValidObject() for a way to check if the object is still valid before accessing it.
  • The objectLock() is locked.
QAbstractItemModel* GammaRay::Probe::objectListModel ( ) const
overridevirtual

Returns the object list model.

Returns
a pointer to a QAbstractItemModel instance.

Implements GammaRay::ProbeInterface.

static QMutex* GammaRay::Probe::objectLock ( )
static

Lock this to check the validity of a QObject and to access it safely afterwards.

void GammaRay::Probe::objectSelected ( QObject object,
const QPoint pos 
)
signal

Emitted when the user selected object at position pos in the probed application.

QAbstractItemModel* GammaRay::Probe::objectTreeModel ( ) const
overridevirtual

Returns the object tree model.

Returns
a pointer to a QAbstractItemModel instance.

Implements GammaRay::ProbeInterface.

QObject* GammaRay::Probe::probe ( ) const
overridevirtual

Returns the probe QObject for connecting signals.

Returns
a pointer to a QObject instance.

Implements GammaRay::ProbeInterface.

void GammaRay::Probe::registerModel ( const QString objectName,
QAbstractItemModel model 
)
overridevirtual

Register a model for remote usage.

Parameters
objectNameunique identifier for the model, typically in reverse domain notation.

Implements GammaRay::ProbeInterface.

void GammaRay::Probe::registerSignalSpyCallbackSet ( const SignalSpyCallbackSet callbacks)
overridevirtual

Register a signal spy callback set. Signal indexes provided as arguments are mapped to method indexes, ie. argument semantics are the same with Qt4 and Qt5.

Since
2.2

Implements GammaRay::ProbeInterface.

void GammaRay::Probe::selectObject ( QObject object,
const QPoint pos = QPoint() 
)
overridevirtual

Notify the probe about the user selecting one of "your" objects via in-app interaction. If you know the exact position the user interacted with, pass that in as pos.

Since
2.0

Implements GammaRay::ProbeInterface.

void GammaRay::Probe::selectObject ( void *  object,
const QString typeName 
)
overridevirtual

Notify the probe about the user selecting one of "your" objects.

Since
2.1

Implements GammaRay::ProbeInterface.


Klarälvdalens Datakonsult AB (KDAB)
"The Qt Experts"
https://www.kdab.com/
GammaRay
Qt-application inspection and manipulation tool
https://www.kdab.com/gammaray/