vcl/qa/cppunit/svm/data/moveclipregion.svm |binary vcl/qa/cppunit/svm/svmtest.cxx | 35 +++++++++++++++++++++++++++-- vcl/source/gdi/mtfxmldump.cxx | 11 ++++++++- 3 files changed, 43 insertions(+), 3 deletions(-)
New commits: commit 240c6557898de6a7777b2b2055d1c133a803b396 Author: panoskorovesis <[email protected]> AuthorDate: Mon Jun 14 14:04:37 2021 +0300 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Wed Jun 16 08:22:48 2021 +0200 Add MoveClipRegion cppunit test to vcl The test creates two MoveClipRegions and checks their attributes. mtfxmldump.cxx was modified to support MoveClipRegion case. Change-Id: Ibfabf9d4048cf94e43c259e411a6c59b73baff34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117153 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/vcl/qa/cppunit/svm/data/moveclipregion.svm b/vcl/qa/cppunit/svm/data/moveclipregion.svm new file mode 100644 index 000000000000..6b53403741be Binary files /dev/null and b/vcl/qa/cppunit/svm/data/moveclipregion.svm differ diff --git a/vcl/qa/cppunit/svm/svmtest.cxx b/vcl/qa/cppunit/svm/svmtest.cxx index 3fb91f84f006..02fbcdb5c04f 100644 --- a/vcl/qa/cppunit/svm/svmtest.cxx +++ b/vcl/qa/cppunit/svm/svmtest.cxx @@ -136,7 +136,7 @@ class SvmTest : public test::BootstrapFixture, public XmlTestTools void checkIntersectRegionClipRegion(const GDIMetaFile& rMetaFile); void testIntersectRegionClipRegion(); - //void checkMoveClipRegion(const GDIMetaFile& rMetaFile); + void checkMoveClipRegion(const GDIMetaFile& rMetaFile); void testMoveClipRegion(); void checkLineColor(const GDIMetaFile& rMetaFile); @@ -1647,8 +1647,39 @@ void SvmTest::testIntersectRegionClipRegion() checkIntersectRegionClipRegion(readFile(u"intersectregionclipregion.svm")); } +void SvmTest::checkMoveClipRegion(const GDIMetaFile& rMetaFile) +{ + xmlDocUniquePtr pDoc = dumpMeta(rMetaFile); + + assertXPathAttrs(pDoc, "/metafile/moveclipregion[1]", { + {"horzmove", "1"}, + {"vertmove", "2"} + }); + + assertXPathAttrs(pDoc, "/metafile/moveclipregion[2]", { + {"horzmove", "-3"}, + {"vertmove", "-4"} + }); +} + void SvmTest::testMoveClipRegion() -{} +{ + GDIMetaFile aGDIMetaFile; + ScopedVclPtrInstance<VirtualDevice> pVirtualDev; + setupBaseVirtualDevice(*pVirtualDev, aGDIMetaFile); + + tools::Rectangle aRectangle(Point(1, 2), Size(4, 8)); + + vcl::Region aRegion(aRectangle); + aRegion.Move(2, 2); + pVirtualDev->SetClipRegion(aRegion); + + pVirtualDev->MoveClipRegion(1, 2); + pVirtualDev->MoveClipRegion(-3, -4); + + checkMoveClipRegion(writeAndReadStream(aGDIMetaFile)); + checkMoveClipRegion(readFile(u"moveclipregion.svm")); +} void SvmTest::checkLineColor(const GDIMetaFile& rMetaFile) { diff --git a/vcl/source/gdi/mtfxmldump.cxx b/vcl/source/gdi/mtfxmldump.cxx index 7799a3014f15..e5651906ed57 100644 --- a/vcl/source/gdi/mtfxmldump.cxx +++ b/vcl/source/gdi/mtfxmldump.cxx @@ -1094,7 +1094,16 @@ void MetafileXmlDump::writeXml(const GDIMetaFile& rMetaFile, tools::XmlWriter& r } break; - // case MetaActionType::MOVECLIPREGION: + case MetaActionType::MOVECLIPREGION: + { + const auto* pMetaMoveClipRegionAction = static_cast<MetaMoveClipRegionAction*>(pAction); + rWriter.startElement(sCurrentElementTag); + + rWriter.attribute("horzmove", pMetaMoveClipRegionAction->GetHorzMove()); + rWriter.attribute("vertmove", pMetaMoveClipRegionAction->GetVertMove()); + rWriter.endElement(); + } + break; case MetaActionType::LINECOLOR: { _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
