aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-12-04 15:01:29 +0100
committerhjk <hjk@qt.io>2020-12-10 08:52:49 +0000
commit276c0ae4825e3d40c9243fd879db8ea5c8262936 (patch)
treeb29162319eeff918a578545bf499e3d07febea50 /share
parent34dfbe73b6eb8eab17eabf73d7ab9d563825df7a (diff)
Debugger: Adapt QStandardItemDumper to Qt6
Task-number: QTCREATORBUG-24098 Change-Id: I1c21e6a1ee3db3532029638eedfcf58eead53424 Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'share')
-rw-r--r--share/qtcreator/debugger/dumper.py5
-rw-r--r--share/qtcreator/debugger/qttypes.py24
2 files changed, 18 insertions, 11 deletions
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py
index 518767c512..113dabb21b 100644
--- a/share/qtcreator/debugger/dumper.py
+++ b/share/qtcreator/debugger/dumper.py
@@ -3911,12 +3911,13 @@ class DumperBase():
tdata.name = typish
tdata.typeId = typish
tdata.templateArguments = self.listTemplateParameters(typish)
+ if size is not None:
+ tdata.lbitsize = 8 * size
if typish.endswith('*'):
tdata.code = TypeCode.Pointer
tdata.lbitsize = 8 * self.ptrSize()
+ tdata.ltarget = self.createType(typish[:-1])
- if size is not None:
- tdata.lbitsize = 8 * size
self.registerType(typish, tdata)
typeobj = self.Type(self, typish)
#DumperBase.warn('CREATE TYPE: %s' % typeobj.stringify())
diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py
index 6a5a4e90f2..bc86e87858 100644
--- a/share/qtcreator/debugger/qttypes.py
+++ b/share/qtcreator/debugger/qttypes.py
@@ -252,22 +252,28 @@ def qdump__QStandardItem(d, value):
# warm up cache
data_size = 4 * d.ptrSize() if d.qtVersion() >= 0x060000 else 2 * d.ptrSize()
d.createType('@QStandardItemData', data_size)
+ d.createType('@QStandardItem', d.ptrSize())
+ d.createType('@QStandardItem*', d.ptrSize())
vtable, dptr = value.split('pp')
- # There used to be a virtual destructor that got removed in
- # 88b6abcebf29b455438 on Apr 18 17:01:22 2017
- if d.qtVersion() >= 0x050900 or d.isMsvcTarget():
- model, parent, values, children, rows, cols, item = d.split('ppPPIIp', dptr)
+ if d.qtVersion() >= 0x060000:
+ model, parent, values, children, rows, cols, item = \
+ d.split('pp{@QList<@QStandardItemData>}{@QList<@QStandardItem*>}IIp', dptr)
else:
- vtable1, model, parent, values, children, rows, cols, item = d.split('pppPPIIp', dptr)
+ # There used to be a virtual destructor that got removed in
+ # 88b6abcebf29b455438 on Apr 18 17:01:22 2017
+ if d.qtVersion() < 0x050900 and not d.isMsvcTarget():
+ dptr += d.ptrSize();
+ model, parent, values, children, rows, cols, item = \
+ d.split('pp{@QVector<@QStandardItemData>}{@QVector<@QStandardItem*>}IIp', dptr)
+
d.putEmptyValue()
d.putExpandable()
if d.isExpanded():
with Children(d):
d.putSubItem('[model]', d.createValue(model, '@QStandardItemModel'))
- d.putSubItem('[values]', d.createVectorItem(values, '@QStandardItemData'))
- d.putSubItem('[children]', d.createVectorItem(children,
- d.createPointerType(value.type)))
+ d.putSubItem('[values]', values)
+ d.putSubItem('[children]', children)
def qdump__QDate(d, value):
@@ -2203,7 +2209,7 @@ def qform__QVector():
def qdump__QVector(d, value):
if d.qtVersion() >= 0x060000:
- dd, data, size = value.split('ppi')
+ data, size = d.listData(value)
d.putItemCount(size)
d.putPlotData(data, size, d.createType(value.type.ltarget[0]))
# g++ 9.3 does not add the template parameter list to the debug info.