oox/source/export/shapes.cxx | 8 +++++++- oox/source/shape/WpgContext.cxx | 4 ++++ sw/qa/extras/ooxmlexport/data/groupshape-picture.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 8 ++++++++ 4 files changed, 19 insertions(+), 1 deletion(-)
New commits: commit 430246ef14e79643ff93a981d56086acd259d055 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Mon Jan 6 09:51:46 2014 +0100 oox: handle pic:pic in WPG groupshape import Change-Id: I7de11251bc4e1b58f9cb308e8b698d4c8c1a58d3 diff --git a/oox/source/shape/WpgContext.cxx b/oox/source/shape/WpgContext.cxx index 8e6c8ea..6e31612 100644 --- a/oox/source/shape/WpgContext.cxx +++ b/oox/source/shape/WpgContext.cxx @@ -10,6 +10,7 @@ #include "WpgContext.hxx" #include <oox/drawingml/shapepropertiescontext.hxx> #include <oox/drawingml/shapegroupcontext.hxx> +#include <oox/drawingml/graphicshapecontext.hxx> using namespace com::sun::star; @@ -54,6 +55,9 @@ oox::core::ContextHandlerRef WpgContext::onCreateContext(sal_Int32 nElementToken return new oox::drawingml::ShapeContext(*this, mpShape, pShape); } break; + case XML_pic: + return new oox::drawingml::GraphicShapeContext(*this, mpShape, oox::drawingml::ShapePtr(new oox::drawingml::Shape("com.sun.star.drawing.GraphicObjectShape"))); + break; case XML_grpSp: { oox::drawingml::ShapePtr pShape(new oox::drawingml::Shape("com.sun.star.drawing.GroupShape")); diff --git a/sw/qa/extras/ooxmlexport/data/groupshape-picture.docx b/sw/qa/extras/ooxmlexport/data/groupshape-picture.docx new file mode 100644 index 0000000..4ecce56 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/groupshape-picture.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index aab75ab..126516f 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -2217,6 +2217,14 @@ DECLARE_OOXMLEXPORT_TEST(testGroupshapeTextbox, "groupshape-textbox.docx") CPPUNIT_ASSERT_EQUAL(11.f, getProperty<float>(xShape, "CharHeight")); } +DECLARE_OOXMLEXPORT_TEST(testGroupshapePicture, "groupshape-picture.docx") +{ + // Picture in the groupshape got lost, groupshape had only one child. + uno::Reference<drawing::XShapes> xGroup(getShape(1), uno::UNO_QUERY); + uno::Reference<drawing::XShapeDescriptor> xShapeDescriptor(xGroup->getByIndex(1), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(OUString("com.sun.star.drawing.GraphicObjectShape"), xShapeDescriptor->getShapeType()); +} + DECLARE_OOXMLEXPORT_TEST(testTrackChangesDeletedParagraphMark, "testTrackChangesDeletedParagraphMark.docx") { xmlDocPtr pXmlDoc = parseExport("word/document.xml"); commit c6d1ccd8024c9a90bf8f5732ce1e2b957e8048e7 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Mon Jan 6 09:39:49 2014 +0100 oox: fix XML namespace of drawing::GraphicObjectShape in DML export Change-Id: Ia7fb126f30ff1c4cd2f5fb8a5c71a87dd5e1d5c9 diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx index 67cf3dc..76dd743 100644 --- a/oox/source/export/shapes.cxx +++ b/oox/source/export/shapes.cxx @@ -272,8 +272,14 @@ ShapeExport& ShapeExport::WriteGroupShape(uno::Reference<drawing::XShape> xShape { uno::Reference<drawing::XShape> xChild(xGroupShape->getByIndex(i), uno::UNO_QUERY_THROW); sal_Int32 nSavedNamespace = mnXmlNamespace; - mnXmlNamespace = XML_wps; + + uno::Reference<lang::XServiceInfo> xServiceInfo(xChild, uno::UNO_QUERY_THROW); + if (xServiceInfo->supportsService("com.sun.star.drawing.GraphicObjectShape")) + mnXmlNamespace = XML_pic; + else + mnXmlNamespace = XML_wps; WriteShape(xChild); + mnXmlNamespace = nSavedNamespace; } m_xParent = xParent; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits