Debugger: Split inspector plugin into a qtquick1 and a qtquick2 plugin
authorKai Koehne <kai.koehne@nokia.com>
Wed, 26 Oct 2011 13:52:48 +0000 (15:52 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 1 Nov 2011 16:03:29 +0000 (17:03 +0100)
This allows the inspector to be used also when e.g. qtquick1 and widgets libraries
are not available.

Change-Id: Id8510ea2a1a9c2a776d67e6d7732a4e40363d5a3
Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
49 files changed:
src/declarative/debugger/qdeclarativeinspectorinterface_p.h
src/declarative/debugger/qdeclarativeinspectorservice.cpp
src/declarative/debugger/qdeclarativeinspectorservice_p.h
src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro [deleted file]
src/plugins/qmltooling/qmldbg_qtquick1/abstractliveedittool.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/abstractliveedittool.cpp with 99% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/abstractliveedittool.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/abstractliveedittool.h with 97% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/boundingrecthighlighter.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/boundingrecthighlighter.cpp with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/boundingrecthighlighter.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/boundingrecthighlighter.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/colorpickertool.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/colorpickertool.cpp with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/colorpickertool.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/colorpickertool.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/livelayeritem.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/livelayeritem.cpp with 97% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/livelayeritem.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/livelayeritem.h with 96% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/liverubberbandselectionmanipulator.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/liverubberbandselectionmanipulator.cpp with 99% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/liverubberbandselectionmanipulator.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/liverubberbandselectionmanipulator.h with 97% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/liveselectionindicator.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/liveselectionindicator.cpp with 97% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/liveselectionindicator.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/liveselectionindicator.h with 97% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/liveselectionrectangle.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/liveselectionrectangle.cpp with 97% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/liveselectionrectangle.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/liveselectionrectangle.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/liveselectiontool.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/liveselectiontool.cpp with 99% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/liveselectiontool.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/liveselectiontool.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/livesingleselectionmanipulator.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/livesingleselectionmanipulator.cpp with 99% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/livesingleselectionmanipulator.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/livesingleselectionmanipulator.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/qdeclarativeviewinspector.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/qdeclarativeviewinspector.cpp with 99% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/qdeclarativeviewinspector.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/qdeclarativeviewinspector.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/qdeclarativeviewinspector_p.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/qdeclarativeviewinspector_p.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/qmldbg_qtquick1.pro [new file with mode: 0644]
src/plugins/qmltooling/qmldbg_qtquick1/qtquick1plugin.cpp [new file with mode: 0644]
src/plugins/qmltooling/qmldbg_qtquick1/qtquick1plugin.h [moved from src/plugins/qmltooling/qmldbg_inspector/qdeclarativeinspectorplugin.h with 85% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/subcomponentmasklayeritem.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/subcomponentmasklayeritem.cpp with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/subcomponentmasklayeritem.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/subcomponentmasklayeritem.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/zoomtool.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/zoomtool.cpp with 99% similarity]
src/plugins/qmltooling/qmldbg_qtquick1/zoomtool.h [moved from src/plugins/qmltooling/qmldbg_inspector/qtquick1/zoomtool.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick2/qmldbg_qtquick2.pro [new file with mode: 0644]
src/plugins/qmltooling/qmldbg_qtquick2/qtquick2plugin.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/qdeclarativeinspectorplugin.cpp with 68% similarity]
src/plugins/qmltooling/qmldbg_qtquick2/qtquick2plugin.h [new file with mode: 0644]
src/plugins/qmltooling/qmldbg_qtquick2/sghighlight.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/sghighlight.cpp with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick2/sghighlight.h [moved from src/plugins/qmltooling/qmldbg_inspector/sghighlight.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick2/sgselectiontool.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/sgselectiontool.cpp with 99% similarity]
src/plugins/qmltooling/qmldbg_qtquick2/sgselectiontool.h [moved from src/plugins/qmltooling/qmldbg_inspector/sgselectiontool.h with 98% similarity]
src/plugins/qmltooling/qmldbg_qtquick2/sgviewinspector.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.cpp with 99% similarity]
src/plugins/qmltooling/qmldbg_qtquick2/sgviewinspector.h [moved from src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.h with 98% similarity]
src/plugins/qmltooling/qmltooling.pro
src/plugins/qmltooling/shared/abstracttool.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/abstracttool.cpp with 100% similarity]
src/plugins/qmltooling/shared/abstracttool.h [moved from src/plugins/qmltooling/qmldbg_inspector/abstracttool.h with 100% similarity]
src/plugins/qmltooling/shared/abstractviewinspector.cpp [moved from src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp with 98% similarity]
src/plugins/qmltooling/shared/abstractviewinspector.h [moved from src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.h with 99% similarity]
src/plugins/qmltooling/shared/qdeclarativeinspectorprotocol.h [moved from src/plugins/qmltooling/qmldbg_inspector/qdeclarativeinspectorprotocol.h with 100% similarity]
src/plugins/qmltooling/shared/qmlinspectorconstants.h [moved from src/plugins/qmltooling/qmldbg_inspector/qmlinspectorconstants.h with 100% similarity]
tests/auto/declarative/debugger/qdeclarativeinspector/tst_qdeclarativeinspector.cpp

