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 2d51b9fd4e7b22a21c77cff473de56ebebc5c9f2 Author: Balazs Varga <balazs.varga...@gmail.com> AuthorDate: Fri Sep 11 14:14:13 2020 +0200 Commit: László Németh <nem...@numbertext.org> CommitDate: Fri Sep 18 13:24:46 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 <nem...@numbertext.org> Reviewed-by: László Németh <nem...@numbertext.org> diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 3e1f5d86e897..8916208f8bde 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -178,6 +178,7 @@ public: void testTdf134255(); void testTdf134977(); void testTdf123647(); + void testTdf136267(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -318,6 +319,7 @@ public: CPPUNIT_TEST(testTdf134255); CPPUNIT_TEST(testTdf134977); CPPUNIT_TEST(testTdf123647); + CPPUNIT_TEST(testTdf136267); CPPUNIT_TEST_SUITE_END(); @@ -2921,6 +2923,15 @@ void Chart2ExportTest::testTdf123647() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart", 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 79d55dfd2846..5a37797e1b25 100644 --- a/oox/inc/drawingml/chart/typegroupmodel.hxx +++ b/oox/inc/drawingml/chart/typegroupmodel.hxx @@ -74,7 +74,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 47e2f351608a..f6cea5df9b38 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 ) { } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits