diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp index 75dffde67f3c5db26499ccf91054d0b9baf4a732..697ee77ac85fc2ebc4613db151f6e3e2e4863046 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp @@ -42,10 +42,24 @@ namespace QmlDesigner { +namespace { + +bool isItemOrWindow(const ModelNode &modelNode) +{ + if (modelNode.metaInfo().isSubclassOf("QtQuick.Item", -1, -1)) + return true; + + if (modelNode.metaInfo().isSubclassOf("QtQuick.Window.Window", -1, -1) && modelNode.isRootNode()) + return true; + + return false; +} + +} bool QmlItemNode::isValid() const { - return QmlModelNodeFacade::isValid() && modelNode().metaInfo().isValid() && modelNode().metaInfo().isSubclassOf("QtQuick.Item", -1, -1); + return QmlModelNodeFacade::isValid() && modelNode().metaInfo().isValid() && isItemOrWindow(modelNode()); } bool QmlItemNode::isRootNode() const