SceneInspector::SceneInspector(ProbeInterface *probe, QObject *parent) : SceneInspectorInterface(parent), m_propertyController(new PropertyController("com.kdab.GammaRay.SceneInspector", this)), m_clientConnected(false) { Server::instance()->registerMonitorNotifier(Endpoint::instance()->objectAddress(objectName()), this, "clientConnectedChanged"); registerGraphicsViewMetaTypes(); registerVariantHandlers(); connect(probe->probe(), SIGNAL(objectSelected(QObject*,QPoint)), SLOT(objectSelected(QObject*,QPoint))); ObjectTypeFilterProxyModel<QGraphicsScene> *sceneFilterProxy = new ObjectTypeFilterProxyModel<QGraphicsScene>(this); sceneFilterProxy->setSourceModel(probe->objectListModel()); SingleColumnObjectProxyModel *singleColumnProxy = new SingleColumnObjectProxyModel(this); singleColumnProxy->setSourceModel(sceneFilterProxy); probe->registerModel("com.kdab.GammaRay.SceneList", singleColumnProxy); QItemSelectionModel* sceneSelection = ObjectBroker::selectionModel(singleColumnProxy); connect(sceneSelection, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(sceneSelected(QItemSelection))); m_sceneModel = new SceneModel(this); probe->registerModel("com.kdab.GammaRay.SceneGraphModel", m_sceneModel); m_itemSelectionModel = ObjectBroker::selectionModel(m_sceneModel); connect(m_itemSelectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(sceneItemSelected(QItemSelection))); if (singleColumnProxy->rowCount()) { sceneSelection->setCurrentIndex(singleColumnProxy->index(0, 0), QItemSelectionModel::ClearAndSelect); } }