From f0a6a0abb8500b0ea62873890f239da3923f9d3e Mon Sep 17 00:00:00 2001
From: Marco Bubke <marco.bubke@nokia.com>
Date: Wed, 26 May 2010 18:05:49 +0200
Subject: [PATCH] Do reparenting only with the control modifier hold

The isContainer flag is now ignored.

Reviewed-by: kkoehne
---
 .../components/formeditor/itemcreatortool.cpp      |  2 +-
 .../qmldesigner/components/formeditor/movetool.cpp | 14 ++++++--------
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp
index 0237c40ded1..9385ef83b73 100644
--- a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp
@@ -148,7 +148,7 @@ FormEditorItem* ItemCreatorTool::calculateContainer(const QPointF &point)
     QList<QGraphicsItem *> list = scene()->items(point);
     foreach (QGraphicsItem *item, list) {
          FormEditorItem *formEditorItem = FormEditorItem::fromQGraphicsItem(item);
-         if (formEditorItem && formEditorItem->isContainer())
+         if (formEditorItem)
              return formEditorItem;
     }
     return 0;
diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.cpp b/src/plugins/qmldesigner/components/formeditor/movetool.cpp
index 653c53bd93a..5d2aef73b25 100644
--- a/src/plugins/qmldesigner/components/formeditor/movetool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/movetool.cpp
@@ -90,12 +90,12 @@ void MoveTool::mouseMoveEvent(const QList<QGraphicsItem*> &itemList,
     m_resizeIndicator.hide();
 
     FormEditorItem *containerItem = containerFormEditorItem(itemList, m_movingItems);
-    if (containerItem &&
-       containerItem != m_movingItems.first()->parentItem() &&
-       view()->currentState().isBaseState() &&
-       !event->modifiers().testFlag(Qt::ShiftModifier)) {
-
-        m_moveManipulator.reparentTo(containerItem);
+    if (containerItem
+        && view()->currentState().isBaseState()) {
+        if (containerItem != m_movingItems.first()->parentItem()
+            && event->modifiers().testFlag(Qt::ShiftModifier)) {
+            m_moveManipulator.reparentTo(containerItem);
+        }
     }
 
     bool shouldSnapping = view()->widget()->snappingAction()->isChecked();
@@ -313,9 +313,7 @@ FormEditorItem* MoveTool::containerFormEditorItem(const QList<QGraphicsItem*> &i
         if (formEditorItem
            && !selectedItemList.contains(formEditorItem)
            && isNotAncestorOfItemInList(formEditorItem, selectedItemList))
-            if (formEditorItem->isContainer()) {
                 return formEditorItem;
-        }
 
     }
 
-- 
GitLab