diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2022-05-16 16:10:02 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2022-08-17 14:00:01 +0200 |
commit | d1e1ee1fafc179ccb45ba8be5b54359ed112b16f (patch) | |
tree | 1e48c4d9babc445a6c5dc85da62b49ecf740549d /chart2 | |
parent | 196deec93caecf5ae863520d9f8c827cc0ea82c3 (diff) |
chart2: add DataTable to AxisProperties, take account at rendering
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 <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit 6b481f8bb44a14ebbfe010476cf2ca3728e7d539)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138404
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/model/inc/Diagram.hxx | 2 | ||||
-rw-r--r-- | chart2/source/view/axes/VAxisProperties.cxx | 8 | ||||
-rw-r--r-- | chart2/source/view/axes/VAxisProperties.hxx | 7 | ||||
-rw-r--r-- | chart2/source/view/axes/VCartesianCoordinateSystem.cxx | 7 | ||||
-rw-r--r-- | chart2/source/view/axes/VPolarCoordinateSystem.cxx | 9 |
5 files changed, 27 insertions, 6 deletions
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 <LabelAlignment.hxx> +#include <DataTable.hxx> #include <com/sun/star/chart/ChartAxisLabelPosition.hpp> #include <com/sun/star/chart/ChartAxisMarkPosition.hpp> @@ -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 <AxisIndexDefines.hxx> +#include <DataTable.hxx> #include <AxisHelper.hxx> #include <cppuhelper/implbase.hxx> #include <ChartModel.hxx> +#include <Diagram.hxx> #include <com/sun/star/chart2/XCoordinateSystem.hpp> #include <com/sun/star/chart2/data/XTextualDataSequence.hpp> #include <com/sun/star/chart2/AxisType.hpp> @@ -129,7 +131,10 @@ void VCartesianCoordinateSystem::createVAxisList( if(!xAxis.is() || !AxisHelper::shouldAxisBeDisplayed( xAxis, m_xCooSysModel )) continue; - AxisProperties aAxisProperties(xAxis,getExplicitCategoriesProvider()); + uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram()); + auto pDiagram = dynamic_cast<Diagram*>(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 <AxisIndexDefines.hxx> #include <AxisHelper.hxx> +#include <Diagram.hxx> +#include <DataTable.hxx> #include <ChartModel.hxx> +#include <Diagram.hxx> #include <com/sun/star/chart2/XCoordinateSystem.hpp> 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<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram()); + auto pDiagram = dynamic_cast<Diagram*>(xDiagram.get()); + assert(pDiagram); + AxisProperties aAxisProperties(xAxis,getExplicitCategoriesProvider(), pDiagram->getDataTableRef()); aAxisProperties.init(); if(aAxisProperties.m_bDisplayLabels) aAxisProperties.m_nNumberFormatKey = getNumberFormatKeyForAxis(xAxis, xChartDoc); |