From d1e1ee1fafc179ccb45ba8be5b54359ed112b16f Mon Sep 17 00:00:00 2001 From: Tomaž Vajngerl Date: Mon, 16 May 2022 16:10:02 +0900 Subject: chart2: add DataTable to AxisProperties, take account at rendering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Diagram model has the DataTable class, but now we need to take this into account at rendering. First add the DataTable to AxisProperties, to decide if the data table should be rendered or not. Change-Id: Ia18fcffccc632e4d36011544066072ae3cdfbfc7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137152 Tested-by: Tomaž Vajngerl Reviewed-by: Tomaž Vajngerl (cherry picked from commit 6b481f8bb44a14ebbfe010476cf2ca3728e7d539) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138404 Tested-by: Jenkins CollaboraOffice --- chart2/source/model/inc/Diagram.hxx | 2 ++ chart2/source/view/axes/VAxisProperties.cxx | 8 ++++++-- chart2/source/view/axes/VAxisProperties.hxx | 7 +++++-- chart2/source/view/axes/VCartesianCoordinateSystem.cxx | 7 ++++++- chart2/source/view/axes/VPolarCoordinateSystem.cxx | 9 ++++++++- 5 files changed, 27 insertions(+), 6 deletions(-) (limited to 'chart2') diff --git a/chart2/source/model/inc/Diagram.hxx b/chart2/source/model/inc/Diagram.hxx index 2f207d3fad70..b59e0e38f78a 100644 --- a/chart2/source/model/inc/Diagram.hxx +++ b/chart2/source/model/inc/Diagram.hxx @@ -144,6 +144,7 @@ private: virtual void SAL_CALL removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override; +public: void setDataTable(const rtl::Reference<::chart::DataTable>& xNewDataTable); rtl::Reference<::chart::DataTable> const& getDataTableRef() const @@ -151,6 +152,7 @@ private: return m_xDataTable; }; +private: // ____ XModifyListener ____ virtual void SAL_CALL modified( const css::lang::EventObject& aEvent ) override; diff --git a/chart2/source/view/axes/VAxisProperties.cxx b/chart2/source/view/axes/VAxisProperties.cxx index 44a41422eee1..48cc3569f46d 100644 --- a/chart2/source/view/axes/VAxisProperties.cxx +++ b/chart2/source/view/axes/VAxisProperties.cxx @@ -153,7 +153,8 @@ TickmarkProperties AxisProperties::getBiggestTickmarkProperties() } AxisProperties::AxisProperties( const uno::Reference< XAxis >& xAxisModel - , ExplicitCategoriesProvider* pExplicitCategoriesProvider ) + , ExplicitCategoriesProvider* pExplicitCategoriesProvider + , rtl::Reference<::chart::DataTable> const& xDataTableModel) : m_xAxisModel(xAxisModel) , m_nDimensionIndex(0) , m_bIsMainAxis(true) @@ -173,6 +174,7 @@ AxisProperties::AxisProperties( const uno::Reference< XAxis >& xAxisModel , m_bComplexCategories(false) , m_pExplicitCategoriesProvider(pExplicitCategoriesProvider) , m_bLimitSpaceForLabels(false) + , m_xDataTableModel(xDataTableModel) { } @@ -257,7 +259,9 @@ void AxisProperties::init( bool bCartesian ) if( bCartesian ) { if (m_nDimensionIndex == 0) - m_bDisplayDataTable = false; + { + m_bDisplayDataTable = m_xDataTableModel.is(); + } if( m_nDimensionIndex == 0 && m_nAxisType == AxisType::CATEGORY && m_pExplicitCategoriesProvider && m_pExplicitCategoriesProvider->hasComplexCategories() ) diff --git a/chart2/source/view/axes/VAxisProperties.hxx b/chart2/source/view/axes/VAxisProperties.hxx index bf159053c3c5..425792da689b 100644 --- a/chart2/source/view/axes/VAxisProperties.hxx +++ b/chart2/source/view/axes/VAxisProperties.hxx @@ -20,6 +20,7 @@ #include "TickmarkProperties.hxx" #include +#include #include #include @@ -137,10 +138,12 @@ struct AxisProperties final bool m_bLimitSpaceForLabels; - //methods: + rtl::Reference<::chart::DataTable> m_xDataTableModel; + //methods: AxisProperties( const css::uno::Reference< css::chart2::XAxis >& xAxisModel - , ExplicitCategoriesProvider* pExplicitCategoriesProvider ); + , ExplicitCategoriesProvider* pExplicitCategoriesProvider + , rtl::Reference<::chart::DataTable> const& xDataTableModel); void init(bool bCartesian=false);//init from model data (m_xAxisModel) diff --git a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx index 19f3ddb93bf3..d3c71361f27c 100644 --- a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx +++ b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx @@ -21,9 +21,11 @@ #include "VCartesianGrid.hxx" #include "VCartesianAxis.hxx" #include +#include #include #include #include +#include #include #include #include @@ -129,7 +131,10 @@ void VCartesianCoordinateSystem::createVAxisList( if(!xAxis.is() || !AxisHelper::shouldAxisBeDisplayed( xAxis, m_xCooSysModel )) continue; - AxisProperties aAxisProperties(xAxis,getExplicitCategoriesProvider()); + uno::Reference xDiagram(xChartDoc->getFirstDiagram()); + auto pDiagram = dynamic_cast(xDiagram.get()); + assert(pDiagram); + AxisProperties aAxisProperties(xAxis, getExplicitCategoriesProvider(), pDiagram->getDataTableRef()); aAxisProperties.m_nDimensionIndex = nDimensionIndex; aAxisProperties.m_bSwapXAndY = bSwapXAndY; aAxisProperties.m_bIsMainAxis = (nAxisIndex==0); diff --git a/chart2/source/view/axes/VPolarCoordinateSystem.cxx b/chart2/source/view/axes/VPolarCoordinateSystem.cxx index 7ac020fdc3ab..be8f4baac53c 100644 --- a/chart2/source/view/axes/VPolarCoordinateSystem.cxx +++ b/chart2/source/view/axes/VPolarCoordinateSystem.cxx @@ -22,7 +22,10 @@ #include "VPolarAxis.hxx" #include #include +#include +#include #include +#include #include namespace chart @@ -89,7 +92,11 @@ void VPolarCoordinateSystem::createVAxisList( Reference< XAxis > xAxis( getAxisByDimension(nDimensionIndex,nAxisIndex) ); if(!xAxis.is() || !AxisHelper::shouldAxisBeDisplayed( xAxis, m_xCooSysModel )) continue; - AxisProperties aAxisProperties(xAxis,getExplicitCategoriesProvider()); + + uno::Reference xDiagram(xChartDoc->getFirstDiagram()); + auto pDiagram = dynamic_cast(xDiagram.get()); + assert(pDiagram); + AxisProperties aAxisProperties(xAxis,getExplicitCategoriesProvider(), pDiagram->getDataTableRef()); aAxisProperties.init(); if(aAxisProperties.m_bDisplayLabels) aAxisProperties.m_nNumberFormatKey = getNumberFormatKeyForAxis(xAxis, xChartDoc); -- cgit