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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Nov 21 17:53:11 UTC 2018


 oox/source/drawingml/diagram/diagramlayoutatoms.cxx |    2 +-
 sd/qa/unit/import-tests-smartart.cxx                |   17 ++++++++++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

New commits:
commit 67e062aa5e5946d4985921fe2b6f87766f363ddc
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Wed Nov 21 16:17:42 2018 +0100
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Wed Nov 21 18:52:42 2018 +0100

    oox smartart, accent process: fix overlapping shape pairs
    
    Linear algorithm had an idea how to take width from constrains, but that
    was unused for embedded child algorithms.
    
    Change-Id: If4c497e053ea0d134a1ffc529f1d233ec4fc50db
    Reviewed-on: https://gerrit.libreoffice.org/63725
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Jenkins

diff --git a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx
index c053aa4c441a..bb5ed2ad7704 100644
--- a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx
+++ b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx
@@ -523,7 +523,7 @@ void AlgAtom::layoutShape( const ShapePtr& rShape,
                 aSize.Width *= fWidthScale;
                 aCurrShape->setSize(aSize);
 
-                aCurrShape->setChildSize(aChildSize);
+                aCurrShape->setChildSize(aSize);
                 aCurrPos.X += nIncX * (aSize.Width + fSpace*aSize.Width);
                 aCurrPos.Y += nIncY * (aChildSize.Height + fSpace*aChildSize.Height);
             }
diff --git a/sd/qa/unit/import-tests-smartart.cxx b/sd/qa/unit/import-tests-smartart.cxx
index edb64c3ba600..f431cdddfa03 100644
--- a/sd/qa/unit/import-tests-smartart.cxx
+++ b/sd/qa/unit/import-tests-smartart.cxx
@@ -472,7 +472,7 @@ void SdImportTestSmartArt::testAccentProcess()
     CPPUNIT_ASSERT(xFirstParentText.is());
     CPPUNIT_ASSERT_EQUAL(OUString("a"), xFirstParentText->getString());
     uno::Reference<drawing::XShape> xFirstParent(xFirstParentText, uno::UNO_QUERY);
-    CPPUNIT_ASSERT(xFirstParentText.is());
+    CPPUNIT_ASSERT(xFirstParent.is());
     int nFirstParentTop = xFirstParent->getPosition().Y;
 
     uno::Reference<text::XText> xFirstChildText(xFirstPair->getByIndex(2), uno::UNO_QUERY);
@@ -481,6 +481,7 @@ void SdImportTestSmartArt::testAccentProcess()
     uno::Reference<drawing::XShape> xFirstChild(xFirstChildText, uno::UNO_QUERY);
     CPPUNIT_ASSERT(xFirstChildText.is());
     int nFirstChildTop = xFirstChild->getPosition().Y;
+    int nFirstChildRight = xFirstChild->getPosition().X + xFirstChild->getSize().Width;
 
     // First child is below the first parent.
     // Without the accompanying fix in place, this test would have failed with
@@ -488,6 +489,20 @@ void SdImportTestSmartArt::testAccentProcess()
     // below xFirstParent (a good position is 9081).
     CPPUNIT_ASSERT_LESS(nFirstChildTop, nFirstParentTop);
 
+    uno::Reference<drawing::XShapes> xSecondPair(xGroup->getByIndex(2), uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xSecondPair.is());
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xSecondPair->getCount());
+    uno::Reference<text::XText> xSecondParentText(xSecondPair->getByIndex(1), uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xFirstParentText.is());
+    CPPUNIT_ASSERT_EQUAL(OUString("c"), xSecondParentText->getString());
+    uno::Reference<drawing::XShape> xSecondParent(xSecondParentText, uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xSecondParent.is());
+    int nSecondParentLeft = xSecondParent->getPosition().X;
+    // Without the accompanying fix in place, this test would have failed with
+    // 'Expected less than: 12700; Actual  : 18540', i.e. the "b" and "c"
+    // shapes overlapped.
+    CPPUNIT_ASSERT_LESS(nSecondParentLeft, nFirstChildRight);
+
     xDocShRef->DoClose();
 }
 


More information about the Libreoffice-commits mailing list