diff options
author | Kurt Zenker <kz@openoffice.org> | 2008-03-05 15:46:02 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2008-03-05 15:46:02 +0000 |
commit | b7474318342bde14ff49c9cafe7146069108868f (patch) | |
tree | 224ab522b2a6a199b64117489d8938aae772d76f /xmloff/source/chart/SchXMLImport.cxx | |
parent | 420c7215ad52ce0a2fc652c9b537af20c80e86f0 (diff) |
INTEGRATION: CWS rptchart01_DEV300 (1.37.48); FILE MERGED
2008/03/05 09:10:11 oj 1.37.48.2: RESYNC: (1.37-1.38); FILE MERGED
2008/01/24 13:25:43 oj 1.37.48.1: #i85225# create dataprovider only when not already set
Diffstat (limited to 'xmloff/source/chart/SchXMLImport.cxx')
-rw-r--r-- | xmloff/source/chart/SchXMLImport.cxx | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/xmloff/source/chart/SchXMLImport.cxx b/xmloff/source/chart/SchXMLImport.cxx index e4dcac0cc6fd..b91f8329a862 100644 --- a/xmloff/source/chart/SchXMLImport.cxx +++ b/xmloff/source/chart/SchXMLImport.cxx @@ -4,9 +4,9 @@ * * $RCSfile: SchXMLImport.cxx,v $ * - * $Revision: 1.38 $ + * $Revision: 1.39 $ * - * last change: $Author: obo $ $Date: 2008-02-26 13:31:39 $ + * last change: $Author: kz $ $Date: 2008-03-05 16:46:02 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -929,7 +929,7 @@ void SAL_CALL SchXMLImport::setTargetDocument( const uno::Reference< lang::XComp uno::Reference< container::XChild > xChild( xChartDoc, uno::UNO_QUERY ); uno::Reference< chart2::data::XDataReceiver > xDataReceiver( xChartDoc, uno::UNO_QUERY ); bool bHasOwnData = true; - if( xChild.is() && xDataReceiver.is() ) + if( xChild.is() && xDataReceiver.is()) { Reference< lang::XMultiServiceFactory > xFact( xChild->getParent(), uno::UNO_QUERY ); if( xFact.is() ) @@ -938,20 +938,25 @@ void SAL_CALL SchXMLImport::setTargetDocument( const uno::Reference< lang::XComp Reference< util::XNumberFormatsSupplier > xNumberFormatsSupplier( xFact, uno::UNO_QUERY ); xDataReceiver->attachNumberFormatsSupplier( xNumberFormatsSupplier ); - OUString aDataProviderServiceName( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.chart2.data.DataProvider")); - uno::Sequence< OUString > aServiceNames( xFact->getAvailableServiceNames()); - const OUString * pBegin = aServiceNames.getConstArray(); - const OUString * pEnd = pBegin + aServiceNames.getLength(); - if( ::std::find( pBegin, pEnd, aDataProviderServiceName ) != pEnd ) + if ( !xChartDoc->getDataProvider().is() ) { - Reference< chart2::data::XDataProvider > xProvider( - xFact->createInstance( aDataProviderServiceName ), uno::UNO_QUERY ); - if( xProvider.is()) + const OUString aDataProviderServiceName( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.chart2.data.DataProvider")); + const uno::Sequence< OUString > aServiceNames( xFact->getAvailableServiceNames()); + const OUString * pBegin = aServiceNames.getConstArray(); + const OUString * pEnd = pBegin + aServiceNames.getLength(); + if( ::std::find( pBegin, pEnd, aDataProviderServiceName ) != pEnd ) { - xDataReceiver->attachDataProvider( xProvider ); - bHasOwnData = false; + Reference< chart2::data::XDataProvider > xProvider( + xFact->createInstance( aDataProviderServiceName ), uno::UNO_QUERY ); + if( xProvider.is()) + { + xDataReceiver->attachDataProvider( xProvider ); + bHasOwnData = false; + } } } + else + bHasOwnData = false; } // else we have no parent => we have our own data |