[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - chart2/source sw/qa

Balazs Varga (via logerrit) logerrit at kemper.freedesktop.org
Tue Jan 7 15:21:28 UTC 2020


 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 2dc34900266e72e8e45eb1593f03fbd9db05014c
Author:     Balazs Varga <balazs.varga991 at gmail.com>
AuthorDate: Mon Dec 30 15:53:08 2019 +0100
Commit:     Xisco Faulí <xiscofauli at libreoffice.org>
CommitDate: Tue Jan 7 16:20:31 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)
    
    Change-Id: Ib935de74314b7dec489d94a4aa3c65072e18d9e0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86010
    Tested-by: Jenkins
    Reviewed-by: László Németh <nemeth at numbertext.org>
    Tested-by: László Németh <nemeth at numbertext.org>
    (cherry picked from commit d53de6b0bfff08dfbde4fe305e2a9b7a60255458)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86259
    Reviewed-by: Balazs Varga <balazs.varga991 at gmail.com>
    Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>

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 ce795abb17d0..dc619d91ff66 100644
--- a/chart2/source/view/axes/VCartesianAxis.cxx
+++ b/chart2/source/view/axes/VCartesianAxis.cxx
@@ -738,22 +738,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 c42390c26fbe..a3fe52906677 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -2365,6 +2365,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, testTdf126244)
 {
     SwDoc* pDoc = createDoc("tdf126244.docx");


More information about the Libreoffice-commits mailing list