Inspector: Select only known objects for 4.x

Change-Id: If052b4a018d5d0c20086a0251d7d1b206e7d4192
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
This commit is contained in:
Aurindam Jana
2012-10-05 12:46:30 +02:00
parent 6f7ce3f48e
commit 9b68e81fea

View File

@@ -147,9 +147,16 @@ bool QmlInspectorAgent::selectObjectInTree(int debugId)
m_objectToSelect = 0;
return true;
} else {
// we've to fetch it
// we may have to fetch it
m_objectToSelect = debugId;
fetchObject(debugId);
using namespace QmlDebug::Constants;
if (m_engineClient->objectName() == QLatin1String(QDECLARATIVE_ENGINE)) {
// reset current Selection
QByteArray root = m_debuggerEngine->watchHandler()->watchData(QModelIndex())->iname;
m_debuggerEngine->watchHandler()->setCurrentItem(root);
} else {
fetchObject(debugId);
}
return false;
}
}
@@ -708,9 +715,9 @@ void QmlInspectorAgent::insertObjectInTree(const ObjectReference &object)
emit objectTreeUpdated();
emit objectFetched(last);
if (m_objectToSelect == last.debugId()) {
if (m_objectToSelect == last.debugId() || m_debugIdToIname.keys().contains(m_objectToSelect)) {
// select item in view
QByteArray iname = m_debugIdToIname.value(last.debugId());
QByteArray iname = m_debugIdToIname.value(m_objectToSelect);
if (debug)
qDebug() << " selecting" << iname << "in tree";
watchHandler->setCurrentItem(iname);
@@ -808,6 +815,7 @@ QList<WatchData> QmlInspectorAgent::buildWatchData(const ObjectReference &obj,
list.append(objWatch);
addObjectWatch(objWatch.id);
m_debugIdToIname.insert(objDebugId, objIname);
}
if (!m_debuggerEngine->watchHandler()->isExpandedIName(objIname)) {
@@ -848,7 +856,6 @@ QList<WatchData> QmlInspectorAgent::buildWatchData(const ObjectReference &obj,
propertyWatch.setHasChildren(false);
list.append(propertyWatch);
}
m_debugIdToIname.insert(objDebugId, objIname);
}
// recurse