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>
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")
QDeclarativeInspectorService::QDeclarativeInspectorService()
: QDeclarativeDebugService(QLatin1String("QDeclarativeObserverMode"))
- , m_inspectorPlugin(0)
+ , m_currentInspectorPlugin(0)
{
}
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();
QDeclarativeInspectorInterface *inspector =
qobject_cast<QDeclarativeInspectorInterface*>(loader.instance());
-
if (inspector)
- return inspector;
- loader.unload();
+ m_inspectorPlugins << inspector;
+ else
+ loader.unload();
}
- return 0;
}
QT_END_NAMESPACE
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
+++ /dev/null
-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
#include <QDeclarativeItem>
namespace QmlJSDebugger {
+namespace QtQuick1 {
AbstractLiveEditTool::AbstractLiveEditTool(QDeclarativeViewInspector *editorView)
: AbstractTool(editorView)
return constructedName;
}
-
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#define ABSTRACTLIVEEDITTOOL_H
#include <QtCore/QList>
-#include "../abstracttool.h"
+#include "abstracttool.h"
QT_BEGIN_NAMESPACE
class QMouseEvent;
QT_END_NAMESPACE
namespace QmlJSDebugger {
+namespace QtQuick1 {
class QDeclarativeViewInspector;
QList<QGraphicsItem*> m_itemList;
};
-}
+} // namespace QtQuick1
+} // namesacpe QmlJSDebugger
#endif // ABSTRACTLIVEEDITTOOL_H
#include "boundingrecthighlighter.h"
#include "qdeclarativeviewinspector.h"
-#include "../qmlinspectorconstants.h"
+#include "qmlinspectorconstants.h"
#include <QtWidgets/QGraphicsPolygonItem>
#include <QtCore/QDebug>
namespace QmlJSDebugger {
+namespace QtQuick1 {
BoundingBox::BoundingBox(QGraphicsObject *itemToHighlight, QGraphicsItem *parentItem,
QObject *parent)
highlightAll();
}
-
+} // namespace QtQuick1
} // namespace QmlJSDebugger
QT_FORWARD_DECLARE_CLASS(QTimer)
namespace QmlJSDebugger {
+namespace QtQuick1 {
class QDeclarativeViewInspector;
class BoundingBox;
int type() const;
};
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#endif // BOUNDINGRECTHIGHLIGHTER_H
#include <QtGui/QPalette>
namespace QmlJSDebugger {
+namespace QtQuick1 {
ColorPickerTool::ColorPickerTool(QDeclarativeViewInspector *view) :
AbstractLiveEditTool(view)
emit selectedColorChanged(m_selectedColor);
}
+} // namespace QtQuick1
} // namespace QmlJSDebugger
QT_FORWARD_DECLARE_CLASS(QPoint)
namespace QmlJSDebugger {
+namespace QtQuick1 {
class ColorPickerTool : public AbstractLiveEditTool
{
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()
return itemList;
}
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#include <QtWidgets/QGraphicsObject>
namespace QmlJSDebugger {
+namespace QtQuick1 {
class LiveLayerItem : public QGraphicsObject
{
QList<QGraphicsItem*> findAllChildItems(const QGraphicsItem *item) const;
};
-}
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
#endif // LIVELAYERITEM_H
#include <QtCore/QDebug>
namespace QmlJSDebugger {
+namespace QtQuick1 {
LiveRubberBandSelectionManipulator::LiveRubberBandSelectionManipulator(QGraphicsObject *layerItem,
QDeclarativeViewInspector *editorView)
return m_isActive;
}
+} // namespace QtQuick1
} // namespace QmlJSDebugger
QT_FORWARD_DECLARE_CLASS(QGraphicsItem)
namespace QmlJSDebugger {
+namespace QtQuick1 {
class QDeclarativeViewInspector;
bool m_isActive;
};
-}
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
#endif // RUBBERBANDSELECTIONMANIPULATOR_H
#include "liveselectionindicator.h"
#include "qdeclarativeviewinspector_p.h"
-#include "../qmlinspectorconstants.h"
+#include "qmlinspectorconstants.h"
#include <QtWidgets/QGraphicsRectItem>
#include <QtWidgets/QGraphicsObject>
#include <QtGui/QPen>
namespace QmlJSDebugger {
+namespace QtQuick1 {
LiveSelectionIndicator::LiveSelectionIndicator(QDeclarativeViewInspector *viewInspector,
QGraphicsObject *layerItem)
}
}
-} //namespace QmlJSDebugger
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
QT_END_NAMESPACE
namespace QmlJSDebugger {
+namespace QtQuick1 {
class QDeclarativeViewInspector;
QDeclarativeViewInspector *m_view;
};
-}
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
#endif // LIVESELECTIONINDICATOR_H
#include "liveselectionrectangle.h"
-#include "../qmlinspectorconstants.h"
+#include "qmlinspectorconstants.h"
#include <QtGui/QPen>
#include <QtWidgets/QGraphicsRectItem>
#include <cmath>
namespace QmlJSDebugger {
+namespace QtQuick1 {
class SelectionRectShape : public QGraphicsRectItem
{
m_controlShape->setRect(rect);
}
-}
+} // namespace QtQuick1
+} // namespace QmlJSDebugger
QT_FORWARD_DECLARE_CLASS(QRectF)
namespace QmlJSDebugger {
+namespace QtQuick1 {
class LiveSelectionRectangle
{
QWeakPointer<QGraphicsObject> m_layerItem;
};
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#endif // LIVESELECTIONRECTANGLE_H
#include <QtCore/QDebug>
namespace QmlJSDebugger {
+namespace QtQuick1 {
LiveSelectionTool::LiveSelectionTool(QDeclarativeViewInspector *editorView) :
AbstractLiveEditTool(editorView),
m_singleSelectionManipulator.end(event->pos());
}
+} // namespace QtQuick1
} // namespace QmlJSDebugger
QT_FORWARD_DECLARE_CLASS(QAction)
namespace QmlJSDebugger {
+namespace QtQuick1 {
class LiveSelectionTool : public AbstractLiveEditTool
{
QList<QGraphicsItem*> m_contextMenuItemList;
};
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#endif // LIVESELECTIONTOOL_H
#include <QtDebug>
namespace QmlJSDebugger {
+namespace QtQuick1 {
LiveSingleSelectionManipulator::LiveSingleSelectionManipulator(QDeclarativeViewInspector *editorView)
: m_editorView(editorView),
return m_beginPoint;
}
+} // namespace QtQuick1
} // namespace QmlJSDebugger
QT_FORWARD_DECLARE_CLASS(QGraphicsItem)
namespace QmlJSDebugger {
+namespace QtQuick1 {
class QDeclarativeViewInspector;
bool m_isActive;
};
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#endif // LIVESINGLESELECTIONMANIPULATOR_H
#include <QtGui/QMouseEvent>
namespace QmlJSDebugger {
+namespace QtQuick1 {
QDeclarativeViewInspectorPrivate::QDeclarativeViewInspectorPrivate(QDeclarativeViewInspector *q) :
q(q)
return boundingRect;
}
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#include <QtQuick1/QDeclarativeView>
namespace QmlJSDebugger {
+namespace QtQuick1 {
class AbstractLiveEditTool;
class QDeclarativeViewInspectorPrivate;
friend class AbstractLiveEditTool;
};
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#endif // QDECLARATIVEVIEWINSPECTOR_H
#include "QtDeclarative/private/qdeclarativeinspectorservice_p.h"
namespace QmlJSDebugger {
+namespace QtQuick1 {
class QDeclarativeViewInspector;
class LiveSelectionTool;
static QDeclarativeViewInspectorPrivate *get(QDeclarativeViewInspector *v) { return v->d_func(); }
};
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#endif // QDECLARATIVEVIEWINSPECTOR_P_H
--- /dev/null
+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
--- /dev/null
+/****************************************************************************
+**
+** 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)
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) :
return m_currentItem;
}
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#include <QtWidgets/QGraphicsPolygonItem>
namespace QmlJSDebugger {
+namespace QtQuick1 {
class QDeclarativeViewInspector;
QRectF m_itemPolyRect;
};
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#endif // SUBCOMPONENTMASKLAYERITEM_H
#include <QtCore/QDebug>
namespace QmlJSDebugger {
+namespace QtQuick1 {
ZoomTool::ZoomTool(QDeclarativeViewInspector *view) :
AbstractLiveEditTool(view),
return 1.0f;
}
+} // namespace QtQuick1
} // namespace QmlJSDebugger
QT_FORWARD_DECLARE_CLASS(QAction)
namespace QmlJSDebugger {
+namespace QtQuick1 {
class ZoomTool : public AbstractLiveEditTool
{
qreal m_currentScale;
};
+} // namespace QtQuick1
} // namespace QmlJSDebugger
#endif // ZOOMTOOL_H
--- /dev/null
+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
**
****************************************************************************/
-#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)
--- /dev/null
+/****************************************************************************
+**
+** 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
#include <QtGui/QPainter>
namespace QmlJSDebugger {
+namespace QtQuick2 {
SGHighlight::SGHighlight(QQuickItem *item, QQuickItem *parent)
: QQuickPaintedItem(parent)
painter->drawRect(QRect(0, 0, width() - 1, height() - 1));
}
+} // namespace QtQuick2
} // namespace QmlJSDebugger
#include <QtDeclarative/QQuickPaintedItem>
namespace QmlJSDebugger {
+namespace QtQuick2 {
class SGHighlight : public QQuickPaintedItem
{
void paint(QPainter *painter);
};
+} // namespace QtQuick2
} // namespace QmlJSDebugger
#endif // SGHIGHLIGHT_H
#include <QtDeclarative/QQuickItem>
namespace QmlJSDebugger {
+namespace QtQuick2 {
SGSelectionTool::SGSelectionTool(SGViewInspector *inspector) :
AbstractTool(inspector),
return static_cast<SGViewInspector*>(AbstractTool::inspector());
}
+} // namespace QtQuick2
} // namespace QmlJSDebugger
QT_FORWARD_DECLARE_CLASS(QQuickItem)
namespace QmlJSDebugger {
+namespace QtQuick2 {
class SGViewInspector;
class SGHoverHighlight;
SGHoverHighlight *m_hoverHighlight;
};
+} // namespace QtQuick2
} // namespace QmlJSDebugger
#endif // SGSELECTIONTOOL_H
#include <cfloat>
namespace QmlJSDebugger {
+namespace QtQuick2 {
/*
* Collects all the items at the given position, from top to bottom.
return constructedName;
}
+} // namespace QtQuick2
} // namespace QmlJSDebugger
QT_END_NAMESPACE
namespace QmlJSDebugger {
+namespace QtQuick2 {
class SGSelectionTool;
class SGSelectionHighlight;
bool m_designMode;
};
+} // namespace QtQuick2
} // namespace QmlJSDebugger
#endif // QSGVIEWINSPECTOR_H
TEMPLATE = subdirs
-SUBDIRS = qmldbg_tcp
-SUBDIRS += qmldbg_inspector
+SUBDIRS = qmldbg_tcp
+SUBDIRS += qmldbg_qtquick2
+SUBDIRS += qmldbg_qtquick1
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,
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());
virtual bool wheelEvent(QWheelEvent *event);
private slots:
- void handleMessage(const QByteArray &message);
void sendColorChanged(const QColor &color);
private:
#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;