summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-07-02 09:53:54 -0400
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2014-07-03 09:29:13 +0000
commit2a5fbd9e48c33734bd44c56ac5742f913cd63df4 (patch)
tree4d958536229da012f0058bcfcce3eb0800b5a82c /oox
parent7ba14f3fa86d1a5fbb04ca35dcb2fd1439a4223e (diff)
bnc#812796: Correctly handle static value array for OOXML charts.
We need to pass the role of the data sequence in order to avoid unreliable guess work when importing static value array. Also, not all Excel's scatter plots have real numeric X values; some have textural X values in which case Excel switch to generating 1, 2, 3, ... as X values. When importing to our chart implementation, using "categories" role in such cases instead of "values-x" results in a more faithful chart rendering. (cherry picked from commit 6c4e21a234f12e1310ba06f9859e08b424acf8bf) Conflicts: chart2/source/inc/InternalDataProvider.hxx chart2/source/tools/InternalDataProvider.cxx Change-Id: If4bc1f650bb024dcd1b1b36537f457fb38404a78 Reviewed-on: https://gerrit.libreoffice.org/10040 Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'oox')
-rw-r--r--oox/source/drawingml/chart/chartconverter.cxx6
-rw-r--r--oox/source/drawingml/chart/datasourceconverter.cxx4
-rw-r--r--oox/source/drawingml/chart/seriesconverter.cxx2
3 files changed, 7 insertions, 5 deletions
diff --git a/oox/source/drawingml/chart/chartconverter.cxx b/oox/source/drawingml/chart/chartconverter.cxx
index b320e8aa9796..35c70f5ed2df 100644
--- a/oox/source/drawingml/chart/chartconverter.cxx
+++ b/oox/source/drawingml/chart/chartconverter.cxx
@@ -120,7 +120,9 @@ void ChartConverter::createDataProvider( const Reference< XChartDocument >& rxCh
}
}
-Reference< XDataSequence > ChartConverter::createDataSequence( const Reference< XDataProvider >& rxDataProvider, const DataSequenceModel& rDataSeq )
+Reference< XDataSequence > ChartConverter::createDataSequence(
+ const Reference< XDataProvider >& rxDataProvider, const DataSequenceModel& rDataSeq,
+ const OUString& rRole )
{
Reference< XDataSequence > xDataSeq;
if( rxDataProvider.is() )
@@ -140,7 +142,7 @@ Reference< XDataSequence > ChartConverter::createDataSequence( const Reference<
if( !aRangeRep.isEmpty() ) try
{
// create the data sequence
- xDataSeq = rxDataProvider->createDataSequenceByRangeRepresentation( aRangeRep );
+ xDataSeq = rxDataProvider->createDataSequenceByValueArray(rRole, aRangeRep);
return xDataSeq;
}
catch( Exception& )
diff --git a/oox/source/drawingml/chart/datasourceconverter.cxx b/oox/source/drawingml/chart/datasourceconverter.cxx
index 93166fbfd8be..6813113034ef 100644
--- a/oox/source/drawingml/chart/datasourceconverter.cxx
+++ b/oox/source/drawingml/chart/datasourceconverter.cxx
@@ -78,9 +78,9 @@ Reference< XDataSequence > DataSequenceConverter::createDataSequence( const OUSt
mrModel.maData.insert(std::make_pair<sal_Int32, Any>(1, Any(aTitle.makeStringAndClear())));
}
}
- xDataSeq = getChartConverter()->createDataSequence( getChartDocument()->getDataProvider(), mrModel );
+ xDataSeq = getChartConverter()->createDataSequence(getChartDocument()->getDataProvider(), mrModel, rRole);
- // set sequen ce role
+ // set sequence role
PropertySet aSeqProp( xDataSeq );
aSeqProp.setProperty( PROP_Role, rRole );
}
diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx
index bc27b353cafd..0357114e0bfc 100644
--- a/oox/source/drawingml/chart/seriesconverter.cxx
+++ b/oox/source/drawingml/chart/seriesconverter.cxx
@@ -513,7 +513,7 @@ SeriesConverter::~SeriesConverter()
Reference< XLabeledDataSequence > SeriesConverter::createCategorySequence( const OUString& rRole )
{
- return createLabeledDataSequence( SeriesModel::CATEGORIES, rRole, false );
+ return createLabeledDataSequence(SeriesModel::CATEGORIES, rRole, false);
}
Reference< XLabeledDataSequence > SeriesConverter::createValueSequence( const OUString& rRole )