[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - chart2/qa chart2/source oox/inc oox/source

Balazs Varga (via logerrit) logerrit at kemper.freedesktop.org
Tue Sep 29 14:55:23 UTC 2020


 chart2/qa/extras/chart2export.cxx                  |   11 +++++++++++
 chart2/qa/extras/data/xlsx/tdf136267.xlsx          |binary
 chart2/source/tools/ExplicitCategoriesProvider.cxx |    1 +
 oox/inc/drawingml/chart/typegroupmodel.hxx         |    1 -
 oox/source/drawingml/chart/axisconverter.cxx       |    5 ++++-
 oox/source/drawingml/chart/plotareaconverter.cxx   |    2 --
 oox/source/drawingml/chart/typegroupconverter.cxx  |    4 ++--
 oox/source/drawingml/chart/typegroupmodel.cxx      |    3 +--
 8 files changed, 19 insertions(+), 8 deletions(-)

New commits:
commit 1208b154c44a4e930fc630e062273d91b21edb0a
Author:     Balazs Varga <balazs.varga991 at gmail.com>
AuthorDate: Fri Sep 11 14:14:13 2020 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Tue Sep 29 16:54:49 2020 +0200

    tdf#136267 OOXML Chart Import: create main category axis labels once
    
    because InternalDataProvider can not handle different category names
    on the primary and secondary category axis.
    
    Revert e0b0502516a10181bbd1737b93b38b2bba4c98e8 commit, except
    the relevant unit test.
    
    Regression from commit: e0b0502516a10181bbd1737b93b38b2bba4c98e8
    (tdf#128016 Chart OOXML Import: fix duplicated category labels)
    
    Also fix tdf#129994 (FILEOPEN - hang at import time), which is a
    a regression from commit fa0a981af41a2606541eec1cb20a379a739691e0
    (tdf#114166 DOCX chart import: fix missing complex categories)
    
    Change-Id: I5d049e760eb1a647ea774be264349a2f16f15f5b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102463
    Tested-by: László Németh <nemeth at numbertext.org>
    Reviewed-by: László Németh <nemeth at numbertext.org>
    Signed-off-by: Xisco Fauli <xiscofauli at libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103617
    Tested-by: Jenkins

diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index 2459a2b3089b..b1bc22c61469 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -172,6 +172,7 @@ public:
     void testTdf133190();
     void testTdf133191();
     void testTdf132594();
+    void testTdf136267();
 
     CPPUNIT_TEST_SUITE(Chart2ExportTest);
     CPPUNIT_TEST(testErrorBarXLSX);
@@ -307,6 +308,7 @@ public:
     CPPUNIT_TEST(testTdf133190);
     CPPUNIT_TEST(testTdf133191);
     CPPUNIT_TEST(testTdf132594);
+    CPPUNIT_TEST(testTdf136267);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -2816,6 +2818,15 @@ void Chart2ExportTest::testTdf132594()
     assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:cat", 1);
 }
 
+void Chart2ExportTest::testTdf136267()
+{
+    load("/chart2/qa/extras/data/xlsx/", "tdf136267.xlsx");
+    xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML");
+    CPPUNIT_ASSERT(pXmlDoc);
+
+    assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:cat/c:strRef/c:strCache/c:pt/c:v", "John");
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/chart2/qa/extras/data/xlsx/tdf136267.xlsx b/chart2/qa/extras/data/xlsx/tdf136267.xlsx
new file mode 100644
index 000000000000..741a33c429b9
Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf136267.xlsx differ
diff --git a/chart2/source/tools/ExplicitCategoriesProvider.cxx b/chart2/source/tools/ExplicitCategoriesProvider.cxx
index c0b232240710..bf65f58ec850 100644
--- a/chart2/source/tools/ExplicitCategoriesProvider.cxx
+++ b/chart2/source/tools/ExplicitCategoriesProvider.cxx
@@ -55,6 +55,7 @@ ExplicitCategoriesProvider::ExplicitCategoriesProvider( const Reference< chart2:
     {
         if( xCooSysModel.is() )
         {
+            // TODO: handle different category names on the primary and secondary category axis.
             uno::Reference< XAxis > xAxis( xCooSysModel->getAxisByDimension(0,0) );
             if( xAxis.is() )
             {
diff --git a/oox/inc/drawingml/chart/typegroupmodel.hxx b/oox/inc/drawingml/chart/typegroupmodel.hxx
index 7da97c39e578..e790d48dabdc 100644
--- a/oox/inc/drawingml/chart/typegroupmodel.hxx
+++ b/oox/inc/drawingml/chart/typegroupmodel.hxx
@@ -76,7 +76,6 @@ struct TypeGroupModel
     bool                mbSmooth;           /// True = smooth lines in line charts.
     bool                mbVaryColors;       /// True = different automatic colors for each point.
     bool                mbWireframe;        /// True = wireframe surface chart, false = filled surface chart.
-    bool                mbCatAxisVisible;   /// True = Category axis is visible.
 
     explicit            TypeGroupModel( sal_Int32 nTypeId, bool bMSO2007Doc );
                         ~TypeGroupModel();
diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx
index d73632476550..8599c68e6732 100644
--- a/oox/source/drawingml/chart/axisconverter.cxx
+++ b/oox/source/drawingml/chart/axisconverter.cxx
@@ -208,7 +208,10 @@ void AxisConverter::convertFromModel(
                     // tdf#132076: set axis type to date, if it is a date axis!
                     aScaleData.AxisType = bDateAxis ? cssc2::AxisType::DATE : cssc2::AxisType::CATEGORY;
                     aScaleData.AutoDateAxis = mrModel.mbAuto;
-                    aScaleData.Categories = rTypeGroups.front()->createCategorySequence();
+                    /* TODO: create main category axis labels once, while InternalDataProvider
+                    can not handle different category names on the primary and secondary category axis. */
+                    if( nAxesSetIdx == 0 )
+                        aScaleData.Categories = rTypeGroups.front()->createCategorySequence();
                     /* set default ShiftedCategoryPosition values for some charttype,
                        because the XML can contain wrong CrossBetween value, if came from MSO */
                     if( rTypeGroups.front()->is3dChart() && (rTypeInfo.meTypeId == TYPEID_BAR || rTypeInfo.meTypeId == TYPEID_HORBAR || rTypeInfo.meTypeId == TYPEID_STOCK) )
diff --git a/oox/source/drawingml/chart/plotareaconverter.cxx b/oox/source/drawingml/chart/plotareaconverter.cxx
index e5f337a94193..8a8a721a1fe9 100644
--- a/oox/source/drawingml/chart/plotareaconverter.cxx
+++ b/oox/source/drawingml/chart/plotareaconverter.cxx
@@ -422,8 +422,6 @@ void PlotAreaConverter::convertFromModel( View3DModel& rView3DModel )
 
     for (auto const& axesSet : aAxesSets)
     {
-        if( !axesSet->maAxes.empty() && mrModel.maTypeGroups.size() > sal::static_int_cast<sal_uInt32>(nAxesSetIdx) )
-            mrModel.maTypeGroups[nAxesSetIdx]->mbCatAxisVisible = !axesSet->maAxes[0]->mbDeleted;
         AxesSetConverter aAxesSetConv(*this, *axesSet);
         aAxesSetConv.convertFromModel( xDiagram, rView3DModel, nAxesSetIdx, bSupportsVaryColorsByPoint );
         if(nAxesSetIdx == nStartAxesSetIdx)
diff --git a/oox/source/drawingml/chart/typegroupconverter.cxx b/oox/source/drawingml/chart/typegroupconverter.cxx
index 621d768caa26..9953d43801a6 100644
--- a/oox/source/drawingml/chart/typegroupconverter.cxx
+++ b/oox/source/drawingml/chart/typegroupconverter.cxx
@@ -271,7 +271,7 @@ Reference< XLabeledDataSequence > TypeGroupConverter::createCategorySequence()
         first series, even if it was empty. */
     for (auto const& elem : mrModel.maSeries)
     {
-        if( elem->maSources.has( SeriesModel::CATEGORIES ) && mrModel.mbCatAxisVisible)
+        if( elem->maSources.has( SeriesModel::CATEGORIES ) )
         {
             SeriesConverter aSeriesConv(*this, *elem);
             xLabeledSeq = aSeriesConv.createCategorySequence( "categories" );
@@ -286,7 +286,7 @@ Reference< XLabeledDataSequence > TypeGroupConverter::createCategorySequence()
         }
     }
     /* n#839727 Create Category Sequence when none are found */
-    if( !xLabeledSeq.is() && !mrModel.maSeries.empty() && mrModel.mbCatAxisVisible) {
+    if( !xLabeledSeq.is() && !mrModel.maSeries.empty() ) {
         if( nMaxValues < 0 )
             nMaxValues = 2;
         SeriesModel &aModel = *mrModel.maSeries.get(0);
diff --git a/oox/source/drawingml/chart/typegroupmodel.cxx b/oox/source/drawingml/chart/typegroupmodel.cxx
index 0edd189e27a6..cc106a5de118 100644
--- a/oox/source/drawingml/chart/typegroupmodel.cxx
+++ b/oox/source/drawingml/chart/typegroupmodel.cxx
@@ -54,8 +54,7 @@ TypeGroupModel::TypeGroupModel( sal_Int32 nTypeId, bool bMSO2007Doc ) :
     mbShowNegBubbles( !bMSO2007Doc ),
     mbSmooth( !bMSO2007Doc ),
     mbVaryColors( !bMSO2007Doc ),
-    mbWireframe( !bMSO2007Doc ),
-    mbCatAxisVisible( true )
+    mbWireframe( !bMSO2007Doc )
 {
 }
 


More information about the Libreoffice-commits mailing list