index d4cd783..dd30427 100644 (file)
@@ -67,8 +67,12 @@ public:
     QDeclarativeInspectorInterface() {}
     virtual ~QDeclarativeInspectorInterface() {}
 
-    virtual void activate() = 0;
+    virtual bool canHandleView(QObject *view) = 0;
+
+    virtual void activate(QObject *view) = 0;
     virtual void deactivate() = 0;
+
+    virtual void clientMessage(const QByteArray &message) = 0;
 };
 
 Q_DECLARE_INTERFACE(QDeclarativeInspectorInterface, "com.trolltech.Qt.QDeclarativeInspectorInterface/1.0")
index 56441ae..d6fdaa5 100644 (file)
@@ -54,7 +54,7 @@ Q_GLOBAL_STATIC(QDeclarativeInspectorService, serviceInstance)
 
 QDeclarativeInspectorService::QDeclarativeInspectorService()
     : QDeclarativeDebugService(QLatin1String("QDeclarativeObserverMode"))
-    , m_inspectorPlugin(0)
+    , m_currentInspectorPlugin(0)
 {
 }
 
@@ -91,34 +91,46 @@ void QDeclarativeInspectorService::statusChanged(Status /*status*/)
 void QDeclarativeInspectorService::updateStatus()
 {
     if (m_views.isEmpty()) {
-        if (m_inspectorPlugin)
-            m_inspectorPlugin->deactivate();
+        if (m_currentInspectorPlugin) {
+            m_currentInspectorPlugin->deactivate();
+            m_currentInspectorPlugin = 0;
+        }
         return;
     }
 
     if (status() == Enabled) {
-        if (!m_inspectorPlugin)
-            m_inspectorPlugin = loadInspectorPlugin();
+        if (m_inspectorPlugins.isEmpty())
+            loadInspectorPlugins();
 
-        if (!m_inspectorPlugin) {
-            qWarning() << "Error while loading inspector plugin";
+        if (m_inspectorPlugins.isEmpty()) {
+            qWarning() << "QDeclarativeInspector: No plugins found.";
             QDeclarativeDebugServer::instance()->removeService(this);
             return;
         }
 
-        m_inspectorPlugin->activate();
+        foreach (QDeclarativeInspectorInterface *inspector, m_inspectorPlugins) {
+            if (inspector->canHandleView(m_views.first())) {
+                m_currentInspectorPlugin = inspector;
+                break;
+            }
+        }
+
+        m_currentInspectorPlugin->activate(m_views.first());
     } else {
-        if (m_inspectorPlugin)
-            m_inspectorPlugin->deactivate();
+        if (m_currentInspectorPlugin) {
+            m_currentInspectorPlugin->deactivate();
+            m_currentInspectorPlugin = 0;
+        }
     }
 }
 
 void QDeclarativeInspectorService::messageReceived(const QByteArray &message)
 {
-    emit gotMessage(message);
+    if (m_currentInspectorPlugin)
+        m_currentInspectorPlugin->clientMessage(message);
 }
 
-QDeclarativeInspectorInterface *QDeclarativeInspectorService::loadInspectorPlugin()
+void QDeclarativeInspectorService::loadInspectorPlugins()
 {
     QStringList pluginCandidates;
     const QStringList paths = QCoreApplication::libraryPaths();
@@ -136,12 +148,11 @@ QDeclarativeInspectorInterface *QDeclarativeInspectorService::loadInspectorPlugi
 
         QDeclarativeInspectorInterface *inspector =
                 qobject_cast<QDeclarativeInspectorInterface*>(loader.instance());
-
         if (inspector)
-            return inspector;
-        loader.unload();
+            m_inspectorPlugins << inspector;
+        else
+            loader.unload();
     }
-    return 0;
 }
 
 QT_END_NAMESPACE
index df51ab8..9aa71ae 100644 (file)
@@ -76,23 +76,20 @@ public:
 
     void addView(QObject *);
     void removeView(QObject *);
-    QList<QObject*> views() const { return m_views; }
 
     void sendMessage(const QByteArray &message);
 
-Q_SIGNALS:
-    void gotMessage(const QByteArray &message);
-
 protected:
     virtual void statusChanged(Status status);
     virtual void messageReceived(const QByteArray &);
 
 private:
     void updateStatus();
-    static QDeclarativeInspectorInterface *loadInspectorPlugin();
+    void loadInspectorPlugins();
 
     QList<QObject*> m_views;
