QString Helper::getId(QQmlApplicationEngine *engine, QObject *obj) { QQmlContext *context = engine->contextForObject(obj); if (!context) { return ""; } return context->nameForObject(obj); }
/*! Traverse QObject based items. */ void SceneGraphTraverse::traverseObject(TasObject* objectInfo, QObject* object, TasCommand* command) { Q_UNUSED(command); QQuickItem* item = qobject_cast<QQuickItem*>(object); if (item) { QQmlContext* context = QQmlEngine::contextForObject(object); if (context) { QString name = context->nameForObject(object); objectInfo->addAttribute("QML_ID", name); } #ifdef USE_QTQML_PRIVATE_HEADERS addTypeInfo(item, objectInfo); #endif mTraverseUtils->addObjectDetails(objectInfo, object); objectInfo->addAttribute("objectType", TYPE_QSCENEGRAPH); QPointF point = item->mapToScene(QPoint()); // needed for visualizer objectInfo->addAttribute("x", (int)point.x()); objectInfo->addAttribute("y", (int)point.y()); objectInfo->addAttribute("x_absolute", (int)point.x()); objectInfo->addAttribute("y_absolute", (int)point.y()); objectInfo->addAttribute("x_relative", item->x()); objectInfo->addAttribute("y_relative", item->y()); // TODO already included? objectInfo->addAttribute("width", item->width()); objectInfo->addAttribute("height", item->height()); } }