[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - sw/qa writerfilter/source

Miklos Vajna vmiklos at collabora.co.uk
Wed Nov 23 11:27:22 UTC 2016


 sw/qa/extras/ooxmlimport/data/tdf82824.docx       |binary
 sw/qa/extras/ooxmlimport/ooxmlimport.cxx          |    5 +++++
 writerfilter/source/dmapper/DomainMapper_Impl.cxx |   16 +++++++++++++++-
 3 files changed, 20 insertions(+), 1 deletion(-)

New commits:
commit d36587570890d3366222fc9cca8482275db85b3b
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Nov 15 09:19:45 2016 +0100

    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.
    
    (cherry picked from commit 10efab2b9a3cf7fc49655c90ba29db4512680c38)
    
    Conflicts:
    	sw/qa/extras/ooxmlimport/ooxmlimport.cxx
    
    Change-Id: I3f8bede33c6f1a0bdc4f4d4ea59c4fc805802291
    Reviewed-on: https://gerrit.libreoffice.org/30965
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sw/qa/extras/ooxmlimport/data/tdf82824.docx b/sw/qa/extras/ooxmlimport/data/tdf82824.docx
new file mode 100644
index 0000000..65e5d4b
Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf82824.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index 13c8437..39ffc52 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -3270,6 +3270,11 @@ DECLARE_OOXMLIMPORT_TEST(testTdf103664, "tdf103664.docx")
     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"));
+}
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 08de96e..855c131 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -4766,7 +4766,21 @@ void  DomainMapper_Impl::ImportGraphic(const writerfilter::Reference< Properties
 
     // Update the shape properties if it is embedded object.
     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
     OSL_ENSURE( xTextContent.is(), "DomainMapper_Impl::ImportGraphic");


More information about the Libreoffice-commits mailing list