Apache OpenOffice (AOO) Bugzilla – Issue 41995
Import of path animations from open office presentation document fails
Last modified: 2017-05-20 10:30:32 UTC
If you open our chess sample in Impress and start the presentation mode you see a very very strange behavior in the moves of the different chessmen - and that was ok in SO7.
Please have a look at this issue.
Armin, to fix this issue I need some basegfx classes and Thorsten said you are working on something like this. The problem is I have this SdrPathObj from the old animation path effect and I need to convert it to an svg:d element for SMIL Can you give me something like OUString = makeMeSMIL( SdrPathObj* pPath ) ?
AW->IHA: For getting the PolyPolygon from the SdrPathObj use GetPathPoly() at the object, this gives You the XPolyPolygon. At the XPolyPolygon You can use getB2DPolyPolygon() to get as a ::basegfx::B2DPolyPolygon. To convert to SMIL there should be something in basegfx, but this is well better known to THB since he added that i i did not see or use it up to now. The other svg:d converter we have is in xmloff as helper class, see xmloff/source/draw/xexptran.cxx class SdXMLImExSvgDElement. But i am sure THB is more thinking about the converter he added to basegfx.
AW->CL: Upps, wrong owner. I was irritated by the submitter name :-)
I changed description to more general describe the problem that the import of old path animation fails. The sample chess document will be repaired with an internal task for 8 release.
set to OOo Later
Why is the component "testproduct"? The issue should be found by "presentation". Why is it set to "Later"? This defect entails, that you have to install both, OOo2.0 and OOo1.1.* to use your old presentations.
Thanks Regina, you are right. Changing component to 'Presentation'
*** Issue 35719 has been marked as a duplicate of this issue. ***
Retargeted
*** Issue 59577 has been marked as a duplicate of this issue. ***
flagging as regression. This is similar to data-loss and breaks compatibility with older documents. Still not fixed
*** Issue 66695 has been marked as a duplicate of this issue. ***
Isn't it the same problem as issue 41800?
.
fixed in cws impress210 Ok, this was actually hard to do. The code to convert path object to smil path was available and easy to integrate, but two problems surfaced. 1. When importing sxi documents, page and shape id attributes where not distinct. sxi format only has distinct ids for the element type page and shape. therefore animations where not able to target the shape or path because the id was also given to a page. I fixed this by adding 'shape' prefix to shape ids inside the ooo transformer. This was done for draw:id in pages and draw:id in shapes, also draw:end-shape and draw:start-shape for referencing connectors. Also to the draw:shape-id and presentation:path-id of the animation elements. 2. Smil animation paths are always stored relative to the center of the animated shape. To convert from the absolute sxi path I needed the animated shapes boundrect during loading. Due to a recent performance optimization, the bound rect will not be calculated during load. The returned bound rects where empty in some cases and completly chaotic when dealing with group shapes. I fixed this bye adding a bool parameter (bForce) to the shape method RecalcBoundRect which on true always recalculates the bound rect. This works but must be reviewed by AW, esp. the implementation for SdrGroup::RecalcBoundRect()
verified in cws cl->aw: please review my changes made in drawing layer for this issue and foreward this issue to wg if you are ok with them
cl: aw showed me a better way to fix this, therefore set to new again
fix suggested by armin verified in cws, back to qa
Verified in CWS.