oox/source/drawingml/chart/seriesconverter.cxx | 3 ++- oox/source/drawingml/chart/typegroupconverter.cxx | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-)
New commits: commit 812a175d736cf32aa756408b0d7906cd269d2a03 Author: Muthu Subramanian <sumu...@collabora.com> Date: Tue Oct 22 15:13:41 2013 +0530 n#839727: Crash fix. diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx index 9ef1f3f..020b141 100644 --- a/oox/source/drawingml/chart/seriesconverter.cxx +++ b/oox/source/drawingml/chart/seriesconverter.cxx @@ -632,7 +632,8 @@ Reference< XDataSeries > SeriesConverter::createDataSeries( const TypeGroupConve { // Use number format code from Value series DataSourceModel* pValues = mrModel.maSources.get( SeriesModel::VALUES ).get(); - xLabels->maNumberFormat.maFormatCode = pValues->mxDataSeq->maFormatCode; + if( pValues ) + xLabels->maNumberFormat.maFormatCode = pValues->mxDataSeq->maFormatCode; } DataLabelsConverter aLabelsConv( *this, *xLabels ); aLabelsConv.convertFromModel( xDataSeries, rTypeGroup ); commit 1cd5bef6fd9edef708334e3590c57c6aa6f1371f Author: Muthu Subramanian <sumu...@collabora.com> Date: Tue Oct 22 14:47:56 2013 +0530 n#839727: Chart missing dataset. This was because there is no explicit category in the chart - while libreoffice expects it. diff --git a/oox/source/drawingml/chart/typegroupconverter.cxx b/oox/source/drawingml/chart/typegroupconverter.cxx index 12d086d..bf8e166 100644 --- a/oox/source/drawingml/chart/typegroupconverter.cxx +++ b/oox/source/drawingml/chart/typegroupconverter.cxx @@ -272,6 +272,7 @@ Reference< XCoordinateSystem > TypeGroupConverter::createCoordinateSystem() Reference< XLabeledDataSequence > TypeGroupConverter::createCategorySequence() { + sal_Int32 nMaxValues = 0; Reference< XLabeledDataSequence > xLabeledSeq; /* Find first existing category sequence. The bahaviour of Excel 2007 is different to Excel 2003, which always used the category sequence of the @@ -283,6 +284,24 @@ Reference< XLabeledDataSequence > TypeGroupConverter::createCategorySequence() SeriesConverter aSeriesConv( *this, **aIt ); xLabeledSeq = aSeriesConv.createCategorySequence( "categories" ); } + else if( nMaxValues <= 0 && (*aIt)->maSources.has( SeriesModel::VALUES ) ) + { + DataSourceModel *pValues = (*aIt)->maSources.get( SeriesModel::VALUES ).get(); + if( pValues->mxDataSeq.is() ) + nMaxValues = pValues->mxDataSeq.get()->maData.size(); + } + } + /* n#839727 Create Category Sequence when none are found */ + if( !xLabeledSeq.is() && mrModel.maSeries.size() > 0 ) { + if( nMaxValues < 0 ) + nMaxValues = 2; + SeriesModel &aModel = mrModel.maSeries.create(); + DataSourceModel &aSrc = aModel.maSources.create( SeriesModel::CATEGORIES ); + DataSequenceModel &aSeq = aSrc.mxDataSeq.create(); + for( sal_Int32 i = 0; i < nMaxValues; i++ ) + aSeq.maData[ i ] <<= OUString::number( i + 1 ); + SeriesConverter aSeriesConv( *this, aModel ); + xLabeledSeq = aSeriesConv.createCategorySequence( "categories" ); } return xLabeledSeq; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits