diff options
author | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2015-11-30 20:04:37 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2015-12-15 15:59:57 +0000 |
commit | 63dede74a386012f9bd5a6896c3fd6ef6ffa01cd (patch) | |
tree | 11457288648f4d7ff2c0408546436aae4f2d9185 /src/plugins/qmltooling/qmldbg_native | |
parent | 18c4295e25503ae637a715858de5c94a3d105a92 (diff) |
QmlDebug: Add functionality to query if a server knows an engine
Change-Id: Iba40a1705c18d19c4ef5723aeb8ee5113e31041c
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/plugins/qmltooling/qmldbg_native')
-rw-r--r-- | src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp | 13 | ||||
-rw-r--r-- | src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h | 2 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp b/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp index e4054e100d..93e01b3824 100644 --- a/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp +++ b/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp @@ -225,6 +225,8 @@ QQmlDebugService *QQmlNativeDebugConnector::service(const QString &name) const void QQmlNativeDebugConnector::addEngine(QJSEngine *engine) { + Q_ASSERT(!m_engines.contains(engine)); + TRACE_PROTOCOL("Add engine to connector:" << engine); foreach (QQmlDebugService *service, m_services) service->engineAboutToBeAdded(engine); @@ -233,10 +235,14 @@ void QQmlNativeDebugConnector::addEngine(QJSEngine *engine) foreach (QQmlDebugService *service, m_services) service->engineAdded(engine); + + m_engines.append(engine); } void QQmlNativeDebugConnector::removeEngine(QJSEngine *engine) { + Q_ASSERT(m_engines.contains(engine)); + TRACE_PROTOCOL("Remove engine from connector:" << engine); foreach (QQmlDebugService *service, m_services) service->engineAboutToBeRemoved(engine); @@ -245,6 +251,13 @@ void QQmlNativeDebugConnector::removeEngine(QJSEngine *engine) foreach (QQmlDebugService *service, m_services) service->engineRemoved(engine); + + m_engines.removeOne(engine); +} + +bool QQmlNativeDebugConnector::hasEngine(QJSEngine *engine) +{ + return m_engines.contains(engine); } void QQmlNativeDebugConnector::announceObjectAvailability(const QString &objectType, diff --git a/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h b/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h index a883608fd4..5b1bc90478 100644 --- a/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h +++ b/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h @@ -51,6 +51,7 @@ public: QQmlDebugService *service(const QString &name) const Q_DECL_OVERRIDE; void addEngine(QJSEngine *engine) Q_DECL_OVERRIDE; void removeEngine(QJSEngine *engine) Q_DECL_OVERRIDE; + bool hasEngine(QJSEngine *engine) Q_DECL_OVERRIDE; bool addService(const QString &name, QQmlDebugService *service) Q_DECL_OVERRIDE; bool removeService(const QString &name) Q_DECL_OVERRIDE; bool open(const QVariantHash &configuration) Q_DECL_OVERRIDE; @@ -64,6 +65,7 @@ private: void announceObjectAvailability(const QString &objectType, QObject *object, bool available); QVector<QQmlDebugService *> m_services; + QVector<QJSEngine *> m_engines; bool m_blockingMode; }; |