From e5595f3dc1e96de91066fd0e044b102a845d1fb1 Mon Sep 17 00:00:00 2001
From: Aurindam Jana <aurindam.jana@nokia.com>
Date: Wed, 28 Mar 2012 16:12:52 +0200
Subject: [PATCH] QmlDebugging: Send parent debug id with object info

Change-Id: Ic197656b90a309d1d9e72b9d6648fee86164c3e1
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
---
 src/qml/debugger/qqmlenginedebugservice.cpp            | 10 ++++++----
 src/qml/debugger/qqmlenginedebugservice_p.h            |  1 +
 .../qqmlenginedebugservice/qqmlenginedebugclient.cpp   |  4 +++-
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/qml/debugger/qqmlenginedebugservice.cpp b/src/qml/debugger/qqmlenginedebugservice.cpp
index 4ae956a14f..4938347b9b 100644
--- a/src/qml/debugger/qqmlenginedebugservice.cpp
+++ b/src/qml/debugger/qqmlenginedebugservice.cpp
@@ -67,7 +67,7 @@ QQmlEngineDebugService *QQmlEngineDebugService::instance()
 }
 
 QQmlEngineDebugService::QQmlEngineDebugService(QObject *parent)
-    : QQmlDebugService(QStringLiteral("QmlDebugger"), 1, parent),
+    : QQmlDebugService(QStringLiteral("QmlDebugger"), 2, parent),
       m_watch(new QQmlWatcher(this)),
       m_statesDelegate(0)
 {
@@ -86,7 +86,8 @@ QDataStream &operator<<(QDataStream &ds,
                         const QQmlEngineDebugService::QQmlObjectData &data)
 {
     ds << data.url << data.lineNumber << data.columnNumber << data.idString
-       << data.objectName << data.objectType << data.objectId << data.contextId;
+       << data.objectName << data.objectType << data.objectId << data.contextId
+       << data.parentId;
     return ds;
 }
 
@@ -94,7 +95,8 @@ QDataStream &operator>>(QDataStream &ds,
                         QQmlEngineDebugService::QQmlObjectData &data)
 {
     ds >> data.url >> data.lineNumber >> data.columnNumber >> data.idString
-       >> data.objectName >> data.objectType >> data.objectId >> data.contextId;
+       >> data.objectName >> data.objectType >> data.objectId >> data.contextId
+       >> data.parentId;
     return ds;
 }
 
@@ -378,7 +380,7 @@ QQmlEngineDebugService::objectData(QObject *object)
     rv.objectName = object->objectName();
     rv.objectId = QQmlDebugService::idForObject(object);
     rv.contextId = QQmlDebugService::idForObject(qmlContext(object));
-
+    rv.parentId = QQmlDebugService::idForObject(object->parent());
     QQmlType *type = QQmlMetaType::qmlType(object->metaObject());
     if (type) {
         QString typeName = type->qmlTypeName();
diff --git a/src/qml/debugger/qqmlenginedebugservice_p.h b/src/qml/debugger/qqmlenginedebugservice_p.h
index 19a5776e27..3b855cb602 100644
--- a/src/qml/debugger/qqmlenginedebugservice_p.h
+++ b/src/qml/debugger/qqmlenginedebugservice_p.h
@@ -83,6 +83,7 @@ public:
         QString objectType;
         int objectId;
         int contextId;
+        int parentId;
     };
 
     struct QQmlObjectProperty {
diff --git a/tests/auto/qml/debugger/qqmlenginedebugservice/qqmlenginedebugclient.cpp b/tests/auto/qml/debugger/qqmlenginedebugservice/qqmlenginedebugclient.cpp
index 9639a36065..0c5dfddffa 100644
--- a/tests/auto/qml/debugger/qqmlenginedebugservice/qqmlenginedebugclient.cpp
+++ b/tests/auto/qml/debugger/qqmlenginedebugservice/qqmlenginedebugclient.cpp
@@ -50,12 +50,14 @@ struct QmlObjectData {
     QString objectType;
     int objectId;
     int contextId;
+    int parentId;
 };
 
 QDataStream &operator>>(QDataStream &ds, QmlObjectData &data)
 {
     ds >> data.url >> data.lineNumber >> data.columnNumber >> data.idString
-       >> data.objectName >> data.objectType >> data.objectId >> data.contextId;
+       >> data.objectName >> data.objectType >> data.objectId >> data.contextId
+       >> data.parentId;
     return ds;
 }
 
-- 
GitLab