GammaRay API Documentation  2.11.0
Typedefs | Functions
GammaRay::ObjectBroker Namespace Reference

Retrieve/expose objects independent of whether using in-process or out-of-process UI. More...

Typedefs

typedef QObject *(* ClientObjectFactoryCallback) (const QString &, QObject *parent)
 
typedef QAbstractItemModel *(* ModelFactoryCallback) (const QString &)
 
typedef QItemSelectionModel *(* selectionModelFactoryCallback) (QAbstractItemModel *)
 

Functions

void clear ()
 Clear all registered objects. More...
 
bool hasObject (const QString &name)
 Checks whether an object with the given name is registered already. More...
 
bool hasSelectionModel (QAbstractItemModel *model)
 Checks whether a selection model for the given model is registered already. More...
 
QAbstractItemModelmodel (const QString &name)
 Retrieve a model by name. More...
 
template<class T >
object (const QString &name, T=nullptr)
 Retrieve an object by name implementing interface T. More...
 
template<class T >
object (T=nullptr)
 Retrieve object implementing interface T. More...
 
QObjectobjectInternal (const QString &name, const QByteArray &type=QByteArray())
 Retrieve object by name. More...
 
template<class T >
void registerClientObjectFactoryCallback (ClientObjectFactoryCallback callback, T=nullptr)
 Register a callback for a factory of a given interface to create remote object stubs for the given type. More...
 
void registerClientObjectFactoryCallbackInternal (const QByteArray &type, ClientObjectFactoryCallback callback)
 Register a callback for a factory to create remote object stubs for the given type. More...
 
void registerModelInternal (const QString &name, QAbstractItemModel *model)
 Register a newly created model with the given name. More...
 
void registerObject (const QString &name, QObject *object)
 Register a newly created QObject under the given name. More...
 
template<class T >
void registerObject (QObject *object)
 
void registerSelectionModel (QItemSelectionModel *selectionModel)
 Register a newly created selection model. More...
 
QItemSelectionModelselectionModel (QAbstractItemModel *model)
 Retrieve the selection model for model. More...
 
void setModelFactoryCallback (ModelFactoryCallback callback)
 Set a callback for the case that a model was requested but had not been registered before. More...
 
void setSelectionModelFactoryCallback (selectionModelFactoryCallback callback)
 Set a callback for the case that a selection model was requested but had not been registered before. More...
 
void unregisterSelectionModel (QItemSelectionModel *selectionModel)
 Unregisters a selection model. More...
 

Detailed Description

Retrieve/expose objects independent of whether using in-process or out-of-process UI.

Function Documentation

void GammaRay::ObjectBroker::clear ( )

Clear all registered objects.

This also destroys all objects created by factory methods registered here, but not externally created objects that have just been registered here. Useful when the probe is deleted, or the client lost the connection.

bool GammaRay::ObjectBroker::hasObject ( const QString name)

Checks whether an object with the given name is registered already.

bool GammaRay::ObjectBroker::hasSelectionModel ( QAbstractItemModel model)

Checks whether a selection model for the given model is registered already.

QAbstractItemModel* GammaRay::ObjectBroker::model ( const QString name)

Retrieve a model by name.

template<class T >
T GammaRay::ObjectBroker::object ( const QString name,
= nullptr 
)

Retrieve an object by name implementing interface T.

Use this if multiple objects of the given type have been registered. Otherwise the function below is simpler and more failsafe.

Note
The "T = nullptr" is just to ensure a pointer type is given.
template<class T >
T GammaRay::ObjectBroker::object ( = nullptr)

Retrieve object implementing interface T.

This only works if a single type was registered implementing this interface using qobject_interface_iid as object name.

In most cases this is the simplest way for tools to get an object.

Note
The "T = nullptr" is just to ensure a pointer type is given.
QObject* GammaRay::ObjectBroker::objectInternal ( const QString name,
const QByteArray type = QByteArray() 
)

Retrieve object by name.

template<class T >
void GammaRay::ObjectBroker::registerClientObjectFactoryCallback ( ClientObjectFactoryCallback  callback,
= nullptr 
)

Register a callback for a factory of a given interface to create remote object stubs for the given type.

Note
The "T = nullptr" is just to ensure a pointer type is given.
void GammaRay::ObjectBroker::registerClientObjectFactoryCallbackInternal ( const QByteArray type,
ClientObjectFactoryCallback  callback 
)

Register a callback for a factory to create remote object stubs for the given type.

void GammaRay::ObjectBroker::registerModelInternal ( const QString name,
QAbstractItemModel model 
)

Register a newly created model with the given name.

Note
This must not be called directly by anything but the probe/server side. User code must use Probe::registerModel() instead!
void GammaRay::ObjectBroker::registerObject ( const QString name,
QObject object 
)

Register a newly created QObject under the given name.

void GammaRay::ObjectBroker::registerSelectionModel ( QItemSelectionModel selectionModel)

Register a newly created selection model.

QItemSelectionModel* GammaRay::ObjectBroker::selectionModel ( QAbstractItemModel model)

Retrieve the selection model for model.

void GammaRay::ObjectBroker::setModelFactoryCallback ( ModelFactoryCallback  callback)

Set a callback for the case that a model was requested but had not been registered before.

void GammaRay::ObjectBroker::setSelectionModelFactoryCallback ( selectionModelFactoryCallback  callback)

Set a callback for the case that a selection model was requested but had not been registered before.

void GammaRay::ObjectBroker::unregisterSelectionModel ( QItemSelectionModel selectionModel)

Unregisters a selection model.

You have to take care of deletion yourself.


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