diff options
author | Balazs Varga <balazs.varga991@gmail.com> | 2020-09-11 14:14:13 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2020-11-19 20:56:09 +0100 |
commit | a360a150c8cdcbea4f6e8c40646795eb6a5f1dcc (patch) | |
tree | a007e408bb7b0f3e56c4cc3d7a19a5e138eb0ad7 /oox | |
parent | 61abda685e2bc1ec4b108614799b8bc1c01183ec (diff) |
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@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103617
Tested-by: Jenkins
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106084
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/inc/drawingml/chart/typegroupmodel.hxx | 1 | ||||
-rw-r--r-- | oox/source/drawingml/chart/axisconverter.cxx | 5 | ||||
-rw-r--r-- | oox/source/drawingml/chart/plotareaconverter.cxx | 2 | ||||
-rw-r--r-- | oox/source/drawingml/chart/typegroupconverter.cxx | 4 | ||||
-rw-r--r-- | oox/source/drawingml/chart/typegroupmodel.cxx | 3 |
5 files changed, 7 insertions, 8 deletions
diff --git a/oox/inc/drawingml/chart/typegroupmodel.hxx b/oox/inc/drawingml/chart/typegroupmodel.hxx index 0803bf4e7a82..031ecddf54aa 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 f0e65035dd7c..deb302b1a2ad 100644 --- a/oox/source/drawingml/chart/axisconverter.cxx +++ b/oox/source/drawingml/chart/axisconverter.cxx @@ -212,7 +212,10 @@ void AxisConverter::convertFromModel( currently). */ aScaleData.AxisType = (bDateAxis && !mrModel.mbAuto) ? 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 af3139618824..b3c76915a5de 100644 --- a/oox/source/drawingml/chart/plotareaconverter.cxx +++ b/oox/source/drawingml/chart/plotareaconverter.cxx @@ -421,8 +421,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 1b6b20865a48..ea02d5ca548b 100644 --- a/oox/source/drawingml/chart/typegroupconverter.cxx +++ b/oox/source/drawingml/chart/typegroupconverter.cxx @@ -272,7 +272,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" ); @@ -287,7 +287,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 7353bafbecc7..f9a692c8a39b 100644 --- a/oox/source/drawingml/chart/typegroupmodel.cxx +++ b/oox/source/drawingml/chart/typegroupmodel.cxx @@ -56,8 +56,7 @@ TypeGroupModel::TypeGroupModel( sal_Int32 nTypeId, bool bMSO2007Doc ) : mbShowNegBubbles( !bMSO2007Doc ), mbSmooth( !bMSO2007Doc ), mbVaryColors( !bMSO2007Doc ), - mbWireframe( !bMSO2007Doc ), - mbCatAxisVisible( true ) + mbWireframe( !bMSO2007Doc ) { } |