chart2/source/view/axes/Tickmarks.cxx | 5 +++++ chart2/source/view/axes/Tickmarks.hxx | 1 + chart2/source/view/axes/VCartesianAxis.cxx | 15 ++++----------- sw/qa/extras/layout/data/tdf128996.docx |binary sw/qa/extras/layout/layout.cxx | 16 ++++++++++++++++ 5 files changed, 26 insertions(+), 11 deletions(-)
New commits: commit 2530ef4a8c381f38decc605bc9f0fbe3766826ee Author: Balazs Varga <balazs.varga...@gmail.com> AuthorDate: Mon Dec 30 15:53:08 2019 +0100 Commit: Adolfo Jayme Barrientos <fit...@ubuntu.com> CommitDate: Sun Jan 19 01:09:39 2020 +0100 tdf#128996 Chart: Fix disappeared vertical X axis labels Regression from commit: 75ef0e41ea8a9096ac619356d2b837c5333b47e6 (tdf#125334 Chart: allow text break in bar chart axis labels) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86010 Tested-by: Jenkins Reviewed-by: László Németh <nem...@numbertext.org> Tested-by: László Németh <nem...@numbertext.org> (cherry picked from commit d53de6b0bfff08dfbde4fe305e2a9b7a60255458) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86259 Reviewed-by: Balazs Varga <balazs.varga...@gmail.com> Reviewed-by: Xisco Faulí <xiscofa...@libreoffice.org> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Change-Id: Ib935de74314b7dec489d94a4aa3c65072e18d9e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86355 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga...@gmail.com> Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/chart2/source/view/axes/Tickmarks.cxx b/chart2/source/view/axes/Tickmarks.cxx index 45e311ce3cfa..e1dc3953bd11 100644 --- a/chart2/source/view/axes/Tickmarks.cxx +++ b/chart2/source/view/axes/Tickmarks.cxx @@ -204,6 +204,11 @@ sal_Int32 TickFactory2D::getTickScreenDistance( TickIter& rIter ) return pFirstTickInfo->getScreenDistanceBetweenTicks( *pSecondTickInfo ); } +B2DVector TickFactory2D::getXaxisStartPos() const +{ + return m_aAxisStartScreenPosition2D; +} + B2DVector TickFactory2D::getTickScreenPosition2D( double fScaledLogicTickValue ) const { B2DVector aRet(m_aAxisStartScreenPosition2D); diff --git a/chart2/source/view/axes/Tickmarks.hxx b/chart2/source/view/axes/Tickmarks.hxx index b0cb774dbf5d..34addbeb45db 100644 --- a/chart2/source/view/axes/Tickmarks.hxx +++ b/chart2/source/view/axes/Tickmarks.hxx @@ -135,6 +135,7 @@ public: bool isHorizontalAxis() const; bool isVerticalAxis() const; + ::basegfx::B2DVector getXaxisStartPos() const; private: ::basegfx::B2DVector getTickScreenPosition2D( double fScaledLogicTickValue ) const; diff --git a/chart2/source/view/axes/VCartesianAxis.cxx b/chart2/source/view/axes/VCartesianAxis.cxx index 4b7f4df2f8ac..dce4de52783b 100644 --- a/chart2/source/view/axes/VCartesianAxis.cxx +++ b/chart2/source/view/axes/VCartesianAxis.cxx @@ -733,22 +733,15 @@ bool VCartesianAxis::createTextShapes( // recalculate the nLimitedSpaceForText in case of 90 and 270 degree if the text break is true if ( rAxisLabelProperties.fRotationAngleDegree == 90.0 || rAxisLabelProperties.fRotationAngleDegree == 270.0 ) { - if ( rAxisLabelProperties.m_aFontReferenceSize.Height - rAxisLabelProperties.m_aMaximumSpaceForLabels.Height > 2 * rAxisLabelProperties.m_aMaximumSpaceForLabels.Y ) - { - const sal_Int32 nFullHeight = rAxisLabelProperties.m_aFontReferenceSize.Height; - sal_Int32 nMaxLabelsHeight = nFullHeight - ( rAxisLabelProperties.m_aMaximumSpaceForLabels.Height + rAxisLabelProperties.m_aMaximumSpaceForLabels.Y ); - nLimitedSpaceForText = nMaxLabelsHeight; - } - else - { - nLimitedSpaceForText = -1; - } + nLimitedSpaceForText = rAxisLabelProperties.m_aFontReferenceSize.Height - pTickFactory->getXaxisStartPos().getY(); + m_aAxisProperties.m_bLimitSpaceForLabels = false; } // recalculate the nLimitedSpaceForText in case of vertical category axis if the text break is true if ( m_aAxisProperties.m_bSwapXAndY && bIsVerticalAxis && rAxisLabelProperties.fRotationAngleDegree == 0.0 ) { - nLimitedSpaceForText = rAxisLabelProperties.m_aMaximumSpaceForLabels.X; + nLimitedSpaceForText = pTickFactory->getXaxisStartPos().getX(); + m_aAxisProperties.m_bLimitSpaceForLabels = false; } } diff --git a/sw/qa/extras/layout/data/tdf128996.docx b/sw/qa/extras/layout/data/tdf128996.docx new file mode 100644 index 000000000000..8b6e77214b0c Binary files /dev/null and b/sw/qa/extras/layout/data/tdf128996.docx differ diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx index fdd1d2ae125c..80b0ecdac7f9 100644 --- a/sw/qa/extras/layout/layout.cxx +++ b/sw/qa/extras/layout/layout.cxx @@ -2437,6 +2437,22 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf122800) // This failed, if the textarray length of the first axis label not 22. } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf128996) +{ + SwDoc* pDoc = createDoc("tdf128996.docx"); + SwDocShell* pShell = pDoc->GetDocShell(); + + // Dump the rendering of the first page as an XML file. + std::shared_ptr<GDIMetaFile> xMetaFile = pShell->GetPreviewMetaFile(); + MetafileXmlDump dumper; + xmlDocPtr pXmlDoc = dumpAndParse(dumper, *xMetaFile); + CPPUNIT_ASSERT(pXmlDoc); + + assertXPathContent(pXmlDoc, + "/metafile/push[1]/push[1]/push[1]/push[4]/push[1]/textarray[1]/text", + "A very long category name 1"); +} + CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf127304) { SwDoc* pDoc = createDoc("tdf127304.odt"); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits