diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2019-11-27 17:14:13 +0100 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2019-12-03 11:05:11 +0100 |
commit | 888498cfc8822401d79d8a5e56e1bf502172eff7 (patch) | |
tree | f20a86523d00c51382636bf069c2bff8996dcf8f /sw | |
parent | 08cb6ed14be3c2b71377a9d16ad0f19086278362 (diff) |
Related: tdf#128611 RTF import: handle vertical flip of line shapes
UI uses SdrEditView::MirrorMarkedObjVertical() to flip a line shape
vertically, handle it similarly at import time as well.
Also note that this flips in-place, while the naive '*= -1' for the
height would have an incorrect vertical position.
(cherry picked from commit f9f421b7beaf117968c0dbfd84a2dad3dc85136a)
Conflicts:
sw/qa/extras/rtfimport/rtfimport.cxx
Change-Id: I42b7feb5f799b99337ddec734dcf98dd1d553755
Reviewed-on: https://gerrit.libreoffice.org/84230
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/rtfimport/data/tdf128611.rtf | 29 | ||||
-rw-r--r-- | sw/qa/extras/rtfimport/rtfimport.cxx | 18 |
2 files changed, 47 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfimport/data/tdf128611.rtf b/sw/qa/extras/rtfimport/data/tdf128611.rtf new file mode 100644 index 000000000000..207252cd8d26 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/tdf128611.rtf @@ -0,0 +1,29 @@ +{\rtf1 +\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1417 +\pard\plain +{\shp +{\*\shpinst\shpleft-5\shptop248\shpright8933\shpbottom1838\shpfhdr0\shpbxmargin\shpbxignore\shpbymargin\shpbyignore\shpwr0\shpwrk0\shpfblwtxt0\shpz0\shplid1028 +{\sp +{\sn shapeType} +{\sv 20} +} +{\sp +{\sn fFlipH} +{\sv 0} +} +{\sp +{\sn fFlipV} +{\sv 1} +} +{\sp +{\sn posrelh} +{\sv 3} +} +} +{\shprslt +{\*\do\dobxmargin\dobymargin\dodhgt8192 +\dpline\dpptx8938\dppty0\dpptx0\dppty1590\dpx-5\dpy9248\dpxsize8938\dpysize1590\dplinew15\dplinecor0\dplinecog0\dplinecob0} +} +} +\par +} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 334b48c80809..6fa57b6de4ce 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -857,6 +857,24 @@ DECLARE_RTFIMPORT_TEST(testOleInline, "ole-inline.rtf") getProperty<text::TextContentAnchorType>(getShape(1), "AnchorType")); } +DECLARE_RTFIMPORT_TEST(testTdf128611, "tdf128611.rtf") +{ + auto aPolyPolySequence + = getProperty<uno::Sequence<uno::Sequence<awt::Point>>>(getShape(1), "PolyPolygon"); + CPPUNIT_ASSERT(aPolyPolySequence.hasElements()); + uno::Sequence<awt::Point>& rPolygon = aPolyPolySequence[0]; + CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(1), rPolygon.getLength()); + sal_Int32 nY1 = rPolygon[0].Y; + sal_Int32 nY2 = rPolygon[1].Y; + + // Without the accompanying fix in place, this test would have failed with: + // - Expected greater than: 6242 + // - Actual : 3438 + // i.e. the vertical flip was missing, and the y1 > y2 assert failed, because the line pointed + // from top left to bottom right, not bottom left to top right. + CPPUNIT_ASSERT_GREATER(nY2, nY1); +} + DECLARE_RTFIMPORT_TEST(testFdo80742, "fdo80742.rtf") { uno::Reference<beans::XPropertySet> xPropertySet( |