Trouble with curved*Arrow shapes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

LibreOffice renders a sequence of command V or of command B not conform to ODF (bug 148707). LO connects the first and second arc (and second and third and so on) with a line, but V and B are defined to start with a moveTo. When I fix that, it becomes visible, that the segments definition for curved*Arrow shapes has an error (bug 148714) in file EnhancedCustomShapeGeometry.cxx. Fixing this definition is no problem and newly imported shapes would be correct then. But LibreOffice has written the wrong enhanced-path into the ODF file markup and that is used when reading such file, not the segments definition.

The shapes in question belong to the binary MS Office preset shapes (mso-spt102, mso-spt103, mso-spt104, mso-spt105). The same looking shapes in the Gallery theme "Arrows" are not effected because they are of Type "ooxml-*". The binary MS Office arrow shapes are not part of the 'Arrow' category in our UI.

To get the same rendering as currently done be LO the sequence has to be VW or BA. Authors of self-created shapes should have used this, when they are designing a shape ODF conform. Therefore I do not care about user-created shapes but only about those from binary MS Office.

In XMLEnhancedCustomShapeContext::startFastElement() I could postpone GetEnhancedPath() to after the switch (#1057 to #1134) and pass on Type to it. Then in GetEnhancedPath itself I could correct the segments depending on Type before creating the property (#829). All in /core/xmloff/source/draw/ximpcustomshape.cxx.

A different approach could be to not care about existing documents in the code. Perhaps provide a macro to repair a shape for those users, who are affected.

So what to do? Do you have different, better ideas?

Kind regards,
Regina



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux