chart2/source/inc/ChartStyle.hxx | 3 ++ chart2/source/model/main/ChartModel.cxx | 2 + chart2/source/model/main/ChartModel_Persistence.cxx | 11 ++++---- chart2/source/tools/ChartStyle.cxx | 25 ++++++++++++++++++++ offapi/com/sun/star/chart2/XChartStyle.idl | 3 ++ 5 files changed, 39 insertions(+), 5 deletions(-)
New commits: commit b91405200821542b714c19eb65c5ec0532499913 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> AuthorDate: Sat Aug 10 01:17:50 2019 +0800 Commit: Markus Mohrhard <markus.mohrh...@googlemail.com> CommitDate: Sat Aug 10 01:19:49 2019 +0800 move default chart legend formatting to the style Change-Id: If996e2d86ce07e91da77789732a1abf1ae1b3f99 diff --git a/chart2/source/model/main/ChartModel_Persistence.cxx b/chart2/source/model/main/ChartModel_Persistence.cxx index 87a0a742b7d9..db3b05ea195c 100644 --- a/chart2/source/model/main/ChartModel_Persistence.cxx +++ b/chart2/source/model/main/ChartModel_Persistence.cxx @@ -416,11 +416,6 @@ void ChartModel::insertDefaultChart() Reference< beans::XPropertySet > xLegendProperties( xLegend, uno::UNO_QUERY ); if( xLegendProperties.is() ) { - xLegendProperties->setPropertyValue( "FillStyle", uno::Any( drawing::FillStyle_NONE )); - xLegendProperties->setPropertyValue( "LineStyle", uno::Any( drawing::LineStyle_NONE )); - xLegendProperties->setPropertyValue( "LineColor", uno::Any( static_cast< sal_Int32 >( 0xb3b3b3 ) )); // gray30 - xLegendProperties->setPropertyValue( "FillColor", uno::Any( static_cast< sal_Int32 >( 0xe6e6e6 ) ) ); // gray10 - if( bIsRTL ) xLegendProperties->setPropertyValue( "AnchorPosition", uno::Any( chart2::LegendPosition_LINE_START )); } diff --git a/chart2/source/tools/ChartStyle.cxx b/chart2/source/tools/ChartStyle.cxx index 8aac449dcf90..6c7c0bafe093 100644 --- a/chart2/source/tools/ChartStyle.cxx +++ b/chart2/source/tools/ChartStyle.cxx @@ -19,6 +19,8 @@ #include <ChartStyle.hxx> #include <com/sun/star/chart2/ChartObjectType.hpp> +#include <com/sun/star/drawing/FillStyle.hpp> +#include <com/sun/star/drawing/LineStyle.hpp> #include <cppuhelper/supportsservice.hxx> #include <vector> @@ -104,6 +106,15 @@ void ChartStyle::register_styles() m_xChartStyle[css::chart2::ChartObjectType::LEGEND] = new ChartObjectStyle( *chart::legend::StaticLegendInfo::get(), *chart::legend::StaticLegendInfoHelper::get(), *chart::legend::StaticLegendDefaults::get()); + + css::uno::Reference<css::beans::XPropertySet> xLegendStyle + = m_xChartStyle[css::chart2::ChartObjectType::LEGEND]; + xLegendStyle->setPropertyValue("FillStyle", css::uno::Any(css::drawing::FillStyle_NONE)); + xLegendStyle->setPropertyValue("LineStyle", css::uno::Any(css::drawing::LineStyle_NONE)); + xLegendStyle->setPropertyValue("LineColor", + css::uno::Any(static_cast<sal_Int32>(0xb3b3b3))); // gray30 + xLegendStyle->setPropertyValue("FillColor", + css::uno::Any(static_cast<sal_Int32>(0xe6e6e6))); // gray10 } // _____ XServiceInfo _____ commit 3ff4ac00a7bdee0e7cecaf5c35bc8056bc3f1d41 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> AuthorDate: Sat Aug 10 01:19:23 2019 +0800 Commit: Markus Mohrhard <markus.mohrh...@googlemail.com> CommitDate: Sat Aug 10 01:19:48 2019 +0800 add initial code to apply style to chart Change-Id: I33207f95236f4102f8ae5620465494b3384fbbbb 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); }; }; }; }; }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits