OSDN Git Service

QmlDesigner.FormEditor: Change to component for double click
authorMarco Bubke <marco.bubke@nokia.com>
Wed, 2 Feb 2011 12:41:36 +0000 (13:41 +0100)
committerMarco Bubke <marco.bubke@nokia.com>
Wed, 2 Feb 2011 12:42:09 +0000 (13:42 +0100)
src/plugins/qmldesigner/components/formeditor/abstractformeditortool.cpp
src/plugins/qmldesigner/components/formeditor/abstractformeditortool.h
src/plugins/qmldesigner/components/formeditor/movetool.cpp
src/plugins/qmldesigner/components/formeditor/selectiontool.cpp

index bdf9a07..719ac6d 100644 (file)
@@ -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();
+        }
+    }
+}
 }
index f3abef4..d0994fe 100644 (file)
@@ -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;
index 91a731b..01e5b9f 100644 (file)
@@ -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)
index 8eb536d..483eca1 100644 (file)
@@ -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)