diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index db051d203a46d1273a192f633c3b8e82dbfc0632..b5316e355229429d6f63dff8868d20523be1d5df 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -90,6 +90,7 @@ FormEditorView::~FormEditorView() delete m_dragTool; m_dragTool = 0; + qDeleteAll(m_toolList); // delete scene after tools to prevent double deletion // of items @@ -406,6 +407,11 @@ void FormEditorView::changeToTransformTools() changeToSelectionTool(); } +void FormEditorView::registerTool(AbstractFormEditorTool *tool) +{ + m_toolList.append(tool); +} + void FormEditorView::nodeSlidedToIndex(const NodeListProperty &listProperty, int /*newIndex*/, int /*oldIndex*/) { QList<ModelNode> newOrderModelNodeList = listProperty.toModelNodeList(); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.h b/src/plugins/qmldesigner/components/formeditor/formeditorview.h index 09b7f6c789878ac59945f1c65729af84b1f035e7..63853dcef51679d6c8e219882c075c6c7c2494a1 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.h @@ -98,6 +98,8 @@ public: void changeToResizeTool(); void changeToTransformTools(); + void registerTool(AbstractFormEditorTool *tool); + void nodeSlidedToIndex(const NodeListProperty &listProperty, int newIndex, int oldIndex); void auxiliaryDataChanged(const ModelNode &node, const PropertyName &name, const QVariant &data); @@ -136,6 +138,7 @@ private: //functions private: //variables QWeakPointer<FormEditorWidget> m_formEditorWidget; QWeakPointer<FormEditorScene> m_scene; + QList<AbstractFormEditorTool*> m_toolList; MoveTool *m_moveTool; SelectionTool *m_selectionTool; ResizeTool *m_resizeTool; diff --git a/src/plugins/qmldesigner/designercore/include/viewmanager.h b/src/plugins/qmldesigner/designercore/include/viewmanager.h index b38b964ea4b6ba004577c2626d56a9283810b9d0..405e9a23861053bd16f54b0287b2ca447d697846 100644 --- a/src/plugins/qmldesigner/designercore/include/viewmanager.h +++ b/src/plugins/qmldesigner/designercore/include/viewmanager.h @@ -69,6 +69,7 @@ public: void setNodeInstanceViewQtPath(const QString & qtPath); void resetPropertyEditorView(); + void resisterFormEditorTool(AbstractFormEditorTool *tool); // takes ownership QWidget *formEditorWidget(); QWidget *propertyEditorWidget(); diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp index c65292dbf6f3d31c8b29ed59c5a5f9146c1518bc..d309ea79dea93bdea66cdeda939f528acea66dfc 100644 --- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp @@ -82,6 +82,11 @@ void ViewManager::resetPropertyEditorView() m_propertyEditorView.resetView(); } +void ViewManager::resisterFormEditorTool(AbstractFormEditorTool *tool) +{ + m_formEditorView.registerTool(tool); +} + void ViewManager::detachViewsExceptRewriterAndComponetView() { switchStateEditorViewToBaseState();