-    QDeclarativeInspectorInterface *m_inspectorPlugin;
+    QDeclarativeInspectorInterface *m_currentInspectorPlugin;
+    QList<QDeclarativeInspectorInterface*> m_inspectorPlugins;
 };
 
 QT_END_NAMESPACE
diff --git a/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro b/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro
deleted file mode 100644 (file)
index 0c870bb..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-load(qt_module)
-
-TARGET = qmldbg_inspector
-QT       += declarative-private core-private gui-private opengl-private qtquick1 widgets widgets-private v8-private
-
-load(qt_plugin)
-
-DESTDIR  = $$QT.declarative.plugins/qmltooling
-QTDIR_build:REQUIRES += "contains(QT_CONFIG, declarative)"
-
-INCLUDEPATH *= $$PWD
-
-SOURCES += \
-    abstractviewinspector.cpp \
-    qdeclarativeinspectorplugin.cpp \
-    qtquick1/qdeclarativeviewinspector.cpp \
-    qtquick1/abstractliveedittool.cpp \
-    qtquick1/liveselectiontool.cpp \
-    qtquick1/livelayeritem.cpp \
-    qtquick1/livesingleselectionmanipulator.cpp \
-    qtquick1/liverubberbandselectionmanipulator.cpp \
-    qtquick1/liveselectionrectangle.cpp \
-    qtquick1/liveselectionindicator.cpp \
-    qtquick1/boundingrecthighlighter.cpp \
-    qtquick1/subcomponentmasklayeritem.cpp \
-    qtquick1/zoomtool.cpp \
-    qtquick1/colorpickertool.cpp \
-    abstracttool.cpp \
-    sgviewinspector.cpp \
-    sgselectiontool.cpp \
-    sghighlight.cpp
-
-HEADERS += \
-    abstractviewinspector.h \
-    qdeclarativeinspectorplugin.h \
-    qdeclarativeinspectorprotocol.h \
-    qmlinspectorconstants.h \
-    qtquick1/qdeclarativeviewinspector.h \
-    qtquick1/qdeclarativeviewinspector_p.h \
-    qtquick1/abstractliveedittool.h \
-    qtquick1/liveselectiontool.h \
-    qtquick1/livelayeritem.h \
-    qtquick1/livesingleselectionmanipulator.h \
-    qtquick1/liverubberbandselectionmanipulator.h \
-    qtquick1/liveselectionrectangle.h \
-    qtquick1/liveselectionindicator.h \
-    qtquick1/boundingrecthighlighter.h \
-    qtquick1/subcomponentmasklayeritem.h \
-    qtquick1/zoomtool.h \
-    qtquick1/colorpickertool.h \
-    abstracttool.h \
-    sgviewinspector.h \
-    sgselectiontool.h \
-    sghighlight.h
-
-target.path += $$[QT_INSTALL_PLUGINS]/qmltooling
-INSTALLS += target
@@ -49,6 +49,7 @@
 #include <QDeclarativeItem>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 AbstractLiveEditTool::AbstractLiveEditTool(QDeclarativeViewInspector *editorView)
     : AbstractTool(editorView)
@@ -192,5 +193,5 @@ QString AbstractLiveEditTool::titleForItem(QGraphicsItem *item)
     return constructedName;
 }
 
-
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -43,7 +43,7 @@
 #define ABSTRACTLIVEEDITTOOL_H
 
 #include <QtCore/QList>
-#include "../abstracttool.h"
+#include "abstracttool.h"
 
 QT_BEGIN_NAMESPACE
 class QMouseEvent;
@@ -57,6 +57,7 @@ class QDeclarativeView;
 QT_END_NAMESPACE
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class QDeclarativeViewInspector;
 
@@ -99,6 +100,7 @@ private:
     QList<QGraphicsItem*> m_itemList;
 };
 
-}
+} // namespace QtQuick1
+} // namesacpe QmlJSDebugger
 
 #endif // ABSTRACTLIVEEDITTOOL_H
@@ -42,7 +42,7 @@
 #include "boundingrecthighlighter.h"
 
 #include "qdeclarativeviewinspector.h"
-#include "../qmlinspectorconstants.h"
+#include "qmlinspectorconstants.h"
 
 #include <QtWidgets/QGraphicsPolygonItem>
 
@@ -51,6 +51,7 @@
 #include <QtCore/QDebug>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 BoundingBox::BoundingBox(QGraphicsObject *itemToHighlight, QGraphicsItem *parentItem,
                          QObject *parent)
@@ -236,5 +237,5 @@ void BoundingRectHighlighter::refresh()
         highlightAll();
 }
 
-
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -54,6 +54,7 @@ QT_FORWARD_DECLARE_CLASS(QStyleOptionGraphicsItem)
 QT_FORWARD_DECLARE_CLASS(QTimer)
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class QDeclarativeViewInspector;
 class BoundingBox;
