[Libreoffice-commits] core.git: oox/source sw/qa
Miklos Vajna
vmiklos at collabora.co.uk
Mon Jan 20 07:22:25 PST 2014
oox/source/export/drawingml.cxx | 11 +++++++----
sw/qa/extras/ooxmlexport/data/dml-textshape.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 8 ++++++++
3 files changed, 15 insertions(+), 4 deletions(-)
New commits:
commit 305077c6c382aee1c5509b5b7809d8d73d65c674
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Mon Jan 20 15:05:50 2014 +0100
drawingML export: zero rotation shouldn't alter the shape position
I'm not exactly sure why existing code didn't do this implicitly, but at
least this improves the situation.
Change-Id: Id2bb169c513827b7ef48640dc88fad90a83d2bee
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 2a7d11a..2cddbf5 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -743,10 +743,13 @@ void DrawingML::WriteShapeTransformation( Reference< XShape > rXShape, sal_Int32
{
SdrObject* pShape = (SdrObject*) GetSdrObjectFromXShape( rXShape );
nRotation=pShape->GetRotateAngle();
- int faccos=bFlipV ? -1 : 1;
- int facsin=bFlipH ? -1 : 1;
- aPos.X-=(1-faccos*cos(nRotation*F_PI18000))*aSize.Width/2-facsin*sin(nRotation*F_PI18000)*aSize.Height/2;
- aPos.Y-=(1-faccos*cos(nRotation*F_PI18000))*aSize.Height/2+facsin*sin(nRotation*F_PI18000)*aSize.Width/2;
+ if (nRotation)
+ {
+ int faccos=bFlipV ? -1 : 1;
+ int facsin=bFlipH ? -1 : 1;
+ aPos.X-=(1-faccos*cos(nRotation*F_PI18000))*aSize.Width/2-facsin*sin(nRotation*F_PI18000)*aSize.Height/2;
+ aPos.Y-=(1-faccos*cos(nRotation*F_PI18000))*aSize.Height/2+facsin*sin(nRotation*F_PI18000)*aSize.Width/2;
+ }
}
if (!bSuppressRotation)
{
diff --git a/sw/qa/extras/ooxmlexport/data/dml-textshape.docx b/sw/qa/extras/ooxmlexport/data/dml-textshape.docx
index e5be42c..b98eea7 100644
Binary files a/sw/qa/extras/ooxmlexport/data/dml-textshape.docx and b/sw/qa/extras/ooxmlexport/data/dml-textshape.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 8d01930..ae4ab8c 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -43,6 +43,7 @@
#include <unotools/tempfile.hxx>
#include <unotools/ucbstreamhelper.hxx>
#include <rtl/strbuf.hxx>
+#include <comphelper/sequenceashashmap.hxx>
#include <com/sun/star/text/XDocumentIndex.hpp>
#include <libxml/xpathInternals.h>
@@ -2483,6 +2484,13 @@ DECLARE_OOXMLEXPORT_TEST(testDmlTextshape, "dml-textshape.docx")
return;
// This was wrap="none".
assertXPath(pXmlDocument, "/w:document/w:body/w:p[2]/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:inline/a:graphic/a:graphicData/wpg:wgp/wps:wsp[2]/wps:bodyPr", "wrap", "square");
+
+ xShape.set(xGroup->getByIndex(3), uno::UNO_QUERY);
+ OUString aType = comphelper::SequenceAsHashMap(getProperty<beans::PropertyValues>(xShape, "CustomShapeGeometry"))["Type"].get<OUString>();
+ CPPUNIT_ASSERT_EQUAL(OUString("ooxml-bentConnector3"), aType);
+ // Connector was incorrectly shifted towards the top left corner, X was 552, Y was 0.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4018), xShape->getPosition().X);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1256), xShape->getPosition().Y);
}
DECLARE_OOXMLEXPORT_TEST(testShapeThemePreservation, "shape-theme-preservation.docx")
More information about the Libreoffice-commits
mailing list