diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-03-15 09:08:32 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-03-15 13:24:43 +0000 |
commit | 8d024174dcb95c86400f47556738d092487ce429 (patch) | |
tree | 419f12b2adfd490e6fcf09d5640853562cd54e68 | |
parent | 720c77bdb53a83a276f423c75ee163d7c1b191ca (diff) |
move getDiagramPositioningMode inside chart2::Diagram
and also switch to using getFastPropertyValue
Change-Id: Idef712def160abb500770aceedf6d94d385e5da3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148906
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx | 8 | ||||
-rw-r--r-- | chart2/source/inc/Diagram.hxx | 10 | ||||
-rw-r--r-- | chart2/source/inc/DiagramHelper.hxx | 9 | ||||
-rw-r--r-- | chart2/source/model/main/Diagram.cxx | 19 | ||||
-rw-r--r-- | chart2/source/tools/DiagramHelper.cxx | 22 | ||||
-rw-r--r-- | chart2/source/view/main/SeriesPlotterContainer.cxx | 4 |
6 files changed, 35 insertions, 37 deletions
diff --git a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx index 6e6648272dc2..50bedc860974 100644 --- a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx +++ b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx @@ -194,9 +194,9 @@ awt::Rectangle Chart2ModelContact::GetDiagramRectangleIncludingTitle() const awt::Rectangle Chart2ModelContact::GetDiagramRectangleIncludingAxes() const { awt::Rectangle aRect(0,0,0,0); - rtl::Reference< Diagram > xDiagram = ChartModelHelper::findDiagram( m_xChartModel ); + rtl::Reference< Diagram > xDiagram = ChartModelHelper::findDiagram( m_xChartModel ); - if( DiagramHelper::getDiagramPositioningMode( xDiagram ) == DiagramPositioningMode_INCLUDING ) + if( xDiagram && xDiagram->getDiagramPositioningMode() == DiagramPositioningMode_INCLUDING ) aRect = DiagramHelper::getDiagramRectangleFromModel(m_xChartModel.get()); else { @@ -210,9 +210,9 @@ awt::Rectangle Chart2ModelContact::GetDiagramRectangleIncludingAxes() const awt::Rectangle Chart2ModelContact::GetDiagramRectangleExcludingAxes() const { awt::Rectangle aRect(0,0,0,0); - rtl::Reference< Diagram > xDiagram = ChartModelHelper::findDiagram( m_xChartModel ); + rtl::Reference< Diagram > xDiagram = ChartModelHelper::findDiagram( m_xChartModel ); - if( DiagramHelper::getDiagramPositioningMode( xDiagram ) == DiagramPositioningMode_EXCLUDING ) + if( xDiagram && xDiagram->getDiagramPositioningMode() == DiagramPositioningMode_EXCLUDING ) aRect = DiagramHelper::getDiagramRectangleFromModel(m_xChartModel.get()); else { diff --git a/chart2/source/inc/Diagram.hxx b/chart2/source/inc/Diagram.hxx index f343bba7ca57..3844b34d7638 100644 --- a/chart2/source/inc/Diagram.hxx +++ b/chart2/source/inc/Diagram.hxx @@ -43,6 +43,14 @@ class Legend; class DataTable; class Wall; +enum DiagramPositioningMode +{ + DiagramPositioningMode_AUTO, + DiagramPositioningMode_EXCLUDING, + DiagramPositioningMode_INCLUDING +}; + + namespace impl { typedef ::cppu::WeakImplHelper< @@ -159,6 +167,8 @@ public: return m_xDataTable; }; + DiagramPositioningMode getDiagramPositioningMode(); + private: // ____ XModifyListener ____ virtual void SAL_CALL modified( diff --git a/chart2/source/inc/DiagramHelper.hxx b/chart2/source/inc/DiagramHelper.hxx index f874a1afafa7..0798a3305021 100644 --- a/chart2/source/inc/DiagramHelper.hxx +++ b/chart2/source/inc/DiagramHelper.hxx @@ -51,13 +51,6 @@ class DataSeries; class Diagram; class LabeledDataSequence; -enum DiagramPositioningMode -{ - DiagramPositioningMode_AUTO, - DiagramPositioningMode_EXCLUDING, - DiagramPositioningMode_INCLUDING -}; - class OOO_DLLPUBLIC_CHARTTOOLS DiagramHelper { public: @@ -287,8 +280,6 @@ public: const rtl::Reference< ::chart::Diagram > & xDiagram, const rtl::Reference< ::chart::ChartType >& xChartType ); - static DiagramPositioningMode getDiagramPositioningMode( const rtl::Reference< ::chart::Diagram > & xDiagram ); - static bool setDiagramPositioning( const rtl::Reference<::chart::ChartModel>& xChartModel, const css::awt::Rectangle& rPosRect /*100th mm*/ ); diff --git a/chart2/source/model/main/Diagram.cxx b/chart2/source/model/main/Diagram.cxx index 17cf8ecd63ae..7fbc3459fc49 100644 --- a/chart2/source/model/main/Diagram.cxx +++ b/chart2/source/model/main/Diagram.cxx @@ -702,6 +702,25 @@ css::uno::Sequence< OUString > SAL_CALL Diagram::getSupportedServiceNames() "com.sun.star.beans.PropertySet" }; } +DiagramPositioningMode Diagram::getDiagramPositioningMode() +{ + DiagramPositioningMode eMode = DiagramPositioningMode_AUTO; + chart2::RelativePosition aRelPos; + chart2::RelativeSize aRelSize; + if( (getFastPropertyValue(PROP_DIAGRAM_REL_POS) >>= aRelPos ) && + (getFastPropertyValue(PROP_DIAGRAM_REL_SIZE) >>= aRelSize ) ) + { + bool bPosSizeExcludeAxes=false; + getFastPropertyValue(PROP_DIAGRAM_POSSIZE_EXCLUDE_LABELS) >>= bPosSizeExcludeAxes; + if( bPosSizeExcludeAxes ) + eMode = DiagramPositioningMode_EXCLUDING; + else + eMode = DiagramPositioningMode_INCLUDING; + } + return eMode; +} + + } // namespace chart extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * diff --git a/chart2/source/tools/DiagramHelper.cxx b/chart2/source/tools/DiagramHelper.cxx index 2d02e17e0b57..54da63cd0b35 100644 --- a/chart2/source/tools/DiagramHelper.cxx +++ b/chart2/source/tools/DiagramHelper.cxx @@ -1438,28 +1438,6 @@ sal_Int32 DiagramHelper::getCorrectedMissingValueTreatment( return nResult; } -DiagramPositioningMode DiagramHelper::getDiagramPositioningMode( const rtl::Reference< - Diagram > & xDiagram ) -{ - DiagramPositioningMode eMode = DiagramPositioningMode_AUTO; - if( xDiagram.is() ) - { - RelativePosition aRelPos; - RelativeSize aRelSize; - if( (xDiagram->getPropertyValue("RelativePosition") >>= aRelPos ) && - (xDiagram->getPropertyValue("RelativeSize") >>= aRelSize ) ) - { - bool bPosSizeExcludeAxes=false; - xDiagram->getPropertyValue("PosSizeExcludeAxes") >>= bPosSizeExcludeAxes; - if( bPosSizeExcludeAxes ) - eMode = DiagramPositioningMode_EXCLUDING; - else - eMode = DiagramPositioningMode_INCLUDING; - } - } - return eMode; -} - static void lcl_ensureRange0to1( double& rValue ) { if(rValue<0.0) diff --git a/chart2/source/view/main/SeriesPlotterContainer.cxx b/chart2/source/view/main/SeriesPlotterContainer.cxx index cb55365dc935..9f409d0b43b7 100644 --- a/chart2/source/view/main/SeriesPlotterContainer.cxx +++ b/chart2/source/view/main/SeriesPlotterContainer.cxx @@ -227,8 +227,8 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter(ChartModel& rChart m_bChartTypeUsesShiftedCategoryPositionPerDefault = ChartTypeHelper::shiftCategoryPosAtXAxisPerDefault(xChartType); - bool bExcludingPositioning = DiagramHelper::getDiagramPositioningMode(xDiagram) - == DiagramPositioningMode_EXCLUDING; + bool bExcludingPositioning + = xDiagram->getDiagramPositioningMode() == DiagramPositioningMode_EXCLUDING; VSeriesPlotter* pPlotter = VSeriesPlotter::createSeriesPlotter( xChartType, nDimensionCount, bExcludingPositioning); if (!pPlotter) |