aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-02-19 12:50:49 +0100
committerhjk <hjk@qt.io>2019-02-19 12:57:26 +0000
commitbfee82fa2c3509214332f97cfcc1d8a776fb4f8e (patch)
tree62271be4ea1b2d4c0db8165708cdc027aec38d48
parentbe65a57935badcc19f844b36ccf1456f2000a96d (diff)
Debugger: Add dumper for QSizePolicy
Change-Id: Ib4d2597229f2808fcf79e76a9590b0e07989bfb9 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--share/qtcreator/debugger/dumper.py11
-rw-r--r--share/qtcreator/debugger/qttypes.py27
2 files changed, 35 insertions, 3 deletions
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py
index 2d2cba492c..e1d04a03f7 100644
--- a/share/qtcreator/debugger/dumper.py
+++ b/share/qtcreator/debugger/dumper.py
@@ -833,6 +833,14 @@ class DumperBase:
self.putType('int')
self.putNumChild(0)
+ def putEnumItem(self, name, ival, typish):
+ buf = bytearray(struct.pack('i', ival))
+ val = self.Value(self)
+ val.ldata = bytes(buf)
+ val.type = self.createType(typish)
+ with SubItem(self, name):
+ self.putItem(val)
+
def putBoolItem(self, name, value):
with SubItem(self, name):
self.putValue(value)
@@ -855,8 +863,7 @@ class DumperBase:
self.putField('keyencoded', key.encoding)
self.putValue(value.value, value.encoding)
- def putEnumValue(self, value, vals):
- ival = value.integer()
+ def putEnumValue(self, ival, vals):
nice = vals.get(ival, None)
display = ('%d' % ival) if nice is None else ('%s (%d)' % (nice, ival))
self.putValue(display)
diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py
index 2901c10401..91e38feaac 100644
--- a/share/qtcreator/debugger/qttypes.py
+++ b/share/qtcreator/debugger/qttypes.py
@@ -194,7 +194,7 @@ def qdump_X_QModelIndex(d, value):
#gdb.execute('call free($mi)')
def qdump__Qt__ItemDataRole(d, value):
- d.putEnumValue(value, {
+ d.putEnumValue(value.integer(), {
0 : "Qt::DisplayRole",
1 : "Qt::DecorationRole",
2 : "Qt::EditRole",
@@ -1412,6 +1412,31 @@ def qdump__QSizeF(d, value):
d.putPlainChildren(value)
+def qdump__QSizePolicy__Policy(d, value):
+ d.putEnumValue(value.integer(), {
+ 0 : 'QSizePolicy::Fixed',
+ 1 : 'QSizePolicy::GrowFlag',
+ 2 : 'QSizePolicy::ExpandFlag',
+ 3 : 'QSizePolicy::MinimumExpanding (GrowFlag|ExpandFlag)',
+ 4 : 'QSizePolicy::ShrinkFlag',
+ 5 : 'QSizePolicy::Preferred (GrowFlag|ShrinkFlag)',
+ 7 : 'QSizePolicy::Expanding (GrowFlag|ShrinkFlag|ExpandFlag)',
+ 8 : 'QSizePolicy::IgnoreFlag',
+ 13 : 'QSizePolicy::Ignored (ShrinkFlag|GrowFlag|IgnoreFlag)',
+ })
+
+def qdump__QSizePolicy(d, value):
+ bits = value.integer()
+ d.putEmptyValue(-99)
+ d.putNumChild(1)
+ if d.isExpanded():
+ with Children(d):
+ d.putIntItem('horStretch', (bits >> 0) & 0xff)
+ d.putIntItem('verStretch', (bits >> 8) & 0xff)
+ d.putEnumItem('horPolicy', (bits >> 16) & 0xf, "QSizePolicy::Policy")
+ d.putEnumItem('verPolicy', (bits >> 20) & 0xf, "QSizePolicy::Policy")
+
+
def qform__QStack():
return arrayForms()