diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py index 141c9a2ff5969e400b2b144f87cf0ee92e1470a3..71c1682f4ae4ca059374f7725310d1c1991e0ed2 100644 --- a/share/qtcreator/dumper/dumper.py +++ b/share/qtcreator/dumper/dumper.py @@ -265,6 +265,10 @@ movableTypes = set([ "QXmlStreamNotationDeclaration", "QXmlStreamEntityDeclaration" ]) +movableTypes5 = set([ + "QStringList" +]) + class DumperBase: diff --git a/share/qtcreator/dumper/gbridge.py b/share/qtcreator/dumper/gbridge.py index 1437e66b01f31cc704ae206d801cede1dea2ec77..a53961ca9f30e82ad9dc9f0b21007f289fbc02d7 100644 --- a/share/qtcreator/dumper/gbridge.py +++ b/share/qtcreator/dumper/gbridge.py @@ -1414,7 +1414,10 @@ class Dumper(DumperBase): return True if self.isSimpleType(type): return True - return self.stripNamespaceFromType(str(type)) in movableTypes + typeName = self.stripNamespaceFromType(str(type)) + if typeName in movableTypes: + return True + return self.qtVersion() >= 0x050000 and typeName in movableTypes5 def putIntItem(self, name, value): with SubItem(self, name): diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 1b2458d6694850e0a1d77d7c788028d2353a0b87..589333064ab1a5b201c5966e0bd2b356dea85b0c 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -1618,6 +1618,19 @@ void tst_Dumpers::dumper_data() % Check("l.0", "[0]", "101", "unsigned int") % Check("l.2", "[2]", "102", "unsigned int"); + QTest::newRow("QListStringList") + << Data("#include <QStringList>\n", + "QStringList l;\n" + "l.append(\"aaa\");\n" + "QList<QStringList> ll;\n" + "ll.append(l);\n" + "ll.append(l);\n") + % CoreProfile() + % Check("ll", "<2 items>", "@QList<@QStringList>") + % Check("l", "<1 items>", "@QStringList") + % Check("ll.1", "[1]", "<1 items>", "@QStringList") + % Check("ll.1.0", "[0]", "\"aaa\"", "@QString"); + QTest::newRow("QListUShort") << Data("#include <QList>\n", "QList<ushort> l0,l;\n"