[Libreoffice-commits] core.git: sw/qa writerfilter/source

Miklos Vajna vmiklos at suse.cz
Fri Jul 26 02:14:03 PDT 2013


 sw/qa/extras/rtfimport/data/n820504.rtf     |   37 ++++++++++++++++++++++++++++
 sw/qa/extras/rtfimport/rtfimport.cxx        |   10 +++++++
 writerfilter/source/rtftok/rtfsdrimport.cxx |    2 +
 3 files changed, 49 insertions(+)

New commits:
commit 50a76af9d1b6cc1b02c856c2e06bc18d849ec2d3
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Thu Jul 25 18:12:51 2013 +0200

    Related: bnc#820504 RTF import: don't anchor shapes TO_PAGE
    
    This is the RTF equivalent of f5b7acac624f07fa95835b6054b8d295901bb1dd,
    which avoided TO_PAGE-anchored shapes in the VML importer.
    
    Change-Id: I58a5cdb311ac43ddba00bc441005fb37a4899cee

diff --git a/sw/qa/extras/rtfimport/data/n820504.rtf b/sw/qa/extras/rtfimport/data/n820504.rtf
new file mode 100644
index 0000000..6d2d88e
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/n820504.rtf
@@ -0,0 +1,37 @@
+{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0
+{\shp
+{\*\shpinst\shpleft1295\shptop-212\shpright2090\shpbottom598\shpfhdr0\shpbxcolumn\shpbxignore\shpbypara\shpbyignore\shpwr3\shpwrk0\shpfblwtxt0\shpz0\shplid1027
+{\sp
+{\sn shapeType}
+{\sv 2}
+}
+{\sp
+{\sn fFlipH}
+{\sv 0}
+}
+{\sp
+{\sn fFlipV}
+{\sv 0}
+}
+{\sp
+{\sn rotation}
+{\sv 2949120}
+}
+{\sp
+{\sn fRecolorFillAsPicture}
+{\sv 0}
+}
+{\sp
+{\sn fUseShapeAnchor}
+{\sv 0}
+}
+{\sp
+{\sn lidRegroup}
+{\sv 1}
+}
+}
+{\shprslt
+}
+}
+\par
+}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index 93489d7..a25564d 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -156,6 +156,7 @@ public:
     void testFdo66565();
     void testFdo54900();
     void testFdo64637();
+    void testN820504();
 
     CPPUNIT_TEST_SUITE(Test);
 #if !defined(MACOSX) && !defined(WNT)
@@ -296,6 +297,7 @@ void Test::run()
         {"fdo66565.rtf", &Test::testFdo66565},
         {"fdo54900.rtf", &Test::testFdo54900},
         {"fdo64637.rtf", &Test::testFdo64637},
+        {"n820504.rtf", &Test::testN820504},
     };
     header();
     for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
@@ -1442,6 +1444,14 @@ void Test::testFdo64637()
     CPPUNIT_ASSERT_EQUAL(OUString("bbb"), getProperty<OUString>(xPropertySet, "Company"));
 }
 
+void Test::testN820504()
+{
+    // The shape was anchored at-page instead of at-character (that's incorrect as Word only supports at-character and as-character).
+    uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+    uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
+    CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AT_CHARACTER, getProperty<text::TextContentAnchorType>(xDraws->getByIndex(0), "AnchorType"));
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Test);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/rtftok/rtfsdrimport.cxx b/writerfilter/source/rtftok/rtfsdrimport.cxx
index 78c34d9..3286c9d 100644
--- a/writerfilter/source/rtftok/rtfsdrimport.cxx
+++ b/writerfilter/source/rtftok/rtfsdrimport.cxx
@@ -21,6 +21,7 @@
 #include <com/sun/star/text/VertOrientation.hpp>
 #include <com/sun/star/text/WrapTextMode.hpp>
 #include <com/sun/star/text/WritingMode.hpp>
+#include <com/sun/star/text/TextContentAnchorType.hpp>
 
 #include <ooxml/resourceids.hxx> // NS_ooxml namespace
 #include <filter/msfilter/escherex.hxx>
@@ -650,6 +651,7 @@ void RTFSdrImport::resolve(RTFShape& rShape, bool bClose)
             // Sets the ShadowFormat UNO property.
             oox::PropertySet(xShape).setProperties(aPropMap);
         }
+        xPropertySet->setPropertyValue("AnchorType", uno::makeAny(text::TextContentAnchorType_AT_CHARACTER));
     }
 
     if (m_rImport.isInBackground())


More information about the Libreoffice-commits mailing list