diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 751ff182e89..c4e30491c53 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -1582,14 +1582,20 @@ def qdump__QRegion(d, value): ns = d.qtNamespace() rectType = d.lookupType(ns + "QRect") d.putIntItem("numRects", n) - d.putSubItem("extents", d.createValue(pp + 2 * v, rectType)) - d.putSubItem("innerRect", d.createValue(pp + 2 * v + rectType.sizeof, rectType)) - d.putIntItem("innerArea", d.extractInt(pp + 2 * v + 2 * rectType.sizeof)) + if d.qtVersion() >= 0x050400: + # Changed in ee324e4ed + d.putSubItem("extents", d.createValue(pp + 8 + v, rectType)) + d.putSubItem("innerRect", d.createValue(pp + 8 + v + rectType.sizeof, rectType)) + d.putIntItem("innerArea", d.extractInt(pp + 4)) + else: + d.putSubItem("extents", d.createValue(pp + 2 * v, rectType)) + d.putSubItem("innerRect", d.createValue(pp + 2 * v + rectType.sizeof, rectType)) + d.putIntItem("innerArea", d.extractInt(pp + 2 * v + 2 * rectType.sizeof)) # FIXME try: # Can fail if QVector debuginfo is missing. vectType = d.lookupType("%sQVector<%sQRect>" % (ns, ns)) - d.putSubItem("rects", d.createValue(pp + v, vectType)) + d.putSubItem("rects", d.createValue(pp + 8, vectType)) except: with SubItem(d, "rects"): d.putItemCount(n)