chart2/inc/ChartModel.hxx | 7 +- chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx | 6 + chart2/source/inc/ChartModelHelper.hxx | 3 chart2/source/inc/UncachedDataSequence.hxx | 13 ++- chart2/source/model/main/ChartModel.cxx | 35 ++++------ chart2/source/tools/ChartModelHelper.cxx | 2 chart2/source/tools/UncachedDataSequence.cxx | 5 - 7 files changed, 37 insertions(+), 34 deletions(-)
New commits: commit c6b8383e90c56efec87110f5303e64351aba9a1b Author: Noel Grandin <[email protected]> AuthorDate: Wed Jan 19 19:52:39 2022 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Wed Jan 19 20:55:07 2022 +0100 use more concrete types in chart2, SvNumberFormatsSupplierObj Change-Id: I15bb69bab11e374db2bfa2b964ba820063f01cda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128631 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/chart2/inc/ChartModel.hxx b/chart2/inc/ChartModel.hxx index 2040c12b7513..cad6f0422a72 100644 --- a/chart2/inc/ChartModel.hxx +++ b/chart2/inc/ChartModel.hxx @@ -66,6 +66,7 @@ namespace com::sun::star::uno { class XComponentContext; } namespace com::sun::star::uno { class XAggregation; } class SvNumberFormatter; +class SvNumberFormatsSupplierObj; namespace chart { @@ -153,8 +154,7 @@ private: */ rtl::Reference< InternalDataProvider > m_xInternalDataProvider; - css::uno::Reference< css::util::XNumberFormatsSupplier > - m_xOwnNumberFormatsSupplier; + rtl::Reference< SvNumberFormatsSupplierObj > m_xOwnNumberFormatsSupplier; css::uno::Reference< css::util::XNumberFormatsSupplier > m_xNumberFormatsSupplier; std::unique_ptr< SvNumberFormatter > m_apSvNumberFormatter; // #i113784# avoid memory leak diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx index 66248107227c..95aaf733233c 100644 --- a/chart2/source/model/main/ChartModel.cxx +++ b/chart2/source/model/main/ChartModel.cxx @@ -540,7 +540,7 @@ void SAL_CALL ChartModel::dispose() m_xDataProvider.clear(); m_xInternalDataProvider.clear(); m_xNumberFormatsSupplier.clear(); - DisposeHelper::DisposeAndClear( m_xOwnNumberFormatsSupplier ); + m_xOwnNumberFormatsSupplier.clear(); m_xChartTypeManager.clear(); m_xDiagram.clear(); DisposeHelper::DisposeAndClear( m_xTitle ); @@ -800,9 +800,9 @@ void SAL_CALL ChartModel::attachNumberFormatsSupplier( const uno::Reference< uti { { MutexGuard aGuard( m_aModelMutex ); - if( xNewSupplier==m_xNumberFormatsSupplier ) + if( xNewSupplier == m_xNumberFormatsSupplier ) return; - if( xNewSupplier==m_xOwnNumberFormatsSupplier ) + if( xNewSupplier == uno::Reference<XNumberFormatsSupplier>(m_xOwnNumberFormatsSupplier) ) return; if( m_xOwnNumberFormatsSupplier.is() && xNewSupplier.is() ) { commit 79a2b786d3c39a4a756fb13778e437a20758caf8 Author: Noel Grandin <[email protected]> AuthorDate: Wed Jan 19 19:12:37 2022 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Wed Jan 19 20:54:52 2022 +0100 use more concrete types in chart2, InternalDataProvider Change-Id: Iee2cc56b00f0464e652a14eace2640e5d798eb5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128629 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/chart2/inc/ChartModel.hxx b/chart2/inc/ChartModel.hxx index e1bba2124dbe..2040c12b7513 100644 --- a/chart2/inc/ChartModel.hxx +++ b/chart2/inc/ChartModel.hxx @@ -71,6 +71,7 @@ namespace chart { class Diagram; class ChartTypeManager; +class InternalDataProvider; class NameContainer; class PageBackground; @@ -150,7 +151,7 @@ private: /** is only valid if m_xDataProvider is set. If m_xDataProvider is set to an external data provider this reference must be set to 0 */ - css::uno::Reference< css::chart2::data::XDataProvider > m_xInternalDataProvider; + rtl::Reference< InternalDataProvider > m_xInternalDataProvider; css::uno::Reference< css::util::XNumberFormatsSupplier > m_xOwnNumberFormatsSupplier; diff --git a/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx b/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx index 32bee8d42c50..3b0a56818e77 100644 --- a/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx @@ -21,6 +21,7 @@ #include <DiagramHelper.hxx> #include <DataSourceHelper.hxx> #include <ChartModelHelper.hxx> +#include <InternalDataProvider.hxx> #include <ControllerLockGuard.hxx> #include "Chart2ModelContact.hxx" #include <cppuhelper/supportsservice.hxx> @@ -589,8 +590,9 @@ void ChartDataWrapper::initDataAccess() else { //create a separate "internal data provider" that is not connected to the model - m_xDataAccess.set( ChartModelHelper::createInternalDataProvider( - xChartDoc, false /*bConnectToModel*/ ), uno::UNO_QUERY_THROW ); + auto xInternal = ChartModelHelper::createInternalDataProvider( + xChartDoc, false /*bConnectToModel*/ ); + m_xDataAccess.set( static_cast<cppu::OWeakObject*>(xInternal.get()), uno::UNO_QUERY_THROW ); } } diff --git a/chart2/source/inc/ChartModelHelper.hxx b/chart2/source/inc/ChartModelHelper.hxx index 5a17e2971d05..024c366ea265 100644 --- a/chart2/source/inc/ChartModelHelper.hxx +++ b/chart2/source/inc/ChartModelHelper.hxx @@ -39,6 +39,7 @@ namespace chart { class BaseCoordinateSystem; class Diagram; +class InternalDataProvider; class OOO_DLLPUBLIC_CHARTTOOLS ChartModelHelper { @@ -46,7 +47,7 @@ public: static css::uno::Reference< css::chart2::data::XRangeHighlighter > createRangeHighlighter( const css::uno::Reference< css::view::XSelectionSupplier >& xSelectionSupplier ); - static css::uno::Reference< css::chart2::data::XDataProvider > createInternalDataProvider( + static rtl::Reference< InternalDataProvider > createInternalDataProvider( const css::uno::Reference< css::chart2::XChartDocument >& xChartDoc, bool bConnectToModel ); static rtl::Reference< Diagram > diff --git a/chart2/source/inc/UncachedDataSequence.hxx b/chart2/source/inc/UncachedDataSequence.hxx index cf96920efda2..e3a51f55727a 100644 --- a/chart2/source/inc/UncachedDataSequence.hxx +++ b/chart2/source/inc/UncachedDataSequence.hxx @@ -24,6 +24,7 @@ #include <comphelper/broadcasthelper.hxx> #include <comphelper/propertycontainer.hxx> #include <comphelper/proparrhlp.hxx> +#include <rtl/ref.hxx> // interfaces and types #include <com/sun/star/lang/XServiceInfo.hpp> @@ -40,6 +41,7 @@ namespace com::sun::star::chart2 { class XInternalDataProvider; } namespace chart { +class InternalDataProvider; namespace impl { @@ -76,10 +78,10 @@ public: lifetime is at least as long as the one of this object. */ UncachedDataSequence( - const css::uno::Reference< css::chart2::XInternalDataProvider > & xIntDataProv, + const rtl::Reference< InternalDataProvider > & xIntDataProv, const OUString & rRangeRepresentation ); UncachedDataSequence( - const css::uno::Reference< css::chart2::XInternalDataProvider > & xIntDataProv, + const rtl::Reference< InternalDataProvider > & xIntDataProv, const OUString & rRangeRepresentation, const OUString & rRole ); UncachedDataSequence( const UncachedDataSequence & rSource ); @@ -160,10 +162,9 @@ private: */ void registerProperties(); - css::uno::Reference< css::chart2::XInternalDataProvider > m_xDataProvider; - OUString m_aSourceRepresentation; - css::uno::Reference< css::util::XModifyListener > - m_xModifyEventForwarder; + rtl::Reference< InternalDataProvider > m_xDataProvider; + OUString m_aSourceRepresentation; + css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder; }; } // namespace chart diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx index 00aee342a50d..66248107227c 100644 --- a/chart2/source/model/main/ChartModel.cxx +++ b/chart2/source/model/main/ChartModel.cxx @@ -24,6 +24,7 @@ #include <ChartModelHelper.hxx> #include <DisposeHelper.hxx> #include <ControllerLockGuard.hxx> +#include <InternalDataProvider.hxx> #include <ObjectIdentifier.hxx> #include "PageBackground.hxx" #include <CloneHelper.hxx> @@ -695,24 +696,20 @@ Reference< chart2::data::XDataSource > ChartModel::impl_createDefaultData() Reference< chart2::data::XDataSource > xDataSource; if( hasInternalDataProvider() ) { - uno::Reference< lang::XInitialization > xIni(m_xInternalDataProvider,uno::UNO_QUERY); - if( xIni.is() ) + //init internal dataprovider { - //init internal dataprovider - { - beans::NamedValue aParam( "CreateDefaultData" ,uno::Any(true) ); - uno::Sequence< uno::Any > aArgs{ uno::Any(aParam) }; - xIni->initialize(aArgs); - } - //create data - uno::Sequence<beans::PropertyValue> aArgs( comphelper::InitPropertySequence({ - { "CellRangeRepresentation", uno::Any( OUString("all") ) }, - { "HasCategories", uno::Any( true ) }, - { "FirstCellAsLabel", uno::Any( true ) }, - { "DataRowSource", uno::Any( css::chart::ChartDataRowSource_COLUMNS ) } - })); - xDataSource = m_xInternalDataProvider->createDataSource( aArgs ); + beans::NamedValue aParam( "CreateDefaultData" ,uno::Any(true) ); + uno::Sequence< uno::Any > aArgs{ uno::Any(aParam) }; + m_xInternalDataProvider->initialize(aArgs); } + //create data + uno::Sequence<beans::PropertyValue> aArgs( comphelper::InitPropertySequence({ + { "CellRangeRepresentation", uno::Any( OUString("all") ) }, + { "HasCategories", uno::Any( true ) }, + { "FirstCellAsLabel", uno::Any( true ) }, + { "DataRowSource", uno::Any( css::chart::ChartDataRowSource_COLUMNS ) } + })); + xDataSource = m_xInternalDataProvider->createDataSource( aArgs ); } return xDataSource; } diff --git a/chart2/source/tools/ChartModelHelper.cxx b/chart2/source/tools/ChartModelHelper.cxx index fc442b8030e3..0114849536df 100644 --- a/chart2/source/tools/ChartModelHelper.cxx +++ b/chart2/source/tools/ChartModelHelper.cxx @@ -48,7 +48,7 @@ uno::Reference< chart2::data::XRangeHighlighter > ChartModelHelper::createRangeH return new RangeHighlighter( xSelectionSupplier ); } -uno::Reference< chart2::data::XDataProvider > ChartModelHelper::createInternalDataProvider( +rtl::Reference< InternalDataProvider > ChartModelHelper::createInternalDataProvider( const uno::Reference< css::chart2::XChartDocument >& xChartDoc, bool bConnectToModel ) { bool bDefaultDataInColumns(true); diff --git a/chart2/source/tools/UncachedDataSequence.cxx b/chart2/source/tools/UncachedDataSequence.cxx index 343cf5092346..fa069a631870 100644 --- a/chart2/source/tools/UncachedDataSequence.cxx +++ b/chart2/source/tools/UncachedDataSequence.cxx @@ -20,6 +20,7 @@ #include <UncachedDataSequence.hxx> #include <CommonFunctors.hxx> #include <ModifyListenerHelper.hxx> +#include <InternalDataProvider.hxx> #include <cppuhelper/supportsservice.hxx> #include <algorithm> @@ -55,7 +56,7 @@ namespace chart { UncachedDataSequence::UncachedDataSequence( - const Reference< chart2::XInternalDataProvider > & xIntDataProv, + const rtl::Reference< InternalDataProvider > & xIntDataProv, const OUString & rRangeRepresentation ) : OPropertyContainer( GetBroadcastHelper()), UncachedDataSequence_Base( GetMutex()), @@ -68,7 +69,7 @@ UncachedDataSequence::UncachedDataSequence( } UncachedDataSequence::UncachedDataSequence( - const Reference< chart2::XInternalDataProvider > & xIntDataProv, + const rtl::Reference< InternalDataProvider > & xIntDataProv, const OUString & rRangeRepresentation, const OUString & rRole ) : OPropertyContainer( GetBroadcastHelper()),
