diff --git a/src/plugins/qmljsinspector/qmljsclientproxy.cpp b/src/plugins/qmljsinspector/qmljsclientproxy.cpp index c2392e25a5b..171e1fee1db 100644 --- a/src/plugins/qmljsinspector/qmljsclientproxy.cpp +++ b/src/plugins/qmljsinspector/qmljsclientproxy.cpp @@ -528,7 +528,7 @@ quint32 ClientProxy::fetchContextObject(const QmlDebugObjectReference& obj) return m_engineClient->queryObject(obj); } -void ClientProxy::fetchContextObjectRecursive( +void ClientProxy::fetchRootObjects( const QmlDebugContextReference& context, bool clear) { if (!isConnected()) @@ -541,16 +541,19 @@ void ClientProxy::fetchContextObjectRecursive( quint32 queryId = 0; using namespace QmlJsDebugClient::Constants; if (m_engineClient->objectName() == QML_DEBUGGER && - m_engineClient->serviceVersion() >= CURRENT_SUPPORTED_VERSION) - queryId = fetchContextObject(obj); - else + m_engineClient->serviceVersion() >= CURRENT_SUPPORTED_VERSION) { + //Fetch only root objects + if (obj.parentId() == -1) + queryId = fetchContextObject(obj); + } else { queryId = m_engineClient->queryObjectRecursive(obj); + } if (queryId) m_objectTreeQueryIds << queryId; } foreach (const QmlDebugContextReference& child, context.contexts()) { - fetchContextObjectRecursive(child, false); + fetchRootObjects(child, false); } } diff --git a/src/plugins/qmljsinspector/qmljsclientproxy.h b/src/plugins/qmljsinspector/qmljsclientproxy.h index 38e26e52de8..0e7c9060347 100644 --- a/src/plugins/qmljsinspector/qmljsclientproxy.h +++ b/src/plugins/qmljsinspector/qmljsclientproxy.h @@ -96,7 +96,7 @@ public: quint32 fetchContextObject(const QmlDebugObjectReference& obj); void addObjectToTree(const QmlDebugObjectReference &obj); - void fetchContextObjectRecursive(const QmlDebugContextReference &context, bool clear); + void fetchRootObjects(const QmlDebugContextReference &context, bool clear); void insertObjectInTreeIfNeeded(const QmlDebugObjectReference &object); QDeclarativeDebugClient *qmlDebugger() const; diff --git a/src/plugins/qmljsinspector/qmljsinspector.cpp b/src/plugins/qmljsinspector/qmljsinspector.cpp index 7e1188ce14f..745777780c7 100644 --- a/src/plugins/qmljsinspector/qmljsinspector.cpp +++ b/src/plugins/qmljsinspector/qmljsinspector.cpp @@ -371,7 +371,7 @@ void InspectorUi::disconnected() void InspectorUi::onRootContext(const QVariant &value) { if (m_crumblePath->dataForLastIndex().toInt() < 0) { - m_clientProxy->fetchContextObjectRecursive( + m_clientProxy->fetchRootObjects( qvariant_cast( value), true); } else {