diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quick3dnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quick3dnodeinstance.cpp index 29c3ab3f299..27a52e48a40 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quick3dnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quick3dnodeinstance.cpp @@ -52,6 +52,23 @@ Quick3DNodeInstance::~Quick3DNodeInstance() { } +void Quick3DNodeInstance::initialize(const ObjectNodeInstance::Pointer &objectNodeInstance, + InstanceContainer::NodeFlags flags) +{ + ObjectNodeInstance::initialize(objectNodeInstance, flags); + +#ifdef QUICK3D_MODULE + if (quick3DNode()) { + QQuick3DObject::Type nodeType = quick3DNode()->type(); + if (nodeType == QQuick3DObject::Camera || nodeType == QQuick3DObject::Light + || nodeType == QQuick3DObject::Model || nodeType == QQuick3DObject::Image + || nodeType == QQuick3DObject::Text) { + setPropertyVariant("pickable", true); // allow 3D objects to receive mouse clicks + } + } +#endif +} + Qt5NodeInstanceServer *Quick3DNodeInstance::qt5NodeInstanceServer() const { return qobject_cast(nodeInstanceServer()); diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quick3dnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quick3dnodeinstance.h index 6bfc2a02a19..96c44c4d525 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quick3dnodeinstance.h +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quick3dnodeinstance.h @@ -44,6 +44,8 @@ public: ~Quick3DNodeInstance() override; static Pointer create(QObject *objectToBeWrapped); void setHideInEditor(bool b) override; + void initialize(const ObjectNodeInstance::Pointer &objectNodeInstance, + InstanceContainer::NodeFlags flags) override; protected: explicit Quick3DNodeInstance(QObject *node);