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 <vmik...@collabora.com> AuthorDate: Wed Nov 21 16:17:42 2018 +0100 Commit: Miklos Vajna <vmik...@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 <vmik...@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(); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits