ID 438864 - MIME data of format `'policy/xml'` returned by `valuePolicy.getMimeData()` is clamped to a maximum of 16 values

Follow

Problem summary:

The MIME data returned by QT4FormWidgets.PolicyMimeData.GetMimeData() -- and by extension the ArrayParameterPolicy.getMimeData() function in UI4.FormMaster.ArrayParameterPolicy -- contains data for a format named 'policy/xml'. That data stores the XML text representation of a given value policy.

When calling that function on an array policy, the number of values is currently hard-coded to a clamped maximum of 16 values.

Steps to reproduce:

  1. Execute the following lines of code in a Python tab:
    • 
      containerPolicy = QT4FormWidgets.PythonValuePolicy('container', {'values': range(30)})
      valuesPolicy = containerPolicy.getChildByName('values')
      mimeData = valuesPolicy.getMimeData()
      xmlText = mimeData.data('policy/xml')
      print(xmlText)

Expected behaviour:

The printed XML text covers all 30 values:


<valuepolicy cols="30" name="values" type="array">
 <valuepolicy name="i0" type="number" value="0.0"/>
 <valuepolicy name="i1" type="number" value="1.0"/>
 <valuepolicy name="i2" type="number" value="2.0"/>
 <valuepolicy name="i3" type="number" value="3.0"/>
 <valuepolicy name="i4" type="number" value="4.0"/>
 <valuepolicy name="i5" type="number" value="5.0"/>
 <valuepolicy name="i6" type="number" value="6.0"/>
 <valuepolicy name="i7" type="number" value="7.0"/>
 <valuepolicy name="i8" type="number" value="8.0"/>
 <valuepolicy name="i9" type="number" value="9.0"/>
 <valuepolicy name="i10" type="number" value="10.0"/>
 <valuepolicy name="i11" type="number" value="11.0"/>
 <valuepolicy name="i12" type="number" value="12.0"/>
 <valuepolicy name="i13" type="number" value="13.0"/>
 <valuepolicy name="i14" type="number" value="14.0"/>
 <valuepolicy name="i15" type="number" value="15.0"/>
 <valuepolicy name="i16" type="number" value="16.0"/>
 <valuepolicy name="i17" type="number" value="17.0"/>
 <valuepolicy name="i18" type="number" value="18.0"/>
 <valuepolicy name="i19" type="number" value="19.0"/>
 <valuepolicy name="i20" type="number" value="20.0"/>
 <valuepolicy name="i21" type="number" value="21.0"/>
 <valuepolicy name="i22" type="number" value="22.0"/>
 <valuepolicy name="i23" type="number" value="23.0"/>
 <valuepolicy name="i24" type="number" value="24.0"/>
 <valuepolicy name="i25" type="number" value="25.0"/>
 <valuepolicy name="i26" type="number" value="26.0"/>
 <valuepolicy name="i27" type="number" value="27.0"/>
 <valuepolicy name="i28" type="number" value="28.0"/>
 <valuepolicy name="i29" type="number" value="29.0"/>
</valuepolicy>

 

Actual behaviour:

The printed XML text covers 16 values only:


<valuepolicy cols="30" name="values" type="array">
  <valuepolicy name="i0" type="number" value="0.0"/>
  <valuepolicy name="i1" type="number" value="1.0"/>
  <valuepolicy name="i2" type="number" value="2.0"/>
  <valuepolicy name="i3" type="number" value="3.0"/>
  <valuepolicy name="i4" type="number" value="4.0"/>
  <valuepolicy name="i5" type="number" value="5.0"/>
  <valuepolicy name="i6" type="number" value="6.0"/>
  <valuepolicy name="i7" type="number" value="7.0"/>
  <valuepolicy name="i8" type="number" value="8.0"/>
  <valuepolicy name="i9" type="number" value="9.0"/>
  <valuepolicy name="i10" type="number" value="10.0"/>
  <valuepolicy name="i11" type="number" value="11.0"/>
  <valuepolicy name="i12" type="number" value="12.0"/>
  <valuepolicy name="i13" type="number" value="13.0"/>
  <valuepolicy name="i14" type="number" value="14.0"/>
  <valuepolicy name="i15" type="number" value="15.0"/>
</valuepolicy>

 

Workaround:

No known workaround.

Tested versions/platforms:

  • 1.0v1 - Unaffected
  • 1.0v4 - Unaffected
  • 1.0v5 - Unaffected
  • 1.0v6 - Unaffected
  • 1.1v1 - Affected -- Regression
  • 3.2v5/Linux - Affected
  • 3.6v1/Linux - Affected

Customer version/platform:

3.2v4/Linux

    We're sorry to hear that

    Please tell us why