summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/oox/drawingml/chart/chartspacefragment.hxx2
-rw-r--r--include/oox/drawingml/chart/chartspacemodel.hxx3
-rw-r--r--oox/source/drawingml/chart/chartspaceconverter.cxx7
-rw-r--r--oox/source/drawingml/chart/chartspacefragment.cxx6
4 files changed, 16 insertions, 2 deletions
diff --git a/include/oox/drawingml/chart/chartspacefragment.hxx b/include/oox/drawingml/chart/chartspacefragment.hxx
index 653bbf7d048e..6e927ba1d51a 100644
--- a/include/oox/drawingml/chart/chartspacefragment.hxx
+++ b/include/oox/drawingml/chart/chartspacefragment.hxx
@@ -42,6 +42,8 @@ public:
virtual ~ChartSpaceFragment();
virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs );
+
+ ::oox::core::XmlFilterBase& mpFilterBase;
};
// ============================================================================
diff --git a/include/oox/drawingml/chart/chartspacemodel.hxx b/include/oox/drawingml/chart/chartspacemodel.hxx
index f1a27d80e706..07f119e58240 100644
--- a/include/oox/drawingml/chart/chartspacemodel.hxx
+++ b/include/oox/drawingml/chart/chartspacemodel.hxx
@@ -49,7 +49,8 @@ struct ChartSpaceModel
View3DRef mxView3D; /// 3D settings.
TitleRef mxTitle; /// Chart main title.
LegendRef mxLegend; /// Chart legend.
- OUString maDrawingPath; /// Path to drawing fragment with embedded shapes.
+ OUString maDrawingPath; /// Path to drawing fragment with embedded shapes.
+ OUString maSheetPath; /// Path to embedded charts.
sal_Int32 mnDispBlanksAs; /// Mode how to display blank values.
sal_Int32 mnStyle; /// Index to default formatting.
bool mbAutoTitleDel; /// True = automatic title deleted manually.
diff --git a/oox/source/drawingml/chart/chartspaceconverter.cxx b/oox/source/drawingml/chart/chartspaceconverter.cxx
index db0421585aac..d6b09a44845e 100644
--- a/oox/source/drawingml/chart/chartspaceconverter.cxx
+++ b/oox/source/drawingml/chart/chartspaceconverter.cxx
@@ -212,6 +212,13 @@ void ChartSpaceConverter::convertFromModel( const Reference< XShapes >& rxExtern
aProps.setProperty( PROP_DisableDataTableDialog , true );
aProps.setProperty( PROP_DisableComplexChartTypes , true );
}
+
+ if(!mrModel.maSheetPath.isEmpty() )
+ {
+ Reference< ::com::sun::star::chart::XChartDocument > xChartDoc( getChartDocument(), UNO_QUERY );
+ PropertySet aProps( xChartDoc->getDiagram() );
+ aProps.setProperty( PROP_ExternalData , uno::makeAny(mrModel.maSheetPath) );
+ }
}
// ============================================================================
diff --git a/oox/source/drawingml/chart/chartspacefragment.cxx b/oox/source/drawingml/chart/chartspacefragment.cxx
index 2e717a8a9ec5..03389f00ebdc 100644
--- a/oox/source/drawingml/chart/chartspacefragment.cxx
+++ b/oox/source/drawingml/chart/chartspacefragment.cxx
@@ -36,7 +36,8 @@ using namespace ::oox::core;
// ============================================================================
ChartSpaceFragment::ChartSpaceFragment( XmlFilterBase& rFilter, const OUString& rFragmentPath, ChartSpaceModel& rModel ) :
- FragmentBase< ChartSpaceModel >( rFilter, rFragmentPath, rModel )
+ FragmentBase< ChartSpaceModel >( rFilter, rFragmentPath, rModel ),
+ mpFilterBase(rFilter)
{
}
@@ -74,6 +75,9 @@ ContextHandlerRef ChartSpaceFragment::onCreateContext( sal_Int32 nElement, const
case C_TOKEN( pivotSource ):
mrModel.mbPivotChart = true;
return 0;
+ case C_TOKEN (externalData):
+ mrModel.maSheetPath = getFragmentPathFromRelId(rAttribs.getString(R_TOKEN(id),OUString()));
+ return 0;
}
break;