From 4bcf1872bbe9db1388769485a7e4c0cbcce3d53c Mon Sep 17 00:00:00 2001 From: Jean-Tiare Le Bigot Date: Thu, 13 Oct 2016 23:43:41 +0200 Subject: [PATCH] chartx: fix sparse chart import Change-Id: I1bcd2257da900c6a88bc78040fabe5696e2bab7d Reviewed-on: https://gerrit.libreoffice.org/29801 Reviewed-by: Markus Mohrhard Tested-by: Markus Mohrhard --- chart2/qa/extras/chart2import.cxx | 24 ++++++++++++++++++ chart2/qa/extras/data/pptx/sparse-chart.pptx | Bin 0 -> 57398 bytes oox/source/drawingml/chart/chartconverter.cxx | 9 +++---- .../drawingml/chart/datasourceconverter.cxx | 2 +- .../drawingml/chart/typegroupconverter.cxx | 1 + 5 files changed, 30 insertions(+), 6 deletions(-) create mode 100755 chart2/qa/extras/data/pptx/sparse-chart.pptx diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index c8137b9ac6ff..b508f3e123dd 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -40,6 +40,7 @@ public: void testDOCChartSeries(); void testDOCXChartSeries(); void testPPTXChartSeries(); + void testPPTXSparseChartSeries(); /** * Original data contains 3 series but 2 of them are hidden. For now, we * detect and skip those hidden series on import (since we don't support @@ -105,6 +106,7 @@ public: CPPUNIT_TEST(testDOCXChartSeries); CPPUNIT_TEST(testPPTChartSeries); CPPUNIT_TEST(testPPTXChartSeries); + CPPUNIT_TEST(testPPTXSparseChartSeries); CPPUNIT_TEST(testPPTXHiddenDataSeries); CPPUNIT_TEST(testPPTXPercentageNumberFormats); CPPUNIT_TEST(testPPTXStackedNonStackedYAxis); @@ -399,6 +401,28 @@ void Chart2ImportTest::testPPTXChartSeries() CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), aLabels[2][0].get()); } +void Chart2ImportTest::testPPTXSparseChartSeries() +{ + //test chart series sparse data for pptx + load("/chart2/qa/extras/data/pptx/", "sparse-chart.pptx"); + Reference xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY); + CPPUNIT_ASSERT(xChartDoc.is()); + + Reference xCT = getChartTypeFromDoc(xChartDoc, 0); + CPPUNIT_ASSERT(xCT.is()); + + std::vector > aValues = getDataSeriesYValuesFromChartType(xCT); + CPPUNIT_ASSERT_EQUAL(size_t(2), aValues.size()); + CPPUNIT_ASSERT_EQUAL(0.0, aValues[0][0]); + CPPUNIT_ASSERT_EQUAL(2.5, aValues[0][1]); + CPPUNIT_ASSERT_EQUAL(3.5, aValues[0][2]); + CPPUNIT_ASSERT_EQUAL(0.0, aValues[0][3]); + CPPUNIT_ASSERT_EQUAL(-2.4, aValues[1][0]); + CPPUNIT_ASSERT_EQUAL(0.0, aValues[1][1]); + CPPUNIT_ASSERT_EQUAL(0.0, aValues[1][2]); + CPPUNIT_ASSERT_EQUAL(-2.8, aValues[1][3]); +} + void Chart2ImportTest::testPPTXHiddenDataSeries() { load("/chart2/qa/extras/data/pptx/", "stacked-bar-chart-hidden-series.pptx"); diff --git a/chart2/qa/extras/data/pptx/sparse-chart.pptx b/chart2/qa/extras/data/pptx/sparse-chart.pptx new file mode 100755 index 0000000000000000000000000000000000000000..d91e8f52f40ac035d7183d1367b6955ec178e415 GIT binary patch literal 57398 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

53M^9a_g_!ojrcfdqFHwyNiC9IyMQ5Ewo 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 ChartConverter::createDataSequence( if( !rDataSeq.maData.empty() ) { // create a single-row array from constant source data - Matrix< Any > aMatrix( rDataSeq.maData.size(), 1 ); - Matrix< Any >::iterator aMIt = aMatrix.begin(); - // TODO: how to handle missing values in the map? - for( DataSequenceModel::AnyMap::const_iterator aDIt = rDataSeq.maData.begin(), aDEnd = rDataSeq.maData.end(); aDIt != aDEnd; ++aDIt, ++aMIt ) - *aMIt = aDIt->second; + Matrix< Any > aMatrix( rDataSeq.mnPointCount, 1 ); + for( DataSequenceModel::AnyMap::const_iterator aDIt = rDataSeq.maData.begin(), aDEnd = rDataSeq.maData.end(); aDIt != aDEnd; ++aDIt ) + *aMatrix.at(aDIt->first, 0) = aDIt->second; + aRangeRep = lclGenerateApiArray( aMatrix ); } diff --git a/oox/source/drawingml/chart/datasourceconverter.cxx b/oox/source/drawingml/chart/datasourceconverter.cxx index 2c3dbcf7b1fb..738e7051a409 100644 --- a/oox/source/drawingml/chart/datasourceconverter.cxx +++ b/oox/source/drawingml/chart/datasourceconverter.cxx @@ -69,7 +69,7 @@ Reference< XDataSequence > DataSequenceConverter::createDataSequence( const OUSt if(!bFirst) { mrModel.maData.clear(); - mrModel.maData.insert(std::make_pair(1, Any(aTitle.makeStringAndClear()))); + mrModel.maData.insert(std::make_pair(0, Any(aTitle.makeStringAndClear()))); } } xDataSeq = getChartConverter().createDataSequence(getChartDocument()->getDataProvider(), mrModel, rRole); diff --git a/oox/source/drawingml/chart/typegroupconverter.cxx b/oox/source/drawingml/chart/typegroupconverter.cxx index e39fba78686e..f6c88e763376 100644 --- a/oox/source/drawingml/chart/typegroupconverter.cxx +++ b/oox/source/drawingml/chart/typegroupconverter.cxx @@ -296,6 +296,7 @@ Reference< XLabeledDataSequence > TypeGroupConverter::createCategorySequence() SeriesModel &aModel = *mrModel.maSeries.get(0); DataSourceModel &aSrc = aModel.maSources.create( SeriesModel::CATEGORIES ); DataSequenceModel &aSeq = aSrc.mxDataSeq.create(); + aSeq.mnPointCount = nMaxValues; for( sal_Int32 i = 0; i < nMaxValues; i++ ) aSeq.maData[ i ] <<= OUString::number( i + 1 ); SeriesConverter aSeriesConv( *this, aModel );