diff --git a/src/libs/qmldebug/baseenginedebugclient.cpp b/src/libs/qmldebug/baseenginedebugclient.cpp index 7817ac65e2f..bc85287e8c9 100644 --- a/src/libs/qmldebug/baseenginedebugclient.cpp +++ b/src/libs/qmldebug/baseenginedebugclient.cpp @@ -188,7 +188,10 @@ void BaseEngineDebugClient::messageReceived(const QByteArray &data) ds >> type; if (type == "OBJECT_CREATED") { - emit newObjects(); + int engineId; + int objectId; + ds >> engineId >> objectId; + emit newObject(engineId, objectId, -1); return; } diff --git a/src/libs/qmldebug/baseenginedebugclient.h b/src/libs/qmldebug/baseenginedebugclient.h index 75fc7a16593..ae898822c55 100644 --- a/src/libs/qmldebug/baseenginedebugclient.h +++ b/src/libs/qmldebug/baseenginedebugclient.h @@ -81,7 +81,7 @@ public: signals: void newStatus(QmlDebug::ClientStatus status); - void newObjects(); + void newObject(int engineId, int objectId, int parentId); void valueChanged(int debugId, const QByteArray &name, const QVariant &value); void result(quint32 queryId, const QVariant &result, const QByteArray &type); diff --git a/src/libs/qmldebug/qmlenginedebugclient.cpp b/src/libs/qmldebug/qmlenginedebugclient.cpp index 2ebfadbc5d3..35d9ee7a0ff 100644 --- a/src/libs/qmldebug/qmlenginedebugclient.cpp +++ b/src/libs/qmldebug/qmlenginedebugclient.cpp @@ -90,4 +90,22 @@ quint32 QmlEngineDebugClient::setMethodBody( return id; } +void QmlEngineDebugClient::messageReceived(const QByteArray &data) +{ + QDataStream ds(data); + int queryId; + QByteArray type; + ds >> type >> queryId; + + if (type == "OBJECT_CREATED") { + int engineId; + int objectId; + int parentId; + ds >> engineId >> objectId >> parentId; + emit newObject(engineId, objectId, parentId); + return; + } else { + BaseEngineDebugClient::messageReceived(data); + } +} } // namespace QmlDebug diff --git a/src/libs/qmldebug/qmlenginedebugclient.h b/src/libs/qmldebug/qmlenginedebugclient.h index 22119f75df5..adb2e434d7a 100644 --- a/src/libs/qmldebug/qmlenginedebugclient.h +++ b/src/libs/qmldebug/qmlenginedebugclient.h @@ -51,6 +51,9 @@ public: quint32 resetBindingForObject(int objectDebugId, const QString &propertyName); quint32 setMethodBody(int objectDebugId, const QString &methodName, const QString &methodBody); + +protected: + void messageReceived(const QByteArray &data); }; } // namespace QmlDebug diff --git a/src/plugins/debugger/qml/qmlinspectoragent.cpp b/src/plugins/debugger/qml/qmlinspectoragent.cpp index 0b83f52fc4f..9cb35e0ffd4 100644 --- a/src/plugins/debugger/qml/qmlinspectoragent.cpp +++ b/src/plugins/debugger/qml/qmlinspectoragent.cpp @@ -345,8 +345,8 @@ void QmlInspectorAgent::setEngineClient(BaseEngineDebugClient *client) this, SLOT(updateStatus())); disconnect(m_engineClient, SIGNAL(result(quint32,QVariant,QByteArray)), this, SLOT(onResult(quint32,QVariant,QByteArray))); - disconnect(m_engineClient, SIGNAL(newObjects()), - this, SLOT(newObjects())); + disconnect(m_engineClient, SIGNAL(newObject(int,int,int)), + this, SLOT(newObject(int,int,int))); } m_engineClient = client; @@ -356,8 +356,8 @@ void QmlInspectorAgent::setEngineClient(BaseEngineDebugClient *client) this, SLOT(updateStatus())); connect(m_engineClient, SIGNAL(result(quint32,QVariant,QByteArray)), this, SLOT(onResult(quint32,QVariant,QByteArray))); - connect(m_engineClient, SIGNAL(newObjects()), - this, SLOT(newObjects())); + connect(m_engineClient, SIGNAL(newObject(int,int,int)), + this, SLOT(newObject(int,int,int))); } updateStatus(); @@ -425,7 +425,7 @@ void QmlInspectorAgent::onResult(quint32 queryId, const QVariant &value, } -void QmlInspectorAgent::newObjects() +void QmlInspectorAgent::newObject(int /*engineId*/, int /*objectId*/, int /*parentId*/) { if (debug) qDebug() << __FUNCTION__ << "()"; diff --git a/src/plugins/debugger/qml/qmlinspectoragent.h b/src/plugins/debugger/qml/qmlinspectoragent.h index 9248a9d7c2e..0d0eafbe625 100644 --- a/src/plugins/debugger/qml/qmlinspectoragent.h +++ b/src/plugins/debugger/qml/qmlinspectoragent.h @@ -102,7 +102,7 @@ signals: private slots: void updateStatus(); void onResult(quint32 queryId, const QVariant &value, const QByteArray &type); - void newObjects(); + void newObject(int engineId, int objectId, int parentId); private: void reloadEngines();