summaryrefslogtreecommitdiff
path: root/emfio
diff options
context:
space:
mode:
authorBartosz Kosiorek <gang65@poczta.onet.pl>2022-04-22 16:46:39 +0200
committerAndras Timar <andras.timar@collabora.com>2022-04-25 11:13:56 +0200
commitc6fab8b3c25de948372f13e1faf59f71724bff6b (patch)
tree042e950bafae4cf4fed56e166db9b22fb22d7f26 /emfio
parent4e833598f83aedec6aec46be8acf178e6b051638 (diff)
tdf#55058 tdf#143875 EMF+ Don't change line weight while rotating
Previously when TranfromationMatrix was used with rotation, the line weight and dashed line shapes were changed. In worst case if angle was larger than 90 degrees, the lines just disappear. This patch fixes that. The line looks exactly after rotation (with TranfromationMatrix). The tests were updated (added some additional rotation), to prove that now it is working correctly. Change-Id: Ic2382fa8d1b711a6bf06c94b2d0b9da9e7d396f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133329 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl> (cherry picked from commit abe3a06c45c0803a5c8bcf16e0e586fd72781c93) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133285 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Diffstat (limited to 'emfio')
-rw-r--r--emfio/qa/cppunit/emf/EmfImportTest.cxx46
-rw-r--r--emfio/qa/cppunit/emf/data/TestEmfPlusDrawLineWithDash.emfbin9636 -> 9472 bytes
2 files changed, 27 insertions, 19 deletions
diff --git a/emfio/qa/cppunit/emf/EmfImportTest.cxx b/emfio/qa/cppunit/emf/EmfImportTest.cxx
index 63661c9c73c2..a734010e0dac 100644
--- a/emfio/qa/cppunit/emf/EmfImportTest.cxx
+++ b/emfio/qa/cppunit/emf/EmfImportTest.cxx
@@ -389,13 +389,13 @@ void Test::TestDrawLine()
// check correct import of the DrawLine: color and width of the line
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke/line", "color", "#000000");
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke/line", "width", "33");
+ assertXPath(pDocument, aXPathPrefix + "polypolygonstroke/line", "width", "23");
}
void Test::TestDrawLineWithDash()
{
- // EMF+ with records: DrawLine
- // The lines with different dash styles
+ // EMF+ with records: DrawLine, ScaleWorldTransform, RotateWorldTransform
+ // Test lines with different dash styles and different World Rotation
Primitive2DSequence aSequence
= parseEmf(u"/emfio/qa/cppunit/emf/data/TestEmfPlusDrawLineWithDash.emf");
CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(aSequence.getLength()));
@@ -405,23 +405,31 @@ void Test::TestDrawLineWithDash()
CPPUNIT_ASSERT(pDocument);
// check correct import of the DrawLine: color and width of the line
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke", 10);
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "color", "#000000");
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "width", "132");
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/stroke", 0);
-
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/line", "width", "132");
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/stroke", "dotDashArray",
- "13225 13225 ");
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[3]/stroke", "dotDashArray",
- "39674 13225 ");
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[4]/stroke", "dotDashArray",
- "39674 13225 13225 13225 ");
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[5]/stroke", "dotDashArray",
- "39674 13225 13225 13225 13225 13225 ");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke", 12);
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[1]/line", "color", "#000000");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[1]/line", "width", "185");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[1]/stroke", 0);
+
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[2]/line", "width", "185");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[2]/stroke", "dotDashArray",
+ "185 185 ");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[3]/line", "width", "185");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[3]/stroke", "dotDashArray",
+ "556 185 ");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[4]/line", "width", "185");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[4]/stroke", "dotDashArray",
+ "556 185 185 185 ");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[5]/line", "width", "370");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[5]/stroke", "dotDashArray",
+ "556 185 185 185 185 185 ");
//TODO polypolygonstroke[6-9]/stroke add support for PenDataDashedLineOffset
- assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[10]/stroke", "dotDashArray",
- "66124 26450 198372 52899 ");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[10]/line", "width", "370");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[10]/stroke", "dotDashArray",
+ "1851 741 5554 1481 ");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[11]/line", "width", "370");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[11]/stroke", "dotDashArray",
+ "1851 741 5554 1481 ");
+ assertXPath(pDocument, aXPathPrefix + "mask/polypolygonstroke[12]/line", "width", "370");
}
void Test::TestLinearGradient()
diff --git a/emfio/qa/cppunit/emf/data/TestEmfPlusDrawLineWithDash.emf b/emfio/qa/cppunit/emf/data/TestEmfPlusDrawLineWithDash.emf
index dc5af59e3f66..547cfca3fcad 100644
--- a/emfio/qa/cppunit/emf/data/TestEmfPlusDrawLineWithDash.emf
+++ b/emfio/qa/cppunit/emf/data/TestEmfPlusDrawLineWithDash.emf
Binary files differ