@@ -110,6 +111,7 @@ public:
     int type() const;
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // BOUNDINGRECTHIGHLIGHTER_H
@@ -52,6 +52,7 @@
 #include <QtGui/QPalette>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 ColorPickerTool::ColorPickerTool(QDeclarativeViewInspector *view) :
     AbstractLiveEditTool(view)
@@ -95,4 +96,5 @@ void ColorPickerTool::pickColor(const QPoint &pos)
     emit selectedColorChanged(m_selectedColor);
 }
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -49,6 +49,7 @@
 QT_FORWARD_DECLARE_CLASS(QPoint)
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class ColorPickerTool : public AbstractLiveEditTool
 {
@@ -87,6 +88,7 @@ private:
     QColor m_selectedColor;
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // COLORPICKERTOOL_H
 
 #include "livelayeritem.h"
 
-#include "../qmlinspectorconstants.h"
+#include "qmlinspectorconstants.h"
 
 #include <QGraphicsScene>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 LiveLayerItem::LiveLayerItem(QGraphicsScene* scene)
     : QGraphicsObject()
@@ -89,4 +90,5 @@ QList<QGraphicsItem*> LiveLayerItem::findAllChildItems(const QGraphicsItem *item
     return itemList;
 }
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -45,6 +45,7 @@
 #include <QtWidgets/QGraphicsObject>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class LiveLayerItem : public QGraphicsObject
 {
@@ -62,6 +63,7 @@ protected:
     QList<QGraphicsItem*> findAllChildItems(const QGraphicsItem *item) const;
 };
 
-}
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
 
 #endif // LIVELAYERITEM_H
@@ -48,6 +48,7 @@
 #include <QtCore/QDebug>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 LiveRubberBandSelectionManipulator::LiveRubberBandSelectionManipulator(QGraphicsObject *layerItem,
                                                                        QDeclarativeViewInspector *editorView)
@@ -162,4 +163,5 @@ bool LiveRubberBandSelectionManipulator::isActive() const
     return m_isActive;
 }
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -49,6 +49,7 @@
 QT_FORWARD_DECLARE_CLASS(QGraphicsItem)
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class QDeclarativeViewInspector;
 
@@ -91,6 +92,7 @@ private:
     bool m_isActive;
 };
 
-}
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
 
 #endif // RUBBERBANDSELECTIONMANIPULATOR_H
@@ -42,7 +42,7 @@
 #include "liveselectionindicator.h"
 
 #include "qdeclarativeviewinspector_p.h"
-#include "../qmlinspectorconstants.h"
+#include "qmlinspectorconstants.h"
 
 #include <QtWidgets/QGraphicsRectItem>
 #include <QtWidgets/QGraphicsObject>
@@ -50,6 +50,7 @@
 #include <QtGui/QPen>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 LiveSelectionIndicator::LiveSelectionIndicator(QDeclarativeViewInspector *viewInspector,
                                                QGraphicsObject *layerItem)
@@ -114,5 +115,6 @@ void LiveSelectionIndicator::setItems(const QList<QWeakPointer<QGraphicsObject>
     }
 }
 
-} //namespace QmlJSDebugger
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
 
@@ -53,6 +53,7 @@ class QPolygonF;
 QT_END_NAMESPACE
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class QDeclarativeViewInspector;
 
@@ -75,6 +76,7 @@ private:
     QDeclarativeViewInspector *m_view;
 };
 
-}
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
 
 #endif // LIVESELECTIONINDICATOR_H
@@ -41,7 +41,7 @@
 
 #include "liveselectionrectangle.h"
 
-#include "../qmlinspectorconstants.h"
+#include "qmlinspectorconstants.h"
 
 #include <QtGui/QPen>
 #include <QtWidgets/QGraphicsRectItem>
@@ -53,6 +53,7 @@
 #include <cmath>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class SelectionRectShape : public QGraphicsRectItem
 {
@@ -110,4 +111,5 @@ void LiveSelectionRectangle::setRect(const QPointF &firstPoint,
     m_controlShape->setRect(rect);
 }
 
-}
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
@@ -50,6 +50,7 @@ QT_FORWARD_DECLARE_CLASS(QPointF)
 QT_FORWARD_DECLARE_CLASS(QRectF)
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class LiveSelectionRectangle
 {
@@ -72,6 +73,7 @@ private:
     QWeakPointer<QGraphicsObject> m_layerItem;
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // LIVESELECTIONRECTANGLE_H
@@ -58,6 +58,7 @@
 #include <QtCore/QDebug>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 LiveSelectionTool::LiveSelectionTool(QDeclarativeViewInspector *editorView) :
     AbstractLiveEditTool(editorView),
@@ -420,4 +421,5 @@ void LiveSelectionTool::selectUnderPoint(QMouseEvent *event)
     m_singleSelectionManipulator.end(event->pos());
 }
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -56,6 +56,7 @@ QT_FORWARD_DECLARE_CLASS(QKeyEvent)
 QT_FORWARD_DECLARE_CLASS(QAction)
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class LiveSelectionTool : public AbstractLiveEditTool
 {
@@ -115,6 +116,7 @@ private:
     QList<QGraphicsItem*> m_contextMenuItemList;
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // LIVESELECTIONTOOL_H
@@ -46,6 +46,7 @@
 #include <QtDebug>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 LiveSingleSelectionManipulator::LiveSingleSelectionManipulator(QDeclarativeViewInspector *editorView)
     : m_editorView(editorView),
@@ -148,4 +149,5 @@ QPointF LiveSingleSelectionManipulator::beginPoint() const
     return m_beginPoint;
 }
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -48,6 +48,7 @@
 QT_FORWARD_DECLARE_CLASS(QGraphicsItem)
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class QDeclarativeViewInspector;
 
