void SceneInspector::sceneItemSelectionChanged(const QItemSelection &selection) { QModelIndex index; if (!selection.isEmpty()) index = selection.first().topLeft(); if (index.isValid()) { QGraphicsItem *item = index.data(SceneModel::SceneItemRole).value<QGraphicsItem *>(); QGraphicsObject *obj = item->toGraphicsObject(); if (obj) m_propertyController->setObject(obj); else m_propertyController->setObject(item, QStringLiteral("QGraphicsItem")); emit itemSelected(item->mapRectToScene(item->boundingRect())); } else { m_propertyController->setObject(nullptr); emit sceneChanged(); } }