diff options
author | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2015-10-22 13:07:11 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2015-10-22 13:07:11 +0200 |
commit | b103f6a6b9cc0ddf3df2788816a6fd98369b1b6d (patch) | |
tree | fc90bc070f0f50a2d8768db8fa1e16611d158f18 /src/qml/debugger | |
parent | 4867a49618e0d6a476e0549aeca5134b2e3c5892 (diff) | |
parent | 8ee3673e439b4499a8a4a4280637ee0270c4a54a (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.cpp | 15 | ||||
-rw-r--r-- | src/qml/debugger/qqmldebugpluginmanager_p.h | 6 | ||||
-rw-r--r-- | src/qml/debugger/qqmldebugserviceinterfaces.cpp | 1 | ||||
-rw-r--r-- | src/qml/debugger/qqmldebugserviceinterfaces_p.h | 13 |
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 |