aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@theqtcompany.com>2015-10-22 13:07:11 +0200
committerUlf Hermann <ulf.hermann@theqtcompany.com>2015-10-22 13:07:11 +0200
commitb103f6a6b9cc0ddf3df2788816a6fd98369b1b6d (patch)
treefc90bc070f0f50a2d8768db8fa1e16611d158f18 /src/qml/debugger
parent4867a49618e0d6a476e0549aeca5134b2e3c5892 (diff)
parent8ee3673e439b4499a8a4a4280637ee0270c4a54a (diff)
Merge remote-tracking branch 'origin/5.6' into origin/dev
Conflicts: src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.cpp src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.h src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h src/qml/debugger/qqmldebugserviceinterfaces.cpp src/qml/jsruntime/qv4debugging_p.h Change-Id: I82a4ce1bcd4579181df886558f55ad2b328d1682
Diffstat (limited to 'src/qml/debugger')
-rw-r--r--src/qml/debugger/qqmldebugconnector.cpp15
-rw-r--r--src/qml/debugger/qqmldebugpluginmanager_p.h6
-rw-r--r--src/qml/debugger/qqmldebugserviceinterfaces.cpp1
-rw-r--r--src/qml/debugger/qqmldebugserviceinterfaces_p.h13
4 files changed, 30 insertions, 5 deletions
diff --git a/src/qml/debugger/qqmldebugconnector.cpp b/src/qml/debugger/qqmldebugconnector.cpp
index 460cb8f203..64a8a49bb9 100644
--- a/src/qml/debugger/qqmldebugconnector.cpp
+++ b/src/qml/debugger/qqmldebugconnector.cpp
@@ -45,10 +45,12 @@
QT_BEGIN_NAMESPACE
-// We could add more plugins here, and distinguish by arguments to instance()
+// Connectors. We could add more plugins here, and distinguish by arguments to instance()
Q_QML_DEBUG_PLUGIN_LOADER(QQmlDebugConnector)
Q_QML_IMPORT_DEBUG_PLUGIN(QQmlDebugServerFactory)
+Q_QML_IMPORT_DEBUG_PLUGIN(QQmlNativeDebugConnectorFactory)
+// Services
Q_QML_DEBUG_PLUGIN_LOADER(QQmlDebugService)
Q_QML_IMPORT_DEBUG_PLUGIN(QQmlInspectorServiceFactory)
Q_QML_IMPORT_DEBUG_PLUGIN(QQmlProfilerServiceFactory)
@@ -116,13 +118,20 @@ QQmlDebugConnector *QQmlDebugConnector::instance()
}
if (!params->instance) {
+ const QString serverConnector = QStringLiteral("QQmlDebugServer");
+ const QString nativeConnector = QStringLiteral("QQmlNativeDebugConnector");
+ const bool isNative = params->arguments.startsWith(QStringLiteral("native"));
if (!params->pluginKey.isEmpty()) {
- if (params->pluginKey != QLatin1String("QQmlDebugServer"))
+ if (params->pluginKey == serverConnector || params->pluginKey == nativeConnector)
+ params->instance = loadQQmlDebugConnector(params->pluginKey);
+ else
return 0; // We cannot load anything else, yet
} else if (params->arguments.isEmpty()) {
return 0; // no explicit class name given and no command line arguments
+ } else {
+ params->instance = loadQQmlDebugConnector(isNative ? nativeConnector : serverConnector);
}
- params->instance = loadQQmlDebugConnector(QLatin1String("QQmlDebugServer"));
+
if (params->instance) {
foreach (const QJsonObject &object, metaDataForQQmlDebugService()) {
foreach (const QJsonValue &key, object.value(QLatin1String("MetaData")).toObject()
diff --git a/src/qml/debugger/qqmldebugpluginmanager_p.h b/src/qml/debugger/qqmldebugpluginmanager_p.h
index cef463b8b3..6fffa67d7b 100644
--- a/src/qml/debugger/qqmldebugpluginmanager_p.h
+++ b/src/qml/debugger/qqmldebugpluginmanager_p.h
@@ -62,7 +62,7 @@ QT_BEGIN_NAMESPACE
}\
QList<QJsonObject> metaDataFor##interfaceName()\
{\
- return QList<QJsonObject();\
+ return QList<QJsonObject>();\
}
#define Q_QML_IMPORT_DEBUG_PLUGIN(className)
@@ -70,7 +70,9 @@ QT_BEGIN_NAMESPACE
#ifdef QT_STATIC
#define Q_QML_IMPORT_DEBUG_PLUGIN(className)\
- Q_IMPORT_PLUGIN(className)
+ QT_END_NAMESPACE\
+ Q_IMPORT_PLUGIN(className)\
+ QT_BEGIN_NAMESPACE
#else
#define Q_QML_IMPORT_DEBUG_PLUGIN(className)
#endif // QT_STATIC
diff --git a/src/qml/debugger/qqmldebugserviceinterfaces.cpp b/src/qml/debugger/qqmldebugserviceinterfaces.cpp
index 992b007e86..e0968b2656 100644
--- a/src/qml/debugger/qqmldebugserviceinterfaces.cpp
+++ b/src/qml/debugger/qqmldebugserviceinterfaces.cpp
@@ -41,5 +41,6 @@ const QString QQmlInspectorService::s_key = QStringLiteral("QmlInspector");
const QString QQmlProfilerService::s_key = QStringLiteral("CanvasFrameRate");
const QString QDebugMessageService::s_key = QStringLiteral("DebugMessages");
const QString QQmlEngineControlService::s_key = QStringLiteral("EngineControl");
+const QString QQmlNativeDebugService::s_key = QStringLiteral("NativeQmlDebugger");
QT_END_NAMESPACE
diff --git a/src/qml/debugger/qqmldebugserviceinterfaces_p.h b/src/qml/debugger/qqmldebugserviceinterfaces_p.h
index 54f9114159..a2193b5c59 100644
--- a/src/qml/debugger/qqmldebugserviceinterfaces_p.h
+++ b/src/qml/debugger/qqmldebugserviceinterfaces_p.h
@@ -154,6 +154,19 @@ protected:
};
+class Q_QML_PRIVATE_EXPORT QQmlNativeDebugService : protected QQmlDebugService
+{
+ Q_OBJECT
+
+protected:
+ friend class QQmlDebugConnector;
+
+ QQmlNativeDebugService(float version, QObject *parent = 0)
+ : QQmlDebugService(s_key, version, parent) {}
+
+ static const QString s_key;
+};
+
QT_END_NAMESPACE
#endif // QQMLDEBUGSERVICEINTERFACES_P_H