From acb36acf1562d16de8e7007910f6802c57486914 Mon Sep 17 00:00:00 2001 From: Marco Bubke <marco.bubke@nokia.com> Date: Wed, 2 Feb 2011 13:41:36 +0100 Subject: [PATCH] QmlDesigner.FormEditor: Change to component for double click --- .../formeditor/abstractformeditortool.cpp | 14 +++++++++++++- .../components/formeditor/abstractformeditortool.h | 2 +- .../qmldesigner/components/formeditor/movetool.cpp | 7 ++++--- .../components/formeditor/selectiontool.cpp | 6 +++--- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp index bdf9a07f38f..719ac6d4b09 100644 --- a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp @@ -35,6 +35,8 @@ #include "formeditorview.h" #include "formeditorview.h" +#include <coreplugin/editormanager/editormanager.h> + #include <QtDebug> #include <QGraphicsSceneDragDropEvent> #include <nodemetainfo.h> @@ -192,5 +194,15 @@ void AbstractFormEditorTool::dragMoveEvent(QGraphicsSceneDragDropEvent * /* even Q_ASSERT(false); } - +void AbstractFormEditorTool::mouseDoubleClickEvent(const QList<QGraphicsItem*> &itemList, QGraphicsSceneMouseEvent *event) +{ + FormEditorItem *formEditorItem = topFormEditorItem(itemList); + if (formEditorItem) { + ModelNode doubleClickNode = formEditorItem->qmlItemNode().modelNode(); + if (doubleClickNode.metaInfo().isComponent()) { + Core::EditorManager::instance()->openEditor(doubleClickNode.metaInfo().componentFileName()); + event->accept(); + } + } +} } diff --git a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h index f3abef47ccf..d0994fe9922 100644 --- a/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h +++ b/src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h @@ -59,7 +59,7 @@ public: virtual void mouseReleaseEvent(const QList<QGraphicsItem*> &itemList, QGraphicsSceneMouseEvent *event) = 0; virtual void mouseDoubleClickEvent(const QList<QGraphicsItem*> &itemList, - QGraphicsSceneMouseEvent *event) = 0; + QGraphicsSceneMouseEvent *event); virtual void hoverMoveEvent(const QList<QGraphicsItem*> &itemList, QGraphicsSceneMouseEvent *event) = 0; diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.cpp b/src/plugins/qmldesigner/components/formeditor/movetool.cpp index 91a731bef5c..01e5b9fa151 100644 --- a/src/plugins/qmldesigner/components/formeditor/movetool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/movetool.cpp @@ -40,6 +40,8 @@ #include "resizehandleitem.h" +#include "nodemetainfo.h" + #include <QApplication> #include <QGraphicsSceneMouseEvent> #include <QAction> @@ -218,10 +220,9 @@ void MoveTool::mouseReleaseEvent(const QList<QGraphicsItem*> &/*itemList*/, } } -void MoveTool::mouseDoubleClickEvent(const QList<QGraphicsItem*> & /*itemList*/, - QGraphicsSceneMouseEvent * /*event*/) +void MoveTool::mouseDoubleClickEvent(const QList<QGraphicsItem*> &itemList, QGraphicsSceneMouseEvent *event) { - + AbstractFormEditorTool::mouseDoubleClickEvent(itemList, event); } void MoveTool::itemsAboutToRemoved(const QList<FormEditorItem*> &removedItemList) diff --git a/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp b/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp index 8eb536d7cc4..483eca15505 100644 --- a/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp @@ -36,6 +36,7 @@ #include "formeditorview.h" #include "resizehandleitem.h" +#include "nodemetainfo.h" #include <QApplication> @@ -197,10 +198,9 @@ void SelectionTool::mouseReleaseEvent(const QList<QGraphicsItem*> &/*itemList*/, } -void SelectionTool::mouseDoubleClickEvent(const QList<QGraphicsItem*> &/*itemList*/, - QGraphicsSceneMouseEvent * /*event*/) +void SelectionTool::mouseDoubleClickEvent(const QList<QGraphicsItem*> &itemList, QGraphicsSceneMouseEvent * event) { - + AbstractFormEditorTool::mouseDoubleClickEvent(itemList, event); } void SelectionTool::keyPressEvent(QKeyEvent *event) -- GitLab