summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp14
-rw-r--r--src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h2
-rw-r--r--src/plugins/qmldesigner/components/formeditor/movetool.cpp7
-rw-r--r--src/plugins/qmldesigner/components/formeditor/selectiontool.cpp6
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)