diff --git a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h index b48703a9f08..8e35685303a 100644 --- a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h +++ b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h @@ -77,6 +77,8 @@ public: virtual void formEditorItemsChanged(const QList &itemList) = 0; + virtual void instancesCompleted(const QList &itemList) = 0; + void setItems(const QList &itemList); QList items() const; diff --git a/src/plugins/qmldesigner/components/formeditor/anchortool.cpp b/src/plugins/qmldesigner/components/formeditor/anchortool.cpp index c35a347bdaa..202180d40ea 100644 --- a/src/plugins/qmldesigner/components/formeditor/anchortool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/anchortool.cpp @@ -213,6 +213,10 @@ void AnchorTool::formEditorItemsChanged(const QList &) m_anchorIndicator.updateItems(view()->scene()->allFormEditorItems()); } +void AnchorTool::instancesCompleted(const QList &itemList) +{ +} + AnchorLineHandleItem* AnchorTool::topAnchorLineHandleItem(const QList & itemList) { foreach (QGraphicsItem *item, itemList) { diff --git a/src/plugins/qmldesigner/components/formeditor/anchortool.h b/src/plugins/qmldesigner/components/formeditor/anchortool.h index 830c9708b22..541d92c81ae 100644 --- a/src/plugins/qmldesigner/components/formeditor/anchortool.h +++ b/src/plugins/qmldesigner/components/formeditor/anchortool.h @@ -70,6 +70,8 @@ public: void formEditorItemsChanged(const QList &itemList); + void instancesCompleted(const QList &itemList); + static AnchorLineHandleItem* topAnchorLineHandleItem(const QList & itemList); private slots: diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp index 1224760ed6a..2752c2b0373 100644 --- a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp @@ -206,6 +206,10 @@ void DragTool::formEditorItemsChanged(const QList & itemList) } } +void DragTool::instancesCompleted(const QList &itemList) +{ +} + void DragTool::clearMoveDelay() { m_blockMove = false; diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.h b/src/plugins/qmldesigner/components/formeditor/dragtool.h index d506b9bc498..74d59c3d46e 100644 --- a/src/plugins/qmldesigner/components/formeditor/dragtool.h +++ b/src/plugins/qmldesigner/components/formeditor/dragtool.h @@ -100,6 +100,8 @@ public: void formEditorItemsChanged(const QList &itemList); + void instancesCompleted(const QList &itemList); + void clearMoveDelay(); protected: diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index 5884215bce7..706ebcc2ac9 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -437,6 +437,15 @@ void FormEditorView::auxiliaryDataChanged(const ModelNode &node, const QString & void FormEditorView::instancesCompleted(const QVector &completedNodeList) { + QList itemNodeList; + foreach (const ModelNode &node, completedNodeList) { + QmlItemNode qmlItemNode(node); + if (qmlItemNode.isValid() && scene()->hasItemForQmlItemNode(qmlItemNode)) { + scene()->synchronizeParent(qmlItemNode); + itemNodeList.append(scene()->itemForQmlItemNode(qmlItemNode)); + } + } + currentTool()->instancesCompleted(itemNodeList); } diff --git a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp index 3bc9b1d6742..6b1f1ffdc82 100644 --- a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp @@ -32,7 +32,7 @@ #include "formeditorview.h" #include -#include +#include #include #include @@ -139,6 +139,10 @@ void ItemCreatorTool::formEditorItemsChanged(const QList &/*ite { } +void ItemCreatorTool::instancesCompleted(const QList &/*itemList*/) +{ +} + void ItemCreatorTool::setItemString(const QString &itemString) { m_itemString = itemString; diff --git a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.h b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.h index 0efa0cca762..49524fa6fd4 100644 --- a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.h +++ b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.h @@ -67,6 +67,8 @@ public: void formEditorItemsChanged(const QList &itemList); + void instancesCompleted(const QList &itemList); + void setItemString(const QString &itemString); FormEditorItem* calculateContainer(const QPointF &point); diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.cpp b/src/plugins/qmldesigner/components/formeditor/movetool.cpp index 0e1db257c85..ecbfd95955e 100644 --- a/src/plugins/qmldesigner/components/formeditor/movetool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/movetool.cpp @@ -233,6 +233,10 @@ void MoveTool::selectedItemsChanged(const QList &itemList) updateMoveManipulator(); } +void MoveTool::instancesCompleted(const QList &itemList) +{ +} + bool MoveTool::haveSameParent(const QList &itemList) { if (itemList.isEmpty()) diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.h b/src/plugins/qmldesigner/components/formeditor/movetool.h index 3dce822f37d..5c986fceb65 100644 --- a/src/plugins/qmldesigner/components/formeditor/movetool.h +++ b/src/plugins/qmldesigner/components/formeditor/movetool.h @@ -64,10 +64,10 @@ public: void selectedItemsChanged(const QList &itemList); + void instancesCompleted(const QList &/*itemList*/); + void updateMoveManipulator(); - - void beginWithPoint(const QPointF &beginPoint); void clear(); diff --git a/src/plugins/qmldesigner/components/formeditor/resizetool.cpp b/src/plugins/qmldesigner/components/formeditor/resizetool.cpp index 7aefee31155..30e01ef9f87 100644 --- a/src/plugins/qmldesigner/components/formeditor/resizetool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/resizetool.cpp @@ -180,4 +180,8 @@ void ResizeTool::formEditorItemsChanged(const QList &itemList) m_resizeIndicator.updateItems(itemList); } + void ResizeTool::instancesCompleted(const QList &/*itemList*/) + { + } + } diff --git a/src/plugins/qmldesigner/components/formeditor/resizetool.h b/src/plugins/qmldesigner/components/formeditor/resizetool.h index 803e4dbd8a3..4cee102ed57 100644 --- a/src/plugins/qmldesigner/components/formeditor/resizetool.h +++ b/src/plugins/qmldesigner/components/formeditor/resizetool.h @@ -65,6 +65,8 @@ public: void formEditorItemsChanged(const QList &itemList); + void instancesCompleted(const QList &itemList); + private: SelectionIndicator m_selectionIndicator; ResizeIndicator m_resizeIndicator; diff --git a/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp b/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp index 5fc65decf03..8ecb713b9e5 100644 --- a/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp @@ -261,6 +261,10 @@ void SelectionTool::formEditorItemsChanged(const QList &itemLis m_resizeIndicator.updateItems(itemList); } +void SelectionTool::instancesCompleted(const QList &/*itemList*/) +{ +} + void SelectionTool::selectUnderPoint(QGraphicsSceneMouseEvent *event) { m_singleSelectionManipulator.begin(event->scenePos()); diff --git a/src/plugins/qmldesigner/components/formeditor/selectiontool.h b/src/plugins/qmldesigner/components/formeditor/selectiontool.h index fc885e58231..6ecf9a3cf0d 100644 --- a/src/plugins/qmldesigner/components/formeditor/selectiontool.h +++ b/src/plugins/qmldesigner/components/formeditor/selectiontool.h @@ -76,6 +76,8 @@ public: void formEditorItemsChanged(const QList &itemList); + void instancesCompleted(const QList &itemList); + void selectUnderPoint(QGraphicsSceneMouseEvent *event); void setSelectOnlyContentItems(bool selectOnlyContentItems);