debugger: improve QVariant(QString) dumper

This commit is contained in:
hjk
2010-05-20 13:14:20 +02:00
parent df0e1e5625
commit dd714e9ccb
3 changed files with 18 additions and 14 deletions

View File

@@ -1461,9 +1461,9 @@ def qdump__QUrl(d, item):
def qdumpHelper__QVariant(d, value):
#warn("VARIANT TYPE: %s : " % variantType)
data = value["d"]["data"]
variantType = int(value["d"]["type"])
#warn("VARIANT TYPE: %s : " % variantType)
val = None
inner = ""
innert = ""
@@ -1605,15 +1605,18 @@ def qdumpHelper__QVariant(d, value):
def qdump__QVariant(d, item):
val, inner, innert = qdumpHelper__QVariant(d, item.value)
#warn("VARIANT DATA: '%s' '%s' '%s': " % (val, inner, innert))
if len(inner):
# Build-in types.
#d.putValue("(%s)" % innert)
d.putType("%sQVariant (%s)" % (d.ns, innert))
d.putNumChild(1)
if d.isExpanded(item):
with Children(d):
d.putItem(Item(val, item.iname, "data", "data"))
if len(inner):
innerType = gdb.lookup_type(inner)
# FIXME: Why "shared"?
if innerType.sizeof > item.value["d"]["data"].type.sizeof:
v = item.value["d"]["data"]["shared"]["ptr"] \
.cast(innerType.pointer()).dereference()
else:
v = item.value["d"]["data"].cast(innerType)
d.putItemHelper(Item(v, item.iname))
d.putType("%sQVariant (%s)" % (d.ns, innert), d.currentTypePriority + 1)
else:
# User types.
d_member = item.value["d"]