diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index 706ebcc2ac95705a6fff6670ff8354fd938e57ed..a932de8b035029dce509af822fa1860d8e9fd517 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -49,6 +49,7 @@ #include <QString> #include <QDir> #include <QAction> +#include <QTimer> #include <zoomaction.h> #include <nodeabstractproperty.h> #include <nodelistproperty.h> @@ -143,6 +144,16 @@ void FormEditorView::modelAboutToBeDetached(Model *model) QmlModelView::modelAboutToBeDetached(model); } +void FormEditorView::importAdded(const Import &) +{ + reset(); +} + +void FormEditorView::importRemoved(const Import &) +{ + reset(); +} + void FormEditorView::nodeAboutToBeRemoved(const ModelNode &removedNode) { QmlItemNode qmlItemNode(removedNode); @@ -601,6 +612,23 @@ void FormEditorView::stateChanged(const QmlModelState &newQmlModelState, const Q // m_currentTool->formEditorItemsChanged(itemList); } +void FormEditorView::reset() +{ + QTimer::singleShot(200, this, SLOT(delayedReset())); +} + +void FormEditorView::delayedReset() +{ + m_selectionTool->clear(); + m_moveTool->clear(); + m_resizeTool->clear(); + m_anchorTool->clear(); + m_dragTool->clear(); + m_scene->clearFormEditorItems(); + if (rootQmlObjectNode().toQmlItemNode().isValid()) + setupFormEditorItemTree(rootQmlObjectNode().toQmlItemNode()); +} + } diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.h b/src/plugins/qmldesigner/components/formeditor/formeditorview.h index f98c3b0e1cedfcdaf3d7b2224787b342fd16f611..8fa8cac26ed22b2603cf461cf85277392836d16c 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.h @@ -66,6 +66,9 @@ public: void modelAttached(Model *model); void modelAboutToBeDetached(Model *model); + void importAdded(const Import &import); + void importRemoved(const Import &import); + void nodeCreated(const ModelNode &createdNode); void nodeAboutToBeRemoved(const ModelNode &removedNode); void nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange); @@ -116,8 +119,10 @@ signals: protected: void otherPropertyChanged(const QmlObjectNode &qmlObjectNode, const QString &propertyName); void stateChanged(const QmlModelState &newQmlModelState, const QmlModelState &oldQmlModelState); + void reset(); protected slots: + void delayedReset(); QList<ModelNode> adjustStatesForModelNodes(const QList<ModelNode> &nodeList) const; void updateGraphicsIndicators(); void setSelectOnlyContentItemsAction(bool selectOnlyContentItems);