oox/inc/drawingml/chart/seriesmodel.hxx | 3 +++ oox/inc/drawingml/chart/typegroupconverter.hxx | 6 ++++++ oox/source/drawingml/chart/seriescontext.cxx | 2 +- oox/source/drawingml/chart/typegroupconverter.cxx | 7 +++++++ 4 files changed, 17 insertions(+), 1 deletion(-)
New commits: commit fd8c7132dc03b68e32931d67e0720d4dd36268f6 Author: Kurt Nordback <[email protected]> AuthorDate: Thu Nov 13 10:47:25 2025 -0700 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Thu Dec 4 14:42:16 2025 +0100 Definitions for more chartex types Change-Id: I12bcdf10175c1f9cc25773436307d6c313604b0d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194932 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/oox/inc/drawingml/chart/seriesmodel.hxx b/oox/inc/drawingml/chart/seriesmodel.hxx index 4c791d67e613..8ad07e812d54 100644 --- a/oox/inc/drawingml/chart/seriesmodel.hxx +++ b/oox/inc/drawingml/chart/seriesmodel.hxx @@ -212,6 +212,9 @@ struct SeriesModel bool mbBubble3d; /// True = show bubbles with 3D shade. bool mbInvertNeg; /// True = invert negative data points. bool mbSmooth; /// True = smooth series line. + std::vector<sal_Int32> + maAxisIds; /// List of axis identifiers used + // (Only used by chartex) explicit SeriesModel(bool bMSO2007Doc); ~SeriesModel(); diff --git a/oox/inc/drawingml/chart/typegroupconverter.hxx b/oox/inc/drawingml/chart/typegroupconverter.hxx index bcb14917ebe8..390dcd47c6ad 100644 --- a/oox/inc/drawingml/chart/typegroupconverter.hxx +++ b/oox/inc/drawingml/chart/typegroupconverter.hxx @@ -52,6 +52,12 @@ enum TypeId TYPEID_BUBBLE, /// Bubble chart. TYPEID_SURFACE, /// Surface chart. TYPEID_FUNNEL, /// Funnel chart. + TYPEID_HISTO, /// Histogram chart. + TYPEID_BOXWHISKER, /// Box & whisker + TYPEID_PARETOLINE, /// Pareto (sorted column + cumulative line) + TYPEID_REGIONMAP, /// Geographic map + TYPEID_SUNBURST, /// Multi-level hierarchical + TYPEID_TREEMAP, /// Two-level hierarchical TYPEID_UNKNOWN, /// Default for unknown chart types. }; diff --git a/oox/source/drawingml/chart/seriescontext.cxx b/oox/source/drawingml/chart/seriescontext.cxx index 19134c7a54a7..c913aa31928e 100644 --- a/oox/source/drawingml/chart/seriescontext.cxx +++ b/oox/source/drawingml/chart/seriescontext.cxx @@ -795,7 +795,7 @@ ContextHandlerRef ChartexSeriesContext::onCreateContext( sal_Int32 nElement, con // This looks complicated. TODO return nullptr; case CX_TOKEN( axisId ): - // TODO + mrModel.maAxisIds.push_back( rAttribs.getInteger( XML_val, -1 ) ); return nullptr; } } diff --git a/oox/source/drawingml/chart/typegroupconverter.cxx b/oox/source/drawingml/chart/typegroupconverter.cxx index 31ac67952b9f..b9cfde025f44 100644 --- a/oox/source/drawingml/chart/typegroupconverter.cxx +++ b/oox/source/drawingml/chart/typegroupconverter.cxx @@ -159,19 +159,26 @@ TypeGroupConverter::TypeGroupConverter( const ConverterRoot& rParent, TypeGroupM case C_TOKEN( areaChart ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_AREA; mb3dChart = false; break; case C_TOKEN( bar3DChart ): ENSURE_AXESCOUNT( 2, 3 ); eTypeId = TYPEID_BAR; mb3dChart = true; break; case C_TOKEN( barChart ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_BAR; mb3dChart = false; break; + case CX_TOKEN( boxWhisker ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_BOXWHISKER;mb3dChart = false; break; case C_TOKEN( bubbleChart ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_BUBBLE; mb3dChart = false; break; + case CX_TOKEN( clusteredColumn ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_BAR; mb3dChart = false; break; case C_TOKEN( doughnutChart ): ENSURE_AXESCOUNT( 0, 0 ); eTypeId = TYPEID_DOUGHNUT; mb3dChart = false; break; case CX_TOKEN( funnel ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_FUNNEL; mb3dChart = false; break; case C_TOKEN( line3DChart ): ENSURE_AXESCOUNT( 3, 3 ); eTypeId = TYPEID_LINE; mb3dChart = true; break; case C_TOKEN( lineChart ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_LINE; mb3dChart = false; break; case C_TOKEN( ofPieChart ): ENSURE_AXESCOUNT( 0, 0 ); eTypeId = TYPEID_OFPIE; mb3dChart = false; break; + case CX_TOKEN( paretoLine ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_PARETOLINE;mb3dChart = false; break; case C_TOKEN( pie3DChart ): ENSURE_AXESCOUNT( 0, 0 ); eTypeId = TYPEID_PIE; mb3dChart = true; break; case C_TOKEN( pieChart ): ENSURE_AXESCOUNT( 0, 0 ); eTypeId = TYPEID_PIE; mb3dChart = false; break; + case CX_TOKEN( regionMap ): ENSURE_AXESCOUNT( 0, 0 ); eTypeId = TYPEID_REGIONMAP; mb3dChart = false; break; case C_TOKEN( radarChart ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_RADARLINE; mb3dChart = false; break; case C_TOKEN( scatterChart ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_SCATTER; mb3dChart = false; break; case C_TOKEN( stockChart ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_STOCK; mb3dChart = false; break; + case CX_TOKEN( sunburst ): ENSURE_AXESCOUNT( 0, 0 ); eTypeId = TYPEID_SUNBURST; mb3dChart = false; break; case C_TOKEN( surface3DChart ): ENSURE_AXESCOUNT( 3, 3 ); eTypeId = TYPEID_SURFACE; mb3dChart = true; break; case C_TOKEN( surfaceChart ): ENSURE_AXESCOUNT( 2, 3 ); eTypeId = TYPEID_SURFACE; mb3dChart = true; break; // 3D bar chart from all surface charts + case CX_TOKEN( treemap ): ENSURE_AXESCOUNT( 0, 0 ); eTypeId = TYPEID_TREEMAP; mb3dChart = false; break; + case CX_TOKEN( waterfall ): ENSURE_AXESCOUNT( 2, 2 ); eTypeId = TYPEID_BAR; mb3dChart = false; break; default: OSL_FAIL( "TypeGroupConverter::TypeGroupConverter - unknown chart type" ); #undef ENSURE_AXESCOUNT }
