summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGülşah Köse <gulsah.kose@collabora.com>2019-11-22 14:05:24 +0300
committerAndras Timar <andras.timar@collabora.com>2019-11-22 23:18:22 +0100
commitfe9545f05a5d5ad871564a24a395d9893fe00da4 (patch)
treedab929f8fd8cbeadb42d15dd7505a4578f400ca3
parent1ce19c030f95edd2cf301abdc14313c98d347829 (diff)
tdf#128952 Set the position of shape for 180 deg.
If the rotation value is 180, 540, 900... degree with mirror pShape->GetRotateAngle() returns 0. In that control 0 means no rotation but that is not true. For that cases (180, 540, 900) after the angle conversition GetRotateAngle() returns 0. We should recalculate the position for 0 too. Change-Id: I14e981235b2d6cd8382d4c9e151bccd2e73a3fd9 Reviewed-on: https://gerrit.libreoffice.org/83468 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com> (cherry picked from commit aca2e4d270f472b2cbdb9084a55f1855529ea705) Reviewed-on: https://gerrit.libreoffice.org/83536 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r--oox/source/export/drawingml.cxx2
-rw-r--r--sd/qa/unit/data/pptx/tdf128952.pptxbin0 -> 25578 bytes
-rw-r--r--sd/qa/unit/export-tests-ooxml1.cxx17
3 files changed, 18 insertions, 1 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 7962c41f6406..9ac4fd744963 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1576,7 +1576,7 @@ void DrawingML::WriteShapeTransformation( const Reference< XShape >& rXShape, sa
{
SdrObject* pShape = GetSdrObjectFromXShape( rXShape );
nRotation = pShape ? pShape->GetRotateAngle() : 0;
- if ( nRotation != 0 && GetDocumentType() != DOCUMENT_DOCX )
+ if ( GetDocumentType() != DOCUMENT_DOCX )
{
int faccos=bFlipV ? -1 : 1;
int facsin=bFlipH ? -1 : 1;
diff --git a/sd/qa/unit/data/pptx/tdf128952.pptx b/sd/qa/unit/data/pptx/tdf128952.pptx
new file mode 100644
index 000000000000..242a3ee9ace5
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf128952.pptx
Binary files differ
diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx
index 601497cee2b3..59795b9f3c22 100644
--- a/sd/qa/unit/export-tests-ooxml1.cxx
+++ b/sd/qa/unit/export-tests-ooxml1.cxx
@@ -100,6 +100,7 @@ public:
void testParaMarginAndindentation();
void testTdf111884();
void testTdf112633();
+ void testTdf128952();
void testCustomXml();
void testPictureTransparency();
void testTdf94238();
@@ -132,6 +133,7 @@ public:
CPPUNIT_TEST(testParaMarginAndindentation);
CPPUNIT_TEST(testTdf111884);
CPPUNIT_TEST(testTdf112633);
+ CPPUNIT_TEST(testTdf128952);
CPPUNIT_TEST(testCustomXml);
CPPUNIT_TEST(testPictureTransparency);
CPPUNIT_TEST(testTdf94238);
@@ -836,6 +838,21 @@ void SdOOXMLExportTest1::testTdf112633()
CPPUNIT_ASSERT_EQUAL(true, bool(xNameAccess->hasByName("ppt/media/hdphoto1.wdp")));
}
+void SdOOXMLExportTest1::testTdf128952()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf128952.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocPtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:xfrm/a:off", "x", "360");
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:xfrm/a:off", "y", "-360");
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:xfrm/a:ext", "cx", "1919880");
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:xfrm/a:ext", "cy", "1462680");
+}
+
void SdOOXMLExportTest1::testCustomXml()
{
// Load document and export it to a temporary file