diff --git a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp index 5f2400d18fc..b1c92b9ba88 100644 --- a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp @@ -264,6 +264,33 @@ Snapper::Snapping AbstractFormEditorTool::generateUseSnapping(Qt::KeyboardModifi return useSnapping; } +static bool isNotAncestorOfItemInList(FormEditorItem *formEditorItem, const QList &itemList) +{ + foreach (FormEditorItem *item, itemList) { + if (item + && item->qmlItemNode().isValid() + && item->qmlItemNode().isAncestorOf(formEditorItem->qmlItemNode())) + return false; + } + + return true; +} + +FormEditorItem *AbstractFormEditorTool::containerFormEditorItem(const QList &itemUnderMouseList, const QList &selectedItemList) const +{ + foreach (QGraphicsItem* item, itemUnderMouseList) { + FormEditorItem *formEditorItem = FormEditorItem::fromQGraphicsItem(item); + if (formEditorItem + && !selectedItemList.contains(formEditorItem) + && isNotAncestorOfItemInList(formEditorItem, selectedItemList) + && formEditorItem->isContainer()) + return formEditorItem; + + } + + return 0; +} + void AbstractFormEditorTool::clear() { m_itemList.clear(); diff --git a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h index e1ec429893e..b6f7f77370c 100644 --- a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h +++ b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h @@ -99,6 +99,7 @@ protected: virtual void selectedItemsChanged(const QList &itemList) = 0; virtual void showContextMenu(QGraphicsSceneMouseEvent *event); Snapper::Snapping generateUseSnapping(Qt::KeyboardModifiers keyboardModifier) const; + FormEditorItem *containerFormEditorItem(const QList &itemUnderMouseList, const QList &selectedItemList) const; FormEditorView *view() const; void setView(FormEditorView *view); diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.cpp b/src/plugins/qmldesigner/components/formeditor/movetool.cpp index 4e961809401..b50ef660f8d 100644 --- a/src/plugins/qmldesigner/components/formeditor/movetool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/movetool.cpp @@ -319,35 +319,7 @@ void MoveTool::beginWithPoint(const QPointF &beginPoint) m_moveManipulator.begin(beginPoint); } -static bool isNotAncestorOfItemInList(FormEditorItem *formEditorItem, const QList &itemList) -{ - foreach (FormEditorItem *item, itemList) { - if (item - && item->qmlItemNode().isValid() - && item->qmlItemNode().isAncestorOf(formEditorItem->qmlItemNode())) - return false; - } - return true; -} - -FormEditorItem* MoveTool::containerFormEditorItem(const QList &itemUnderMouseList, - const QList &selectedItemList) -{ - Q_ASSERT(!selectedItemList.isEmpty()); - - foreach (QGraphicsItem* item, itemUnderMouseList) { - FormEditorItem *formEditorItem = FormEditorItem::fromQGraphicsItem(item); - if (formEditorItem - && !selectedItemList.contains(formEditorItem) - && isNotAncestorOfItemInList(formEditorItem, selectedItemList) - && formEditorItem->isContainer()) - return formEditorItem; - - } - - return 0; -} QList movalbeItems(const QList &itemList) { diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.h b/src/plugins/qmldesigner/components/formeditor/movetool.h index 230bd73d05d..9947037ea1d 100644 --- a/src/plugins/qmldesigner/components/formeditor/movetool.h +++ b/src/plugins/qmldesigner/components/formeditor/movetool.h @@ -79,8 +79,6 @@ protected: static QList movingItems(const QList &selectedItemList); - static FormEditorItem* containerFormEditorItem(const QList &itemUnderMouseList, - const QList &selectedItemList); static bool isAncestorOfAllItems(FormEditorItem* maybeAncestorItem, const QList &itemList);