diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index 0c0311f5cac9c4fb5207f1257de019aa8b6b2d50..0e25eefee80c6c3c34e2649193baaf176be79476 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -160,7 +160,7 @@ void NavigatorView::nodeAboutToBeRemoved(const ModelNode &removedNode) m_treeModel->removeSubTree(removedNode); } -void NavigatorView::nodeReparented(const ModelNode &node, const NodeAbstractProperty & /*newPropertyParent*/, const NodeAbstractProperty & /*oldPropertyParent*/, AbstractView::PropertyChangeFlags /*propertyChange*/) +void NavigatorView::nodeReparented(const ModelNode &node, const NodeAbstractProperty & newPropertyParent, const NodeAbstractProperty & /*oldPropertyParent*/, AbstractView::PropertyChangeFlags /*propertyChange*/) { bool blocked = blockSelectionChangedSignal(true); @@ -172,6 +172,11 @@ void NavigatorView::nodeReparented(const ModelNode &node, const NodeAbstractProp // make sure selection is in sync again updateItemSelection(); + if (newPropertyParent.parentModelNode().isValid()) { + QModelIndex index = m_treeModel->indexForNode(newPropertyParent.parentModelNode()); + treeWidget()->expand(index); + } + blockSelectionChangedSignal(blocked); } @@ -223,6 +228,10 @@ void NavigatorView::nodeOrderChanged(const NodeListProperty &listProperty, const if (node.isInHierarchy()) m_treeModel->addSubTree(listProperty.parentModelNode()); + if (listProperty.parentModelNode().isValid()) { + QModelIndex index = m_treeModel->indexForNode(listProperty.parentModelNode()); + treeWidget()->expand(index); + } } }