@@ -84,6 +85,7 @@ private:
     bool m_isActive;
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // LIVESINGLESELECTIONMANIPULATOR_H
@@ -52,6 +52,7 @@
 #include <QtGui/QMouseEvent>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 QDeclarativeViewInspectorPrivate::QDeclarativeViewInspectorPrivate(QDeclarativeViewInspector *q) :
     q(q)
@@ -442,4 +443,5 @@ QRectF QDeclarativeViewInspector::adjustToScreenBoundaries(const QRectF &boundin
     return boundingRect;
 }
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -50,6 +50,7 @@
 #include <QtQuick1/QDeclarativeView>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class AbstractLiveEditTool;
 class QDeclarativeViewInspectorPrivate;
@@ -95,6 +96,7 @@ private:
     friend class AbstractLiveEditTool;
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // QDECLARATIVEVIEWINSPECTOR_H
@@ -52,6 +52,7 @@
 #include "QtDeclarative/private/qdeclarativeinspectorservice_p.h"
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class QDeclarativeViewInspector;
 class LiveSelectionTool;
@@ -114,6 +115,7 @@ public:
     static QDeclarativeViewInspectorPrivate *get(QDeclarativeViewInspector *v) { return v->d_func(); }
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // QDECLARATIVEVIEWINSPECTOR_P_H
diff --git a/src/plugins/qmltooling/qmldbg_qtquick1/qmldbg_qtquick1.pro b/src/plugins/qmltooling/qmldbg_qtquick1/qmldbg_qtquick1.pro
new file mode 100644 (file)
index 0000000..1b0229d
--- /dev/null
@@ -0,0 +1,50 @@
+load(qt_module)
+
+TARGET = qmldbg_qtquick1
+QT       += declarative-private core-private gui-private widget-private qtquick1 opengl-private
+
+load(qt_plugin)
+
+DESTDIR  = $$QT.declarative.plugins/qmltooling
+
+INCLUDEPATH *= $$PWD $$PWD/../shared
+
+SOURCES += \
+    abstractliveedittool.cpp \
+    boundingrecthighlighter.cpp \
+    colorpickertool.cpp \
+    livelayeritem.cpp \
+    liverubberbandselectionmanipulator.cpp \
+    liveselectionindicator.cpp \
+    liveselectionrectangle.cpp \
+    liveselectiontool.cpp \
+    livesingleselectionmanipulator.cpp \
+    qdeclarativeviewinspector.cpp \
+    qtquick1plugin.cpp \
+    ../shared/abstracttool.cpp \
+    ../shared/abstractviewinspector.cpp \
+    subcomponentmasklayeritem.cpp \
+    zoomtool.cpp
+
+HEADERS += \
+    abstractliveedittool.h \
+    boundingrecthighlighter.h \
+    colorpickertool.h \
+    livelayeritem.h \
+    liverubberbandselectionmanipulator.h \
+    liveselectionindicator.h \
+    liveselectionrectangle.h \
+    liveselectiontool.h \
+    livesingleselectionmanipulator.h \
+    qdeclarativeviewinspector.h \
+    qdeclarativeviewinspector_p.h \
+    qtquick1plugin.h \
+    ../shared/abstracttool.h \
+    ../shared/abstractviewinspector.h \
+    ../shared/qdeclarativeinspectorprotocol.h \
+    ../shared/qmlinspectorconstants.h \
+    subcomponentmasklayeritem.h \
+    zoomtool.h
+
+target.path += $$[QT_INSTALL_PLUGINS]/qmltooling
+INSTALLS += target
diff --git a/src/plugins/qmltooling/qmldbg_qtquick1/qtquick1plugin.cpp b/src/plugins/qmltooling/qmldbg_qtquick1/qtquick1plugin.cpp
new file mode 100644 (file)
index 0000000..a8ad407
--- /dev/null
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qtquick1plugin.h"
+#include "qdeclarativeviewinspector.h"
+
+#include <QtCore/qplugin.h>
+#include <QtDeclarative/private/qdeclarativeinspectorservice_p.h>
+#include <QtQuick1/qdeclarativeview.h>
+
+namespace QmlJSDebugger {
+namespace QtQuick1 {
+
+QtQuick1Plugin::QtQuick1Plugin() :
+    m_inspector(0)
+{
+}
+
+QtQuick1Plugin::~QtQuick1Plugin()
+{
+    delete m_inspector;
+}
+
+bool QtQuick1Plugin::canHandleView(QObject *view)
+{
+    return qobject_cast<QDeclarativeView*>(view);
+}
+
+void QtQuick1Plugin::activate(QObject *view)
+{
+    QDeclarativeView *qDeclarativeView = qobject_cast<QDeclarativeView*>(view);
+    Q_ASSERT(qDeclarativeView);
+    m_inspector = new QDeclarativeViewInspector(qDeclarativeView, qDeclarativeView);
+}
+
+void QtQuick1Plugin::deactivate()
+{
+    delete m_inspector;
+}
+
+void QtQuick1Plugin::clientMessage(const QByteArray &message)
+{
+    if (m_inspector)
+        m_inspector->handleMessage(message);
+}
+
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
+
+Q_EXPORT_PLUGIN2(qmldbg_qtquick1, QmlJSDebugger::QtQuick1::QtQuick1Plugin)
@@ -49,23 +49,29 @@ namespace QmlJSDebugger {
 
 class AbstractViewInspector;
 
-class QDeclarativeInspectorPlugin : public QObject, public QDeclarativeInspectorInterface
+namespace QtQuick1 {
+
+class QtQuick1Plugin : public QObject, public QDeclarativeInspectorInterface
 {
     Q_OBJECT
-    Q_DISABLE_COPY(QDeclarativeInspectorPlugin)
+    Q_DISABLE_COPY(QtQuick1Plugin)
     Q_INTERFACES(QDeclarativeInspectorInterface)
 
 public:
-    QDeclarativeInspectorPlugin();
-    ~QDeclarativeInspectorPlugin();
+    QtQuick1Plugin();
+    ~QtQuick1Plugin();
 
-    void activate();
+    // QDeclarativeInspectorInterface
+    bool canHandleView(QObject *view);
+    void activate(QObject *view);
     void deactivate();
+    void clientMessage(const QByteArray &message);
 
 private:
     QPointer<AbstractViewInspector> m_inspector;
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // QDECLARATIVEINSPECTORPLUGIN_H
 
 #include "subcomponentmasklayeritem.h"
 
-#include "../qmlinspectorconstants.h"
+#include "qmlinspectorconstants.h"
 #include "qdeclarativeviewinspector.h"
 
 #include <QtGui/QPolygonF>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 SubcomponentMaskLayerItem::SubcomponentMaskLayerItem(QDeclarativeViewInspector *inspector,
                                                      QGraphicsItem *parentItem) :
@@ -127,4 +128,5 @@ QGraphicsItem *SubcomponentMaskLayerItem::currentItem() const
     return m_currentItem;
 }
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -45,6 +45,7 @@
 #include <QtWidgets/QGraphicsPolygonItem>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class QDeclarativeViewInspector;
 
@@ -66,6 +67,7 @@ private:
     QRectF m_itemPolyRect;
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // SUBCOMPONENTMASKLAYERITEM_H
@@ -53,6 +53,7 @@
 #include <QtCore/QDebug>
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 ZoomTool::ZoomTool(QDeclarativeViewInspector *view) :
     AbstractLiveEditTool(view),
@@ -325,4 +326,5 @@ qreal ZoomTool::nextZoomScale(ZoomDirection direction) const
     return 1.0f;
 }
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
@@ -48,6 +48,7 @@
 QT_FORWARD_DECLARE_CLASS(QAction)
 
 namespace QmlJSDebugger {
+namespace QtQuick1 {
 
 class ZoomTool : public AbstractLiveEditTool
 {
@@ -102,6 +103,7 @@ private:
     qreal m_currentScale;
 };
 
+} // namespace QtQuick1
 } // namespace QmlJSDebugger
 
 #endif // ZOOMTOOL_H
diff --git a/src/plugins/qmltooling/qmldbg_qtquick2/qmldbg_qtquick2.pro b/src/plugins/qmltooling/qmldbg_qtquick2/qmldbg_qtquick2.pro
new file mode 100644 (file)
index 0000000..a06c1bd
--- /dev/null
@@ -0,0 +1,31 @@
+load(qt_module)
+
+TARGET = qmldbg_qtquick2
+QT       += declarative-private core-private gui-private opengl-private v8-private
+
+load(qt_plugin)
+
+DESTDIR  = $$QT.declarative.plugins/qmltooling
+
+INCLUDEPATH *= $$PWD $$PWD/../shared
+
+SOURCES += \
+    qtquick2plugin.cpp \
+    sghighlight.cpp \
+    sgselectiontool.cpp \
+    sgviewinspector.cpp \
+    ../shared/abstracttool.cpp \
+    ../shared/abstractviewinspector.cpp
+
+HEADERS += \
+    qtquick2plugin.h \
+    sghighlight.h \
+    sgselectiontool.h \
+    sgviewinspector.h \
+    ../shared/abstracttool.h \
+    ../shared/abstractviewinspector.h \
+    ../shared/qdeclarativeinspectorprotocol.h \
+    ../shared/qmlinspectorconstants.h
+
+target.path += $$[QT_INSTALL_PLUGINS]/qmltooling
+INSTALLS += target
@@ -39,9 +39,7 @@
 **
 ****************************************************************************/
 
-#include "qdeclarativeinspectorplugin.h"
-
-#include "qtquick1/qdeclarativeviewinspector_p.h"
+#include "qtquick2plugin.h"
 #include "sgviewinspector.h"
 
 #include <QtCore/qplugin.h>
 #include <QtDeclarative/QQuickView>
 
 namespace QmlJSDebugger {
+namespace QtQuick2 {
 
-QDeclarativeInspectorPlugin::QDeclarativeInspectorPlugin() :
+QtQuick2Plugin::QtQuick2Plugin() :
     m_inspector(0)
 {
 }
 
-QDeclarativeInspectorPlugin::~QDeclarativeInspectorPlugin()
+QtQuick2Plugin::~QtQuick2Plugin()
 {
     delete m_inspector;
 }
 
-void QDeclarativeInspectorPlugin::activate()
+bool QtQuick2Plugin::canHandleView(QObject *view)
 {
-    QDeclarativeInspectorService *service = QDeclarativeInspectorService::instance();
-    QList<QObject*> views = service->views();
-    if (views.isEmpty())
-        return;
+    return qobject_cast<QQuickView*>(view);
+}
 
-    // TODO: Support multiple views
-    QObject *firstView = views.first();
-    if (QDeclarativeView *declarativeView = qobject_cast<QDeclarativeView*>(firstView))
-        m_inspector = new QDeclarativeViewInspector(declarativeView, declarativeView);
-    else if (QQuickView *sgView = qobject_cast<QQuickView*>(firstView))
-        m_inspector = new SGViewInspector(sgView, sgView);
+void QtQuick2Plugin::activate(QObject *view)
+{
+    QQuickView *qtQuickView = qobject_cast<QQuickView*>(view);
+    Q_ASSERT(qtQuickView);
+    m_inspector = new SGViewInspector(qtQuickView, qtQuickView);
 }
 
-void QDeclarativeInspectorPlugin::deactivate()
+void QtQuick2Plugin::deactivate()
 {
     delete m_inspector;
 }
 
+void QtQuick2Plugin::clientMessage(const QByteArray &message)
+{
+    if (m_inspector)
+        m_inspector->handleMessage(message);
+}
+
+} // namespace QtQuick2
 } // namespace QmlJSDebugger
 
-Q_EXPORT_PLUGIN2(declarativeinspector, QmlJSDebugger::QDeclarativeInspectorPlugin)
+Q_EXPORT_PLUGIN2(qmldbg_qtquick2, QmlJSDebugger::QtQuick2::QtQuick2Plugin)
diff --git a/src/plugins/qmltooling/qmldbg_qtquick2/qtquick2plugin.h b/src/plugins/qmltooling/qmldbg_qtquick2/qtquick2plugin.h
new file mode 100644 (file)
index 0000000..89edcad
--- /dev/null
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QDECLARATIVEINSPECTORPLUGIN_H
+#define QDECLARATIVEINSPECTORPLUGIN_H
+
+#include <QtCore/QPointer>
+#include <QtDeclarative/private/qdeclarativeinspectorinterface_p.h>
+
+namespace QmlJSDebugger {
+
+class AbstractViewInspector;
+
+namespace QtQuick2 {
+
+class QtQuick2Plugin : public QObject, public QDeclarativeInspectorInterface
+{
+    Q_OBJECT
+    Q_DISABLE_COPY(QtQuick2Plugin)
+    Q_INTERFACES(QDeclarativeInspectorInterface)
+
+public:
+    QtQuick2Plugin();
+    ~QtQuick2Plugin();
+
+    // QDeclarativeInspectorInterface
+    bool canHandleView(QObject *view);
+    void activate(QObject *view);
+    void deactivate();
+    void clientMessage(const QByteArray &message);
+
+private:
+    QPointer<AbstractViewInspector> m_inspector;
+};
+
+} // namespace QtQuick2
+} // namespace QmlJSDebugger
+
+#endif // QDECLARATIVEINSPECTORPLUGIN_H
@@ -44,6 +44,7 @@
 #include <QtGui/QPainter>
 
 namespace QmlJSDebugger {
+namespace QtQuick2 {
 
 SGHighlight::SGHighlight(QQuickItem *item, QQuickItem *parent)
     : QQuickPaintedItem(parent)
@@ -95,4 +96,5 @@ void SGHoverHighlight::paint(QPainter *painter)
     painter->drawRect(QRect(0, 0, width() - 1, height() - 1));
 }
 
+} // namespace QtQuick2
 } // namespace QmlJSDebugger
@@ -46,6 +46,7 @@
 #include <QtDeclarative/QQuickPaintedItem>
 
 namespace QmlJSDebugger {
+namespace QtQuick2 {
 
 class SGHighlight : public QQuickPaintedItem
 {
@@ -92,6 +93,7 @@ public:
     void paint(QPainter *painter);
 };
 
+} // namespace QtQuick2
 } // namespace QmlJSDebugger
 
 #endif // SGHIGHLIGHT_H
@@ -50,6 +50,7 @@
 #include <QtDeclarative/QQuickItem>
 
 namespace QmlJSDebugger {
+namespace QtQuick2 {
 
 SGSelectionTool::SGSelectionTool(SGViewInspector *inspector) :
     AbstractTool(inspector),
@@ -132,4 +133,5 @@ SGViewInspector *SGSelectionTool::inspector() const
     return static_cast<SGViewInspector*>(AbstractTool::inspector());
 }
 
+} // namespace QtQuick2
 } // namespace QmlJSDebugger
