diff options
author | Mark Hung <marklh9@gmail.com> | 2016-11-19 10:56:40 +0800 |
---|---|---|
committer | Mark Hung <marklh9@gmail.com> | 2016-11-19 17:27:18 +0000 |
commit | afc37372c1e1e8a865a4ad91a4b998e861ad9f02 (patch) | |
tree | ddd7a65bd9d1fa187e3bb5ae5c855d7d27b3be7d | |
parent | dfee3a97a0bd30e461974af4ecb09f67bded584d (diff) |
tdf#92076 oox - export PolyPolygonShape and PolyLineShape.
1. Export PolyPolygonShape and PolyLineShape.
2. Rename WriteBezierShape to WritePolyPolygonShape because
ClosedBezierShape, OpenBezierShape, PolyPolygonShape,and
PolyLineShape share the function and all use
EscherPropertyContainer::GetPolyPolygon to get PolyPolygon
structure and use WritePolyPolygon to write xml tags.
Change-Id: I9ffdc26cf1f6fe8ea3b91b7b218d67f9e5585617
Reviewed-on: https://gerrit.libreoffice.org/30972
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mark Hung <marklh9@gmail.com>
-rw-r--r-- | include/oox/export/shapes.hxx | 12 | ||||
-rw-r--r-- | oox/source/export/shapes.cxx | 18 | ||||
-rwxr-xr-x | sd/qa/unit/data/odp/tdf92076.odp | bin | 0 -> 11185 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests-ooxml2.cxx | 11 |
4 files changed, 28 insertions, 13 deletions
diff --git a/include/oox/export/shapes.hxx b/include/oox/export/shapes.hxx index d6ae6151b7bc..fad36643b4c6 100644 --- a/include/oox/export/shapes.hxx +++ b/include/oox/export/shapes.hxx @@ -134,9 +134,9 @@ public: static bool NonEmptyText( const css::uno::Reference< css::uno::XInterface >& xIface ); ShapeExport& - WriteBezierShape( const css::uno::Reference< css::drawing::XShape >& xShape, bool bClosed ); + WritePolyPolygonShape( const css::uno::Reference< css::drawing::XShape >& xShape, bool bClosed ); ShapeExport& - WriteClosedBezierShape( const css::uno::Reference< css::drawing::XShape >& xShape ); + WriteClosedPolyPolygonShape( const css::uno::Reference< css::drawing::XShape >& xShape ); ShapeExport& WriteConnectorShape( const css::uno::Reference< css::drawing::XShape >& xShape ); ShapeExport& @@ -154,7 +154,7 @@ public: virtual ShapeExport& WriteNonVisualProperties( const css::uno::Reference< css::drawing::XShape >& xShape ); ShapeExport& - WriteOpenBezierShape( const css::uno::Reference< css::drawing::XShape >& xShape ); + WriteOpenPolyPolygonShape( const css::uno::Reference< css::drawing::XShape >& xShape ); ShapeExport& WriteRectangleShape( const css::uno::Reference< css::drawing::XShape >& xShape ); @@ -171,12 +171,14 @@ public: * * <table> * <tr><th>Shape Type</th><th>Method</th></tr> - * <tr><td><tt>com.sun.star.drawing.ClosedBezierShape</tt></td> <td>ShapeExport::WriteClosedBezierShape</td></tr> + * <tr><td><tt>com.sun.star.drawing.ClosedBezierShape</tt></td> <td>ShapeExport::WriteClosedPolyPolygonShape</td></tr> * <tr><td><tt>com.sun.star.drawing.CustomShape</tt></td> <td>ShapeExport::WriteCustomShape</td></tr> * <tr><td><tt>com.sun.star.drawing.EllipseShape</tt></td> <td>ShapeExport::WriteEllipseShape</td></tr> * <tr><td><tt>com.sun.star.drawing.GraphicObjectShape</tt></td> <td>ShapeExport::WriteGraphicObjectShape</td></tr> * <tr><td><tt>com.sun.star.drawing.LineShape</tt></td> <td>ShapeExport::WriteLineShape</td></tr> - * <tr><td><tt>com.sun.star.drawing.OpenBezierShape</tt></td> <td>ShapeExport::WriteOpenBezierShape</td></tr> + * <tr><td><tt>com.sun.star.drawing.OpenBezierShape</tt></td> <td>ShapeExport::WriteOpenPolyPolygonShape</td></tr> + * <tr><td><tt>com.sun.star.drawing.PolyPolygonShape</tt></td> <td>ShapeExport::WriteClosedPolyPolygonShape</td></tr> + * <tr><td><tt>com.sun.star.drawing.PolyLineShape</tt></td> <td>ShapeExport::WriteOpenPolyPolygonShape</td></tr> * <tr><td><tt>com.sun.star.drawing.RectangleShape</tt></td> <td>ShapeExport::WriteRectangleShape</td></tr> * <tr><td><tt>com.sun.star.drawing.TableShape</tt></td> <td>ShapeExport::WriteTableShape</td></tr> * <tr><td><tt>com.sun.star.drawing.TextShape</tt></td> <td>ShapeExport::WriteTextShape</td></tr> diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx index c9d693cf56e8..820cb4ca56d3 100644 --- a/oox/source/export/shapes.cxx +++ b/oox/source/export/shapes.cxx @@ -428,9 +428,9 @@ bool ShapeExport::NonEmptyText( const Reference< XInterface >& xIface ) return false; } -ShapeExport& ShapeExport::WriteBezierShape( const Reference< XShape >& xShape, bool bClosed ) +ShapeExport& ShapeExport::WritePolyPolygonShape( const Reference< XShape >& xShape, bool bClosed ) { - SAL_INFO("oox.shape", "write open bezier shape"); + SAL_INFO("oox.shape", "write polypolygon shape"); FSHelperPtr pFS = GetFS(); pFS->startElementNS( mnXmlNamespace, (GetDocumentType() != DOCUMENT_DOCX ? XML_sp : XML_wsp), FSEND ); @@ -481,14 +481,14 @@ ShapeExport& ShapeExport::WriteBezierShape( const Reference< XShape >& xShape, b return *this; } -ShapeExport& ShapeExport::WriteClosedBezierShape( const Reference< XShape >& xShape ) +ShapeExport& ShapeExport::WriteClosedPolyPolygonShape( const Reference< XShape >& xShape ) { - return WriteBezierShape( xShape, true ); + return WritePolyPolygonShape( xShape, true ); } -ShapeExport& ShapeExport::WriteOpenBezierShape( const Reference< XShape >& xShape ) +ShapeExport& ShapeExport::WriteOpenPolyPolygonShape( const Reference< XShape >& xShape ) { - return WriteBezierShape( xShape, false ); + return WritePolyPolygonShape( xShape, false ); } ShapeExport& ShapeExport::WriteGroupShape(const uno::Reference<drawing::XShape>& xShape) @@ -1388,13 +1388,15 @@ static const NameToConvertMapType& lcl_GetConverters(DocumentType eDocumentType) return shape_converters; } - shape_converters[ "com.sun.star.drawing.ClosedBezierShape" ] = &ShapeExport::WriteClosedBezierShape; + shape_converters[ "com.sun.star.drawing.ClosedBezierShape" ] = &ShapeExport::WriteClosedPolyPolygonShape; shape_converters[ "com.sun.star.drawing.ConnectorShape" ] = &ShapeExport::WriteConnectorShape; shape_converters[ "com.sun.star.drawing.CustomShape" ] = &ShapeExport::WriteCustomShape; shape_converters[ "com.sun.star.drawing.EllipseShape" ] = &ShapeExport::WriteEllipseShape; shape_converters[ "com.sun.star.drawing.GraphicObjectShape" ] = &ShapeExport::WriteGraphicObjectShape; shape_converters[ "com.sun.star.drawing.LineShape" ] = &ShapeExport::WriteLineShape; - shape_converters[ "com.sun.star.drawing.OpenBezierShape" ] = &ShapeExport::WriteOpenBezierShape; + shape_converters[ "com.sun.star.drawing.OpenBezierShape" ] = &ShapeExport::WriteOpenPolyPolygonShape; + shape_converters[ "com.sun.star.drawing.PolyPolygonShape" ] = &ShapeExport::WriteClosedPolyPolygonShape; + shape_converters[ "com.sun.star.drawing.PolyLineShape" ] = &ShapeExport::WriteClosedPolyPolygonShape; shape_converters[ "com.sun.star.drawing.RectangleShape" ] = &ShapeExport::WriteRectangleShape; shape_converters[ "com.sun.star.drawing.OLE2Shape" ] = &ShapeExport::WriteOLE2Shape; shape_converters[ "com.sun.star.drawing.TableShape" ] = &ShapeExport::WriteTableShape; diff --git a/sd/qa/unit/data/odp/tdf92076.odp b/sd/qa/unit/data/odp/tdf92076.odp Binary files differnew file mode 100755 index 000000000000..ab0a20ba2bbb --- /dev/null +++ b/sd/qa/unit/data/odp/tdf92076.odp diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx index 03cff30648f0..26e5685b1f40 100644 --- a/sd/qa/unit/export-tests-ooxml2.cxx +++ b/sd/qa/unit/export-tests-ooxml2.cxx @@ -101,6 +101,7 @@ public: void testExtFileField(); void testAuthorField(); void testTdf99224(); + void testTdf92076(); CPPUNIT_TEST_SUITE(SdOOXMLExportTest2); @@ -125,6 +126,7 @@ public: CPPUNIT_TEST(testExtFileField); CPPUNIT_TEST(testAuthorField); CPPUNIT_TEST(testTdf99224); + CPPUNIT_TEST(testTdf92076); CPPUNIT_TEST_SUITE_END(); @@ -736,6 +738,15 @@ void SdOOXMLExportTest2::testTdf99224() xShell->DoClose(); } +void SdOOXMLExportTest2::testTdf92076() +{ + sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf92076.odp"), ODP); + xShell = saveAndReload(xShell.get(), PPTX); + uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xPage->getCount()); + xShell->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest2); CPPUNIT_PLUGIN_IMPLEMENT(); |