forked from qt-creator/qt-creator
QmlDesigner: Fix states for QmlVisualNode
Adding, removing and editing states does now work for all QmlVisualNodes and is not restricted to QmlItemNode anymore. This makes using states possible for scenes that have a QtQuick3D.Node as root object. Change-Id: I51fb17434e7e663823c8c8962e683634324d86d0 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -138,7 +138,7 @@ void StatesEditorView::createNewState()
|
|||||||
void StatesEditorView::addState()
|
void StatesEditorView::addState()
|
||||||
{
|
{
|
||||||
// can happen when root node is e.g. a ListModel
|
// can happen when root node is e.g. a ListModel
|
||||||
if (!QmlItemNode::isValidQmlItemNode(rootModelNode()))
|
if (!QmlVisualNode::isValidQmlVisualNode(rootModelNode()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QStringList modelStateNames = rootStateGroup().names();
|
QStringList modelStateNames = rootStateGroup().names();
|
||||||
@@ -202,8 +202,10 @@ void StatesEditorView::duplicateCurrentState()
|
|||||||
|
|
||||||
void StatesEditorView::checkForStatesAvailability()
|
void StatesEditorView::checkForStatesAvailability()
|
||||||
{
|
{
|
||||||
if (m_statesEditorWidget)
|
if (m_statesEditorWidget) {
|
||||||
m_statesEditorWidget->showAddNewStatesButton(rootModelNode().metaInfo().isSubclassOf("QtQuick.Item"));
|
const bool isVisual = QmlVisualNode::isValidQmlVisualNode(rootModelNode());
|
||||||
|
m_statesEditorWidget->showAddNewStatesButton(isVisual);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatesEditorView::setCurrentState(const QmlModelState &state)
|
void StatesEditorView::setCurrentState(const QmlModelState &state)
|
||||||
|
@@ -254,7 +254,7 @@ QmlModelState QmlModelState::duplicate(const QString &name) const
|
|||||||
if (!isValid())
|
if (!isValid())
|
||||||
throw new InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__);
|
throw new InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__);
|
||||||
|
|
||||||
if (!QmlItemNode::isValidQmlItemNode(modelNode().parentProperty().parentModelNode()))
|
if (!QmlVisualNode::isValidQmlVisualNode(modelNode().parentProperty().parentModelNode()))
|
||||||
throw new InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__);
|
throw new InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__);
|
||||||
|
|
||||||
// QmlModelState newState(stateGroup().addState(name));
|
// QmlModelState newState(stateGroup().addState(name));
|
||||||
|
Reference in New Issue
Block a user