diff options
author | Michael Stahl <mstahl@redhat.com> | 2017-02-09 11:12:26 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2017-02-09 13:17:10 +0100 |
commit | ae00898f12b9087e1d9b59d9a7820d64b5501775 (patch) | |
tree | 42d95c124931168cb3e0fb0a240f1469830e7750 /xmloff/source | |
parent | 3ce68a2a7cc0fe9fe83dccd0019cd32d6518c16e (diff) |
tdf#103567 xmloff: ODF import: fix more lossage on Writer frames
There's another context that reads draw:frame, and it has the same
problem as the one used for Impress shapes. This causes SVG images
in Writer to lose contour polygons and image maps.
Fix this the same way as the other context.
(likely regression from 44cfc7cb6533d827fd2d6e586d92c61d7d7f7a70)
Change-Id: I16cf55e68829b4e1b0841f2015d0729be0ce3725
Diffstat (limited to 'xmloff/source')
-rw-r--r-- | xmloff/source/text/XMLTextFrameContext.cxx | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/xmloff/source/text/XMLTextFrameContext.cxx b/xmloff/source/text/XMLTextFrameContext.cxx index 4d7a03df8b98..20ee3842f933 100644 --- a/xmloff/source/text/XMLTextFrameContext.cxx +++ b/xmloff/source/text/XMLTextFrameContext.cxx @@ -1503,6 +1503,10 @@ SvXMLImportContext *XMLTextFrameContext::CreateChildContext( { if( IsXMLToken( rLocalName, XML_TITLE ) ) { + if (getSupportsMultipleContents()) + { // tdf#103567 ensure props are set on surviving shape + m_xImplContext = solveMultipleImages(); + } pContext = new XMLTextFrameTitleOrDescContext_Impl( GetImport(), p_nPrefix, rLocalName, @@ -1510,6 +1514,10 @@ SvXMLImportContext *XMLTextFrameContext::CreateChildContext( } else if ( IsXMLToken( rLocalName, XML_DESC ) ) { + if (getSupportsMultipleContents()) + { // tdf#103567 ensure props are set on surviving shape + m_xImplContext = solveMultipleImages(); + } pContext = new XMLTextFrameTitleOrDescContext_Impl( GetImport(), p_nPrefix, rLocalName, @@ -1522,24 +1530,40 @@ SvXMLImportContext *XMLTextFrameContext::CreateChildContext( Reference < XPropertySet > xPropSet; if( IsXMLToken( rLocalName, XML_CONTOUR_POLYGON ) ) { + if (getSupportsMultipleContents()) + { // tdf#103567 ensure props are set on surviving shape + m_xImplContext = solveMultipleImages(); + } if( CreateIfNotThere( xPropSet ) ) pContext = new XMLTextFrameContourContext_Impl( GetImport(), p_nPrefix, rLocalName, xAttrList, xPropSet, false ); } else if( IsXMLToken( rLocalName, XML_CONTOUR_PATH ) ) { + if (getSupportsMultipleContents()) + { // tdf#103567 ensure props are set on surviving shape + m_xImplContext = solveMultipleImages(); + } if( CreateIfNotThere( xPropSet ) ) pContext = new XMLTextFrameContourContext_Impl( GetImport(), p_nPrefix, rLocalName, xAttrList, xPropSet, true ); } else if( IsXMLToken( rLocalName, XML_IMAGE_MAP ) ) { + if (getSupportsMultipleContents()) + { // tdf#103567 ensure props are set on surviving shape + m_xImplContext = solveMultipleImages(); + } if( CreateIfNotThere( xPropSet ) ) pContext = new XMLImageMapContext( GetImport(), p_nPrefix, rLocalName, xPropSet ); } } else if( (XML_NAMESPACE_OFFICE == p_nPrefix) && IsXMLToken( rLocalName, XML_EVENT_LISTENERS ) ) { + if (getSupportsMultipleContents()) + { // tdf#103567 ensure props are set on surviving shape + m_xImplContext = solveMultipleImages(); + } // do we still have the frame object? Reference < XPropertySet > xPropSet; if( CreateIfNotThere( xPropSet ) ) @@ -1558,6 +1582,11 @@ SvXMLImportContext *XMLTextFrameContext::CreateChildContext( else if( p_nPrefix == XML_NAMESPACE_SVG && // #i68101# (IsXMLToken( rLocalName, XML_TITLE ) || IsXMLToken( rLocalName, XML_DESC ) ) ) { + if (getSupportsMultipleContents()) + { // tdf#103567 ensure props are set on surviving shape + // note: no more draw:image can be added once we get here + m_xImplContext = solveMultipleImages(); + } pContext = m_xImplContext->CreateChildContext( p_nPrefix, rLocalName, xAttrList ); } else |