diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2019-08-10 01:19:23 +0800 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2019-08-10 01:19:48 +0800 |
commit | 3ff4ac00a7bdee0e7cecaf5c35bc8056bc3f1d41 (patch) | |
tree | fd9d526a0243d6101dc97a30e9cae484f1cdf85b | |
parent | d63f1346a6c5767d995c787fe2bb36b023a64788 (diff) |
add initial code to apply style to chart
Change-Id: I33207f95236f4102f8ae5620465494b3384fbbbb
-rw-r--r-- | chart2/source/inc/ChartStyle.hxx | 3 | ||||
-rw-r--r-- | chart2/source/model/main/ChartModel.cxx | 2 | ||||
-rw-r--r-- | chart2/source/model/main/ChartModel_Persistence.cxx | 6 | ||||
-rw-r--r-- | chart2/source/tools/ChartStyle.cxx | 14 | ||||
-rw-r--r-- | offapi/com/sun/star/chart2/XChartStyle.idl | 3 |
5 files changed, 28 insertions, 0 deletions
diff --git a/chart2/source/inc/ChartStyle.hxx b/chart2/source/inc/ChartStyle.hxx index 2c1fb3d9e7f8..c12441e1cd76 100644 --- a/chart2/source/inc/ChartStyle.hxx +++ b/chart2/source/inc/ChartStyle.hxx @@ -91,6 +91,9 @@ public: virtual css::uno::Reference<css::beans::XPropertySet> SAL_CALL getStyleForObject(const sal_Int16 nChartObjectType) override; + virtual void SAL_CALL + applyStyleToDiagram(const css::uno::Reference<css::chart2::XDiagram>& xDiagram); + private: sal_Int16 m_nNumObjects; diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx index 262070310591..ba5a5d399445 100644 --- a/chart2/source/model/main/ChartModel.cxx +++ b/chart2/source/model/main/ChartModel.cxx @@ -687,6 +687,8 @@ void SAL_CALL ChartModel::setFirstDiagram( const uno::Reference< chart2::XDiagra ModifyListenerHelper::removeListener( xOldDiagram, xListener ); ModifyListenerHelper::addListener( xDiagram, xListener ); setModified( true ); + + m_xChartStyle->applyStyleToDiagram(xDiagram); } Reference< chart2::data::XDataSource > ChartModel::impl_createDefaultData() diff --git a/chart2/source/model/main/ChartModel_Persistence.cxx b/chart2/source/model/main/ChartModel_Persistence.cxx index 642aceb626ae..87a0a742b7d9 100644 --- a/chart2/source/model/main/ChartModel_Persistence.cxx +++ b/chart2/source/model/main/ChartModel_Persistence.cxx @@ -732,6 +732,12 @@ void SAL_CALL ChartModel::modified( const lang::EventObject& rEvenObject) } unlockControllers(); } + uno::Reference<chart2::XDiagram> xDiagram(rEvenObject.Source, uno::UNO_QUERY); + if (xDiagram.is()) + { + if (m_xChartStyle.is()) + m_xChartStyle->applyStyleToDiagram(xDiagram); + } if (m_nInLoad == 0) setModified(true); diff --git a/chart2/source/tools/ChartStyle.cxx b/chart2/source/tools/ChartStyle.cxx index 7ec585b330f3..8aac449dcf90 100644 --- a/chart2/source/tools/ChartStyle.cxx +++ b/chart2/source/tools/ChartStyle.cxx @@ -121,6 +121,20 @@ css::uno::Sequence<OUString> SAL_CALL ChartStyle::getSupportedServiceNames() { return { "com.sun.star.chart2.ChartStyle" }; } + +void SAL_CALL +ChartStyle::applyStyleToDiagram(const css::uno::Reference<css::chart2::XDiagram>& xDiagram) +{ + css::uno::Reference<css::style::XStyleSupplier> xLegendStyle(xDiagram->getLegend(), + css::uno::UNO_QUERY); + if (xLegendStyle.is()) + { + xLegendStyle->setStyle(css::uno::Reference<css::style::XStyle>( + m_xChartStyle.find(css::chart2::ChartObjectType::LEGEND)->second, + css::uno::UNO_QUERY_THROW)); + } +} + // // needed by MSC compiler using impl::ChartObjectStyle_Base; diff --git a/offapi/com/sun/star/chart2/XChartStyle.idl b/offapi/com/sun/star/chart2/XChartStyle.idl index a072d6f2c833..3293f94f130a 100644 --- a/offapi/com/sun/star/chart2/XChartStyle.idl +++ b/offapi/com/sun/star/chart2/XChartStyle.idl @@ -13,12 +13,15 @@ #include <com/sun/star/uno/XInterface.idl> #include <com/sun/star/beans/XPropertySet.idl> #include <com/sun/star/chart2/ChartObjectType.idl> +#include <com/sun/star/chart2/XDiagram.idl> module com { module sun { module star { module chart2 { interface XChartStyle : ::com::sun::star::uno::XInterface { com::sun::star::beans::XPropertySet getStyleForObject([in] short chartObjectType); + + void applyStyleToDiagram([in] XDiagram chartDiagram); }; }; }; }; }; |