Hi *,

I took some days to fix that long missing OLE-Attribute feature/bug. It is on one hand a missing feature (no reason to not apply attributes and transformations to OLE which contains the same as graphical object, a MetaFile) and on the other a compatibility issue with a big competitor which is able to add attributes to OLEs for a long time.

This fix was already prepared in #67705# but could not be activated due to a missing part of #108221#. Thanks to ORW (aka Oliver-Rainer) which helped to solve that.

The patch adds LineStyle, FillStyle, Text, Shadow, Shear and Rotate to OLE objects in Draw/Impress and Calc. It adds Shear to graphic objects. It also fixes some long existing not detected bugs to make all this work. It leaves OLEs and graphical objects for Writer (SW) untouched due to the fact that SW uses it's own implementations for those (one more argument for the long missing consolidation in SW to use DrawingLayer objects for this).

Details are documented in https://issues.apache.org/ooo/show_bug.cgi?id=118485, but here is a list:

- Added LineStyle, FillStyle, Text, Shadow, Shear, Rotate to OLE
- Added Shear to GraphicObjects
- Adapted context menus in Draw/Impress, Calc
- Adapted UNO API to allow these attribute families for those object types
- Adapted interactors to show a correct preview for interactions
- Adapted ConvertTo to take set attributes into account (was completely missing for GraphicObjects, a bug on it's own). - Adapted Text edit activation (press any key to start typing), activation on Return stays untouched - Adapted OLE activation to be centered to the now eventually rotated/sheared object bounds - Adapted MetaFile-ToSdrObject converter, transformations are now applied to the created SdrObjects. Deactivated one erroneous Item in text attribute creation which leads to bad errors in text generation, wrote f'up #118498# for it (HDU)
- Adapted Import/Export to take care of added text
- Added correction for earlier written OOo ODF files at load time
- Activated the prepared attribute visualization in the OLE Primitive
- Corrected attribute generation for newly created OLEs

I checked all changes again and added the patch to #118485#. Now I'm looking for someone volunteering to add the patch, build AOOo and play around with OLEs a little bit, reading the patch will also help in this case, it's not too big to do so.

The change looks big, but it touches no too critical parts. It is also necessary to bring it in AOOo3.4, this change relies on a version change (here: 3.3 to 3.4) to be able to correct files written by OOo up to 3.3 (and only those).

Some background: The root problem here was that older versions straight ignored attributes set at OLE objects by just not painting them. This means that in files generated the attributes are written and in plain ODF OLEs are filled default (blue8) and have line on default (black hairline).

Questions/Comments are welcome,
        Armin
--
ALG

Reply via email to