forked from qt-creator/qt-creator
Debugger: Adapt QVariant dumper and tests to Qt 6
Task-number: QTCREATORBUG-24098 Change-Id: I9543bad098bb11d21079c1e2711b639bde3873b7 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -1997,7 +1997,49 @@ qdumpHelper_QVariants_F = [
|
|||||||
|
|
||||||
|
|
||||||
def qdump__QVariant(d, value):
|
def qdump__QVariant(d, value):
|
||||||
(data, typeStuff) = d.split('8sI', value)
|
if d.qtVersion() >= 0x060000:
|
||||||
|
qdumpHelper__QVariant6(d, value)
|
||||||
|
else:
|
||||||
|
qdumpHelper__QVariant45(d, value)
|
||||||
|
|
||||||
|
def qdumpHelper__QVariant6(d, value):
|
||||||
|
data, typeStuff = d.split('24sp', value)
|
||||||
|
packedType = typeStuff >> 2
|
||||||
|
metaTypeInterface = typeStuff - (typeStuff & 3)
|
||||||
|
|
||||||
|
if metaTypeInterface == 0:
|
||||||
|
qdumpHelper_QVariant_0(d, value)
|
||||||
|
return
|
||||||
|
|
||||||
|
revision, alignment, size, flags, variantType, metaObjectPtr, name = \
|
||||||
|
d.split('HHIIIpp', metaTypeInterface)
|
||||||
|
|
||||||
|
# Well-known simple type.
|
||||||
|
if variantType <= 6:
|
||||||
|
qdumpHelper_QVariants_A[variantType](d, value)
|
||||||
|
return None
|
||||||
|
|
||||||
|
# Extended Core type (Qt 5+)
|
||||||
|
if variantType >= 31 and variantType <= 38:
|
||||||
|
qdumpHelper_QVariants_D[variantType - 31](d, value)
|
||||||
|
return None
|
||||||
|
|
||||||
|
typeName = d.extractCString(name).decode('utf8')
|
||||||
|
isShared = bool(typeStuff & 0x1)
|
||||||
|
|
||||||
|
if isShared:
|
||||||
|
# indirectly stored items (QRectF, ...)
|
||||||
|
ptr = d.extractPointer(value)
|
||||||
|
_, data = d.split('8s{%s}' % typeName, ptr)
|
||||||
|
d.putItem(data)
|
||||||
|
else:
|
||||||
|
d.putItem(d.createValue(data, typeName))
|
||||||
|
|
||||||
|
d.putBetterType('%sQVariant (%s)' % (d.qtNamespace(), typeName))
|
||||||
|
|
||||||
|
|
||||||
|
def qdumpHelper__QVariant45(d, value):
|
||||||
|
data, typeStuff = d.split('8sI', value)
|
||||||
variantType = typeStuff & 0x3fffffff
|
variantType = typeStuff & 0x3fffffff
|
||||||
isShared = bool(typeStuff & 0x40000000)
|
isShared = bool(typeStuff & 0x40000000)
|
||||||
|
|
||||||
|
@@ -4003,7 +4003,7 @@ void tst_Dumpers::dumper_data()
|
|||||||
//+ Check("this.@1.@1", "[@QObject]", "\"This is thread #3\"", "@QObject");
|
//+ Check("this.@1.@1", "[@QObject]", "\"This is thread #3\"", "@QObject");
|
||||||
|
|
||||||
|
|
||||||
QTest::newRow("QVariant")
|
QTest::newRow("QVariant1")
|
||||||
<< Data("#include <QMap>\n"
|
<< Data("#include <QMap>\n"
|
||||||
"#include <QStringList>\n"
|
"#include <QStringList>\n"
|
||||||
"#include <QVariant>\n"
|
"#include <QVariant>\n"
|
||||||
@@ -4017,9 +4017,7 @@ void tst_Dumpers::dumper_data()
|
|||||||
|
|
||||||
"QVariant v0;\n\n"
|
"QVariant v0;\n\n"
|
||||||
|
|
||||||
"QVariant::Type t1 = QVariant::String;\n"
|
"QVariant v1 = QVariant(QString(\"A string\"));\n"
|
||||||
"QVariant v1 = QVariant(t1, (void*)0);\n"
|
|
||||||
//"*(QString*)v1.data() = QString(\"Some string\");\n\n"
|
|
||||||
|
|
||||||
"MyType my;\n"
|
"MyType my;\n"
|
||||||
"my[1] = (QStringList() << \"Hello\");\n"
|
"my[1] = (QStringList() << \"Hello\");\n"
|
||||||
@@ -4033,7 +4031,7 @@ void tst_Dumpers::dumper_data()
|
|||||||
"list << 1 << 2 << 3;\n"
|
"list << 1 << 2 << 3;\n"
|
||||||
"QVariant v3 = QVariant::fromValue(list);",
|
"QVariant v3 = QVariant::fromValue(list);",
|
||||||
|
|
||||||
"&my, &v0, &v1, &v2, &t, &s, &list, &v3, &t1")
|
"&my, &v0, &v1, &v2, &t, &s, &list, &v3")
|
||||||
|
|
||||||
+ CoreProfile()
|
+ CoreProfile()
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user