[Libreoffice-commits] core.git: vcl/qa vcl/source

panoskorovesis (via logerrit) logerrit at kemper.freedesktop.org
Wed Jun 16 06:23:32 UTC 2021


 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 <panoskorovesis at outlook.com>
AuthorDate: Mon Jun 14 14:04:37 2021 +0300
Commit:     Tomaž Vajngerl <quikee at gmail.com>
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 <quikee at gmail.com>

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:
             {


More information about the Libreoffice-commits mailing list