summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-07-02 09:53:54 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-07-02 22:50:37 -0400
commit7554f619f03e1fcadd333f2792913f412c0a7031 (patch)
tree05e27cff79361271474bfa5b93d024a6d0f95755 /sc
parent732076e974291a07f29cddfbb4e0763ddce5fc8c (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 Conflicts: chart2/source/inc/InternalDataProvider.hxx dbaccess/source/core/inc/DatabaseDataProvider.hxx dbaccess/source/core/misc/DatabaseDataProvider.cxx sc/source/filter/inc/excelchartconverter.hxx Change-Id: If4bc1f650bb024dcd1b1b36537f457fb38404a78
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/chart2uno.hxx4
-rw-r--r--sc/source/filter/inc/excelchartconverter.hxx2
-rw-r--r--sc/source/filter/oox/excelchartconverter.cxx3
-rw-r--r--sc/source/ui/unoobj/chart2uno.cxx8
4 files changed, 15 insertions, 2 deletions
diff --git a/sc/inc/chart2uno.hxx b/sc/inc/chart2uno.hxx
index 4f54357985e9..165d3f8afa6c 100644
--- a/sc/inc/chart2uno.hxx
+++ b/sc/inc/chart2uno.hxx
@@ -97,6 +97,10 @@ public:
const OUString& aRangeRepresentation )
throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual css::uno::Reference<css::chart2::data::XDataSequence> SAL_CALL
+ createDataSequenceByValueArray( const OUString& aRole, const OUString& aRangeRepresentation )
+ throw (css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XRangeSelection > SAL_CALL getRangeSelection()
throw (::com::sun::star::uno::RuntimeException);
diff --git a/sc/source/filter/inc/excelchartconverter.hxx b/sc/source/filter/inc/excelchartconverter.hxx
index ca2377ad0215..979cdabf4d9d 100644
--- a/sc/source/filter/inc/excelchartconverter.hxx
+++ b/sc/source/filter/inc/excelchartconverter.hxx
@@ -42,7 +42,7 @@ public:
virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence >
createDataSequence(
const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataProvider >& rxDataProvider,
- const ::oox::drawingml::chart::DataSequenceModel& rDataSeq );
+ const ::oox::drawingml::chart::DataSequenceModel& rDataSeq, const OUString& rRole );
};
// ============================================================================
diff --git a/sc/source/filter/oox/excelchartconverter.cxx b/sc/source/filter/oox/excelchartconverter.cxx
index 59870a44cdce..c2f1535e194f 100644
--- a/sc/source/filter/oox/excelchartconverter.cxx
+++ b/sc/source/filter/oox/excelchartconverter.cxx
@@ -68,7 +68,8 @@ void ExcelChartConverter::createDataProvider( const Reference< XChartDocument >&
}
Reference< XDataSequence > ExcelChartConverter::createDataSequence(
- const Reference< XDataProvider >& rxDataProvider, const DataSequenceModel& rDataSeq )
+ const Reference< XDataProvider >& rxDataProvider, const DataSequenceModel& rDataSeq,
+ const OUString& /*rRole*/ )
{
Reference< XDataSequence > xDataSeq;
if (!rxDataProvider.is())
diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx
index 10e47d0d1ad3..5d19efbbabab 100644
--- a/sc/source/ui/unoobj/chart2uno.cxx
+++ b/sc/source/ui/unoobj/chart2uno.cxx
@@ -2076,6 +2076,14 @@ uno::Reference< chart2::data::XDataSequence > SAL_CALL
return xResult;
}
+uno::Reference<chart2::data::XDataSequence> SAL_CALL
+ScChart2DataProvider::createDataSequenceByValueArray(
+ const OUString& /*aRole*/, const OUString& /*aRangeRepresentation*/ )
+ throw (css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception)
+{
+ return uno::Reference<chart2::data::XDataSequence>();
+}
+
uno::Reference< sheet::XRangeSelection > SAL_CALL ScChart2DataProvider::getRangeSelection()
throw (uno::RuntimeException)
{