summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Hung <marklh9@gmail.com>2016-11-19 10:56:40 +0800
committerMark Hung <marklh9@gmail.com>2016-11-19 17:27:18 +0000
commitafc37372c1e1e8a865a4ad91a4b998e861ad9f02 (patch)
treeddd7a65bd9d1fa187e3bb5ae5c855d7d27b3be7d
parentdfee3a97a0bd30e461974af4ecb09f67bded584d (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.hxx12
-rw-r--r--oox/source/export/shapes.cxx18
-rwxr-xr-xsd/qa/unit/data/odp/tdf92076.odpbin0 -> 11185 bytes
-rw-r--r--sd/qa/unit/export-tests-ooxml2.cxx11
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
new file mode 100755
index 000000000000..ab0a20ba2bbb
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf92076.odp
Binary files differ
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();