diff options
author | Paul Trojahn <paul.trojahn@gmail.com> | 2017-07-23 22:59:25 +0200 |
---|---|---|
committer | Tamás Zolnai <tamas.zolnai@collabora.com> | 2017-08-10 17:50:47 +0200 |
commit | 5fc980154a968d8f48803289f0042d105dfc102a (patch) | |
tree | c48b9afe0767d7ff548a1fc0759bf7c4e6d449ae /sd | |
parent | c3f8727fe88e3073272f573516d5662ddcbbaa13 (diff) |
tdf#109187 Fix OOXML import of flipped shapes with gradients
The rotation of the gradient instead of the shape needs to be
flipped because OOXML flips shapes before rotating them.
Change-Id: I332412078ae0f8d555bd462964c7b20037147e02
Reviewed-on: https://gerrit.libreoffice.org/40136
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/qa/unit/data/pptx/tdf109187.pptx | bin | 0 -> 34647 bytes | |||
-rw-r--r-- | sd/qa/unit/data/xml/n762695_0.xml | 2 | ||||
-rw-r--r-- | sd/qa/unit/import-tests.cxx | 17 |
3 files changed, 18 insertions, 1 deletions
diff --git a/sd/qa/unit/data/pptx/tdf109187.pptx b/sd/qa/unit/data/pptx/tdf109187.pptx Binary files differnew file mode 100644 index 000000000000..0fd03c81e6a5 --- /dev/null +++ b/sd/qa/unit/data/pptx/tdf109187.pptx diff --git a/sd/qa/unit/data/xml/n762695_0.xml b/sd/qa/unit/data/xml/n762695_0.xml index 0b216210097d..26255f7f8dfb 100644 --- a/sd/qa/unit/data/xml/n762695_0.xml +++ b/sd/qa/unit/data/xml/n762695_0.xml @@ -164,7 +164,7 @@ </XShape> <XShape positionX="17594" positionY="7175" sizeX="1418" sizeY="1450" type="com.sun.star.drawing.CustomShape" name="Left Arrow 13" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName=""> <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> - <FillGradient style="LINEAR" startColor="b29dde" endColor="ffffff" angle="3150" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/> + <FillGradient style="LINEAR" startColor="b29dde" endColor="ffffff" angle="2250" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/> <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/> <FillBitmap width="32" height="32"/> <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/> diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index 7cf536eb3bb1..392369234d0a 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -167,6 +167,7 @@ public: void testSmartArtChildren(); void testTdf109223(); void testActiveXCheckbox(); + void testTdf109187(); bool checkPattern(sd::DrawDocShellRef const & rDocRef, int nShapeNumber, std::vector<sal_uInt8>& rExpected); void testPatternImport(); @@ -241,6 +242,7 @@ public: CPPUNIT_TEST(testSmartArtChildren); CPPUNIT_TEST(testTdf109223); CPPUNIT_TEST(testActiveXCheckbox); + CPPUNIT_TEST(testTdf109187); CPPUNIT_TEST_SUITE_END(); }; @@ -2365,6 +2367,21 @@ void SdImportTest::testActiveXCheckbox() xDocShRef->DoClose(); } +void SdImportTest::testTdf109187() +{ + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf109187.pptx"), PPTX); + uno::Reference< beans::XPropertySet > xArrow1(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW); + awt::Gradient aGradient1; + CPPUNIT_ASSERT(xArrow1->getPropertyValue("FillGradient") >>= aGradient1); + CPPUNIT_ASSERT_EQUAL(sal_Int16(2250), aGradient1.Angle); + uno::Reference< beans::XPropertySet > xArrow2(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW); + awt::Gradient aGradient2; + CPPUNIT_ASSERT(xArrow2->getPropertyValue("FillGradient") >>= aGradient2); + CPPUNIT_ASSERT_EQUAL(sal_Int16(1350), aGradient2.Angle); + + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); |