diff options
-rw-r--r-- | src/declarative/debugger/qdeclarativeenginedebugservice.cpp | 13 | ||||
-rw-r--r-- | tests/auto/declarative/debugger/qdeclarativeenginedebug/tst_qdeclarativeenginedebug.cpp | 7 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/declarative/debugger/qdeclarativeenginedebugservice.cpp b/src/declarative/debugger/qdeclarativeenginedebugservice.cpp index cd500e1ad6..4943959c33 100644 --- a/src/declarative/debugger/qdeclarativeenginedebugservice.cpp +++ b/src/declarative/debugger/qdeclarativeenginedebugservice.cpp @@ -176,6 +176,9 @@ QVariant QDeclarativeEngineDebugService::valueContents(const QVariant &value) co { int userType = value.userType(); + //QObject * is not streamable. + //Convert all such instances to a String value + if (value.type() == QVariant::List) { QVariantList contents; QVariantList list = value.toList(); @@ -185,6 +188,16 @@ QVariant QDeclarativeEngineDebugService::valueContents(const QVariant &value) co return contents; } + if (value.type() == QVariant::Map) { + QVariantMap contents; + QMapIterator<QString, QVariant> i(value.toMap()); + while (i.hasNext()) { + i.next(); + contents.insert(i.key(), valueContents(i.value())); + } + return contents; + } + if (QDeclarativeValueTypeFactory::isValueType(userType)) return value; diff --git a/tests/auto/declarative/debugger/qdeclarativeenginedebug/tst_qdeclarativeenginedebug.cpp b/tests/auto/declarative/debugger/qdeclarativeenginedebug/tst_qdeclarativeenginedebug.cpp index 098ac90ca5..246ba6080a 100644 --- a/tests/auto/declarative/debugger/qdeclarativeenginedebug/tst_qdeclarativeenginedebug.cpp +++ b/tests/auto/declarative/debugger/qdeclarativeenginedebug/tst_qdeclarativeenginedebug.cpp @@ -317,11 +317,15 @@ void tst_QDeclarativeEngineDebug::initTestCase() "}" "property variant varObj\n" "property variant varObjList: []\n" + "property variant varObjMap\n" "Component.onCompleted: {\n" "varObj = blueRect;\n" "var list = varObjList;\n" "list[0] = blueRect;\n" "varObjList = list;\n" + "var map = new Object;\n" + "map.rect = blueRect;\n" + "varObjMap = map;\n" "}\n" "NonScriptPropertyElement {\n" "}\n" @@ -852,6 +856,9 @@ void tst_QDeclarativeEngineDebug::queryExpressionResult_data() QTest::newRow("bad expr") << "aeaef" << qVariantFromValue(QString("<undefined>")); QTest::newRow("QObject*") << "varObj" << qVariantFromValue(QString("<unnamed object>")); QTest::newRow("list of QObject*") << "varObjList" << qVariantFromValue(QString("<unknown value>")); + QVariantMap map; + map.insert(QLatin1String("rect"), QVariant(QLatin1String("<unnamed object>"))); + QTest::newRow("varObjMap") << "varObjMap" << qVariantFromValue(map); } void tst_QDeclarativeEngineDebug::tst_QDeclarativeDebugFileReference() |