diff options
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 bdf9a07f38..719ac6d4b0 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 f3abef47cc..d0994fe992 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 91a731bef5..01e5b9fa15 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 8eb536d7cc..483eca1550 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) |