summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2023-03-15 09:08:32 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2023-03-15 13:24:43 +0000
commit8d024174dcb95c86400f47556738d092487ce429 (patch)
tree419f12b2adfd490e6fcf09d5640853562cd54e68
parent720c77bdb53a83a276f423c75ee163d7c1b191ca (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.cxx8
-rw-r--r--chart2/source/inc/Diagram.hxx10
-rw-r--r--chart2/source/inc/DiagramHelper.hxx9
-rw-r--r--chart2/source/model/main/Diagram.cxx19
-rw-r--r--chart2/source/tools/DiagramHelper.cxx22
-rw-r--r--chart2/source/view/main/SeriesPlotterContainer.cxx4
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)