diff options
author | Tünde Tóth <tundeth@gmail.com> | 2020-06-23 13:52:39 +0200 |
---|---|---|
committer | Xisco Fauli <xiscofauli@libreoffice.org> | 2020-07-02 16:11:48 +0200 |
commit | 305250469e0b22307454ebbf294457f4f2097ba9 (patch) | |
tree | 43f90ddaa4cabbc22448beacd5ace98738aefa45 /chart2 | |
parent | d4610eb0c9164bee85da1e6f2b673cb205892f3f (diff) |
tdf#134247 Chart OOXML import: fix order of legend entries
The order of legend entries was reversed in stacked column,
line and area charts.
Change-Id: Ia4a439aa6cee0619ad323c3fb728ff358cf28537
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96941
Tested-by: Jenkins
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit b3057b7944dc52cc2ee3c57f44d4265c625e8dad)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97675
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/view/charttypes/VSeriesPlotter.cxx | 19 | ||||
-rw-r--r-- | chart2/source/view/inc/LegendEntryProvider.hxx | 4 | ||||
-rw-r--r-- | chart2/source/view/inc/VSeriesPlotter.hxx | 2 | ||||
-rw-r--r-- | chart2/source/view/main/VLegend.cxx | 2 |
4 files changed, 11 insertions, 16 deletions
diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx index 19b43ae3d964..75a0ea173aba 100644 --- a/chart2/source/view/charttypes/VSeriesPlotter.cxx +++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx @@ -2394,7 +2394,7 @@ bool VSeriesPlotter::shouldSnapRectToUsedArea() std::vector< ViewLegendEntry > VSeriesPlotter::createLegendEntries( const awt::Size& rEntryKeyAspectRatio - , css::chart::ChartLegendExpansion eLegendExpansion + , LegendPosition eLegendPosition , const Reference< beans::XPropertySet >& xTextProperties , const Reference< drawing::XShapes >& xTarget , const Reference< lang::XMultiServiceFactory >& xShapeFactory @@ -2450,24 +2450,19 @@ std::vector< ViewLegendEntry > VSeriesPlotter::createLegendEntries( bBreak = true; bFirstSeries = false; - // add entries reverse if chart is stacked in y-direction and the legend is not wide. - // If the legend is wide and we have a stacked bar-chart the normal order + // add entries reverse if chart is stacked in y-direction and the legend position is right or left. + // If the legend is top or bottom and we have a stacked bar-chart the normal order // is the correct one, unless the chart type is horizontal bar-chart. bool bReverse = false; - if( eLegendExpansion != css::chart::ChartLegendExpansion_WIDE ) + if ( bSwapXAndY ) { StackingDirection eStackingDirection( pSeries->getStackingDirection() ); - bReverse = ( eStackingDirection == StackingDirection_Y_STACKING ); - - if( bSwapXAndY ) - { - bReverse = !bReverse; - } + bReverse = ( eStackingDirection != StackingDirection_Y_STACKING ); } - else if( bSwapXAndY ) + else if ( eLegendPosition == LegendPosition_LINE_START || eLegendPosition == LegendPosition_LINE_END ) { StackingDirection eStackingDirection( pSeries->getStackingDirection() ); - bReverse = ( eStackingDirection != StackingDirection_Y_STACKING ); + bReverse = ( eStackingDirection == StackingDirection_Y_STACKING ); } if (bReverse) diff --git a/chart2/source/view/inc/LegendEntryProvider.hxx b/chart2/source/view/inc/LegendEntryProvider.hxx index 88693900e8fb..8c7ae00fafab 100644 --- a/chart2/source/view/inc/LegendEntryProvider.hxx +++ b/chart2/source/view/inc/LegendEntryProvider.hxx @@ -19,7 +19,7 @@ #ifndef INCLUDED_CHART2_SOURCE_VIEW_INC_LEGENDENTRYPROVIDER_HXX #define INCLUDED_CHART2_SOURCE_VIEW_INC_LEGENDENTRYPROVIDER_HXX -#include <com/sun/star/chart/ChartLegendExpansion.hpp> +#include <com/sun/star/chart2/LegendPosition.hpp> #include <com/sun/star/awt/Size.hpp> #include <com/sun/star/uno/Reference.h> #include <com/sun/star/uno/Sequence.h> @@ -72,7 +72,7 @@ public: virtual std::vector< ViewLegendEntry > createLegendEntries( const css::awt::Size& rEntryKeyAspectRatio, - css::chart::ChartLegendExpansion eLegendExpansion, + css::chart2::LegendPosition eLegendPosition, const css::uno::Reference< css::beans::XPropertySet >& xTextProperties, const css::uno::Reference< css::drawing::XShapes >& xTarget, const css::uno::Reference< css::lang::XMultiServiceFactory >& xShapeFactory, diff --git a/chart2/source/view/inc/VSeriesPlotter.hxx b/chart2/source/view/inc/VSeriesPlotter.hxx index 7e60be2bdf1b..17215faae4b5 100644 --- a/chart2/source/view/inc/VSeriesPlotter.hxx +++ b/chart2/source/view/inc/VSeriesPlotter.hxx @@ -182,7 +182,7 @@ public: virtual std::vector< ViewLegendEntry > createLegendEntries( const css::awt::Size& rEntryKeyAspectRatio, - css::chart::ChartLegendExpansion eLegendExpansion, + css::chart2::LegendPosition eLegendPosition, const css::uno::Reference< css::beans::XPropertySet >& xTextProperties, const css::uno::Reference< css::drawing::XShapes >& xTarget, const css::uno::Reference< css::lang::XMultiServiceFactory >& xShapeFactory, diff --git a/chart2/source/view/main/VLegend.cxx b/chart2/source/view/main/VLegend.cxx index 6c71db319d8e..d16495e426f3 100644 --- a/chart2/source/view/main/VLegend.cxx +++ b/chart2/source/view/main/VLegend.cxx @@ -998,7 +998,7 @@ void VLegend::createShapes( if (pLegendEntryProvider) { std::vector<ViewLegendEntry> aNewEntries = pLegendEntryProvider->createLegendEntries( - aMaxSymbolExtent, eExpansion, xLegendProp, + aMaxSymbolExtent, eLegendPosition, xLegendProp, xLegendContainer, m_xShapeFactory, m_xContext, mrModel); if (aNewEntries.size() == 0) return; |