diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp index 1d9f1eec84f..001a5a902c5 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp @@ -138,7 +138,7 @@ void StatesEditorView::createNewState() void StatesEditorView::addState() { // can happen when root node is e.g. a ListModel - if (!QmlItemNode::isValidQmlItemNode(rootModelNode())) + if (!QmlVisualNode::isValidQmlVisualNode(rootModelNode())) return; QStringList modelStateNames = rootStateGroup().names(); @@ -202,8 +202,10 @@ void StatesEditorView::duplicateCurrentState() void StatesEditorView::checkForStatesAvailability() { - if (m_statesEditorWidget) - m_statesEditorWidget->showAddNewStatesButton(rootModelNode().metaInfo().isSubclassOf("QtQuick.Item")); + if (m_statesEditorWidget) { + const bool isVisual = QmlVisualNode::isValidQmlVisualNode(rootModelNode()); + m_statesEditorWidget->showAddNewStatesButton(isVisual); + } } void StatesEditorView::setCurrentState(const QmlModelState &state) diff --git a/src/plugins/qmldesigner/designercore/model/qmlstate.cpp b/src/plugins/qmldesigner/designercore/model/qmlstate.cpp index a4135e3a322..2961951ef88 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlstate.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlstate.cpp @@ -254,7 +254,7 @@ QmlModelState QmlModelState::duplicate(const QString &name) const if (!isValid()) throw new InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); - if (!QmlItemNode::isValidQmlItemNode(modelNode().parentProperty().parentModelNode())) + if (!QmlVisualNode::isValidQmlVisualNode(modelNode().parentProperty().parentModelNode())) throw new InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); // QmlModelState newState(stateGroup().addState(name));