@@ -51,6 +51,7 @@ QT_FORWARD_DECLARE_CLASS(QAction)
 QT_FORWARD_DECLARE_CLASS(QQuickItem)
 
 namespace QmlJSDebugger {
+namespace QtQuick2 {
 
 class SGViewInspector;
 class SGHoverHighlight;
@@ -86,6 +87,7 @@ private:
     SGHoverHighlight *m_hoverHighlight;
 };
 
+} // namespace QtQuick2
 } // namespace QmlJSDebugger
 
 #endif // SGSELECTIONTOOL_H
@@ -53,6 +53,7 @@
 #include <cfloat>
 
 namespace QmlJSDebugger {
+namespace QtQuick2 {
 
 /*
  * Collects all the items at the given position, from top to bottom.
@@ -327,4 +328,5 @@ QString SGViewInspector::titleForItem(QQuickItem *item) const
     return constructedName;
 }
 
+} // namespace QtQuick2
 } // namespace QmlJSDebugger
@@ -53,6 +53,7 @@ class QQuickItem;
 QT_END_NAMESPACE
 
 namespace QmlJSDebugger {
+namespace QtQuick2 {
 
 class SGSelectionTool;
 class SGSelectionHighlight;
@@ -105,6 +106,7 @@ private:
     bool m_designMode;
 };
 
+} // namespace QtQuick2
 } // namespace QmlJSDebugger
 
 #endif // QSGVIEWINSPECTOR_H
index 5b735cb..d03ee07 100644 (file)
@@ -1,4 +1,5 @@
 TEMPLATE = subdirs
 
-SUBDIRS = qmldbg_tcp
-SUBDIRS += qmldbg_inspector
+SUBDIRS =  qmldbg_tcp
+SUBDIRS += qmldbg_qtquick2
+SUBDIRS += qmldbg_qtquick1
@@ -61,11 +61,8 @@ AbstractViewInspector::AbstractViewInspector(QObject *parent) :
     m_designModeBehavior(false),
     m_animationPaused(false),
     m_slowDownFactor(1.0),
-    m_debugService(0)
+    m_debugService(QDeclarativeInspectorService::instance())
 {
-    m_debugService = QDeclarativeInspectorService::instance();
-    connect(m_debugService, SIGNAL(gotMessage(QByteArray)),
-            this, SLOT(handleMessage(QByteArray)));
 }
 
 void AbstractViewInspector::createQmlObject(const QString &qml, QObject *parent,
@@ -72,6 +72,8 @@ class AbstractViewInspector : public QObject
 public:
     explicit AbstractViewInspector(QObject *parent = 0);
 
+    void handleMessage(const QByteArray &message);
+
     void createQmlObject(const QString &qml, QObject *parent,
                          const QStringList &importList,
                          const QString &filename = QString());
@@ -128,7 +130,6 @@ protected:
     virtual bool wheelEvent(QWheelEvent *event);
 
 private slots:
-    void handleMessage(const QByteArray &message);
     void sendColorChanged(const QColor &color);
 
 private:
index 262f236..5545f8e 100644 (file)
@@ -45,7 +45,7 @@
 #include <QDebug>
 #include <QThread>
 
-#include "../../../../../src/plugins/qmltooling/qmldbg_inspector/qdeclarativeinspectorprotocol.h"
+#include "../../../../../src/plugins/qmltooling/shared/qdeclarativeinspectorprotocol.h"
 #include "../shared/debugutil_p.h"
 
 using namespace QmlJSDebugger;