Make ooxml-handles work in odp

Regina Henschel rb.henschel at t-online.de
Sun Jul 28 18:03:00 UTC 2019


Hi all,

I'm working on 
https://bugs.documentfoundation.org/show_bug.cgi?id=126512 "Open pptx 
and save as odp, handle of shape is visible but cannot be moved"

I have found, that this can be fixed by adding the reference properties 
(RefX, RefY, RefAngle, RefR) to the handles in method 
SdrObjCustomShape::MergeDefaultAttributes in 
/core/svx/source/svdraw/svdoashp.cxx

I have tested it for single shapes. To implement it for all shapes, I 
need a method, that has a shape type (e.g. "ooxml-blockArc") and a 
handle-index as input and has a first reference name and its referenced 
adjustment value index, and a second reference name and its referenced 
adjustment value index as output. More than two references do not exist 
for a handle.

There are 120 preset shapes that have a handle at all. Some have more 
than one handle, so there are 243 handles in total.

I can imagine to write a parser similar to the one from 
https://opengrok.libreoffice.org/xref/core/oox/source/drawingml/customshapepresetdata.cxx. 
There the information is fetched at runtime from the file 
"oox-drawingml-cs-presets".

Or I create a static array with the necessary information and fetch the 
information from there, similar to 
https://opengrok.libreoffice.org/xref/core/oox/source/drawingml/presetgeometrynames.cxx

Any other ideas?
How do it best?

Kind regards
Regina






More information about the LibreOffice mailing list