summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpanoskorovesis <panoskorovesis@outlook.com>2021-06-14 14:04:37 +0300
committerTomaž Vajngerl <quikee@gmail.com>2021-06-16 08:22:48 +0200
commit240c6557898de6a7777b2b2055d1c133a803b396 (patch)
treeb5dd745da7393c27af2dfe63d12ea75da36322cf
parent81472692c4ee0b12c6d2184823faefa7a53431e6 (diff)
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 <quikee@gmail.com>
-rw-r--r--vcl/qa/cppunit/svm/data/moveclipregion.svmbin0 -> 287 bytes
-rw-r--r--vcl/qa/cppunit/svm/svmtest.cxx35
-rw-r--r--vcl/source/gdi/mtfxmldump.cxx11
3 files changed, 43 insertions, 3 deletions
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
--- /dev/null
+++ b/vcl/qa/cppunit/svm/data/moveclipregion.svm
Binary files 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:
{