From 03aa367276a8bb88ea2845e478ffb681504e95a4 Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
Date: Wed, 15 Jul 2015 17:28:18 +0200
Subject: [PATCH] QmlDesigner: Fix for the navigator

If we update a subtree, because a node was moved or reparented, we
have to expand this subtree.

Change-Id: I7f8f004b649a695dddddde4dbec5af19c700d109
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
---
 .../components/navigator/navigatorview.cpp            | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp
index 0c0311f5ca..0e25eefee8 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);
+        }
     }
 }
 
-- 
GitLab