Kaydet (Commit) 10efab2b authored tarafından Miklos Vajna's avatar Miklos Vajna

tdf#82824 DOCX import: fix at-char embedded object handling

The anchor type of embedded object was simply not handled, we always
assumed that it's as-char.

When it's at-char set the anchor type accordingly, and also set the
usual 6 properties determining the position of the anchored object.

Change-Id: I3f8bede33c6f1a0bdc4f4d4ea59c4fc805802291
Reviewed-on: https://gerrit.libreoffice.org/30860Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
Tested-by: 's avatarJenkins <ci@libreoffice.org>
üst 4eb2863e
...@@ -1266,6 +1266,11 @@ DECLARE_OOXMLIMPORT_TEST(testTdf103664, "tdf103664.docx") ...@@ -1266,6 +1266,11 @@ DECLARE_OOXMLIMPORT_TEST(testTdf103664, "tdf103664.docx")
CPPUNIT_ASSERT_EQUAL(awt::CharSet::SYMBOL, getProperty<sal_Int16>(xRun, "CharFontCharSet")); CPPUNIT_ASSERT_EQUAL(awt::CharSet::SYMBOL, getProperty<sal_Int16>(xRun, "CharFontCharSet"));
} }
DECLARE_OOXMLIMPORT_TEST(testTdf82824, "tdf82824.docx")
{
// This was text::TextContentAnchorType_AS_CHARACTER, <wp:anchor> wasn't handled on import for the chart.
CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AT_CHARACTER, getProperty<text::TextContentAnchorType>(getShape(1), "AnchorType"));
}
// tests should only be added to ooxmlIMPORT *if* they fail round-tripping in ooxmlEXPORT // tests should only be added to ooxmlIMPORT *if* they fail round-tripping in ooxmlEXPORT
......
...@@ -4787,7 +4787,21 @@ void DomainMapper_Impl::ImportGraphic(const writerfilter::Reference< Properties ...@@ -4787,7 +4787,21 @@ void DomainMapper_Impl::ImportGraphic(const writerfilter::Reference< Properties
// Update the shape properties if it is embedded object. // Update the shape properties if it is embedded object.
if(m_xEmbedded.is()){ if(m_xEmbedded.is()){
UpdateEmbeddedShapeProps(m_pGraphicImport->GetXShapeObject()); uno::Reference<drawing::XShape> xShape = m_pGraphicImport->GetXShapeObject();
UpdateEmbeddedShapeProps(xShape);
if (eGraphicImportType == IMPORT_AS_DETECTED_ANCHOR)
{
uno::Reference<beans::XPropertySet> xEmbeddedProps(m_xEmbedded, uno::UNO_QUERY);
text::TextContentAnchorType eAnchorType = text::TextContentAnchorType_AT_CHARACTER;
xEmbeddedProps->setPropertyValue("AnchorType", uno::makeAny(eAnchorType));
uno::Reference<beans::XPropertySet> xShapeProps(xShape, uno::UNO_QUERY);
xEmbeddedProps->setPropertyValue("HoriOrient", xShapeProps->getPropertyValue("HoriOrient"));
xEmbeddedProps->setPropertyValue("HoriOrientPosition", xShapeProps->getPropertyValue("HoriOrientPosition"));
xEmbeddedProps->setPropertyValue("HoriOrientRelation", xShapeProps->getPropertyValue("HoriOrientRelation"));
xEmbeddedProps->setPropertyValue("VertOrient", xShapeProps->getPropertyValue("VertOrient"));
xEmbeddedProps->setPropertyValue("VertOrientPosition", xShapeProps->getPropertyValue("VertOrientPosition"));
xEmbeddedProps->setPropertyValue("VertOrientRelation", xShapeProps->getPropertyValue("VertOrientRelation"));
}
} }
//insert it into the document at the current cursor position //insert it into the document at the current cursor position
OSL_ENSURE( xTextContent.is(), "DomainMapper_Impl::ImportGraphic"); OSL_ENSURE( xTextContent.is(), "DomainMapper_Impl::ImportGraphic");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment