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):
|
||||
(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
|
||||
isShared = bool(typeStuff & 0x40000000)
|
||||
|
||||
|
@@ -4003,7 +4003,7 @@ void tst_Dumpers::dumper_data()
|
||||
//+ Check("this.@1.@1", "[@QObject]", "\"This is thread #3\"", "@QObject");
|
||||
|
||||
|
||||
QTest::newRow("QVariant")
|
||||
QTest::newRow("QVariant1")
|
||||
<< Data("#include <QMap>\n"
|
||||
"#include <QStringList>\n"
|
||||
"#include <QVariant>\n"
|
||||
@@ -4017,9 +4017,7 @@ void tst_Dumpers::dumper_data()
|
||||
|
||||
"QVariant v0;\n\n"
|
||||
|
||||
"QVariant::Type t1 = QVariant::String;\n"
|
||||
"QVariant v1 = QVariant(t1, (void*)0);\n"
|
||||
//"*(QString*)v1.data() = QString(\"Some string\");\n\n"
|
||||
"QVariant v1 = QVariant(QString(\"A string\"));\n"
|
||||
|
||||
"MyType my;\n"
|
||||
"my[1] = (QStringList() << \"Hello\");\n"
|
||||
@@ -4033,7 +4031,7 @@ void tst_Dumpers::dumper_data()
|
||||
"list << 1 << 2 << 3;\n"
|
||||
"QVariant v3 = QVariant::fromValue(list);",
|
||||
|
||||
"&my, &v0, &v1, &v2, &t, &s, &list, &v3, &t1")
|
||||
"&my, &v0, &v1, &v2, &t, &s, &list, &v3")
|
||||
|
||||
+ CoreProfile()
|
||||
|
||||
|
Reference in New Issue
Block a user