aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/debugger/qdeclarativeenginedebugservice.cpp13
-rw-r--r--tests/auto/declarative/debugger/qdeclarativeenginedebug/tst_qdeclarativeenginedebug.cpp7
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()