chart2/source/view/charttypes/VSeriesPlotter.cxx | 19 +++++++------------ chart2/source/view/inc/LegendEntryProvider.hxx | 4 ++-- chart2/source/view/inc/VSeriesPlotter.hxx | 2 +- chart2/source/view/main/VLegend.cxx | 2 +- sw/qa/extras/layout/data/legend-itemorder-min.docx |binary sw/qa/extras/layout/layout.cxx | 17 +++++++++++++++++ 6 files changed, 28 insertions(+), 16 deletions(-)
New commits: commit 106cbf91ff018266bd61e8ae031fee22fd88eefd Author: Tünde Tóth <tund...@gmail.com> AuthorDate: Tue Jun 23 13:52:39 2020 +0200 Commit: Gabor Kelemen <kelemen.gab...@nisz.hu> CommitDate: Sun Sep 13 13:40:37 2020 +0200 tdf#134247 Chart OOXML import: fix order of legend entries The order of legend entries was reversed in stacked column, line and area charts. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96941 Tested-by: Jenkins Tested-by: László Németh <nem...@numbertext.org> Reviewed-by: László Németh <nem...@numbertext.org> (cherry picked from commit b3057b7944dc52cc2ee3c57f44d4265c625e8dad) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97675 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> (cherry picked from commit 305250469e0b22307454ebbf294457f4f2097ba9) Change-Id: Ia4a439aa6cee0619ad323c3fb728ff358cf28537 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102559 Tested-by: Gabor Kelemen <kelemen.gab...@nisz.hu> Reviewed-by: Gabor Kelemen <kelemen.gab...@nisz.hu> diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx index 8189ece987e9..5acd2d587914 100644 --- a/chart2/source/view/charttypes/VSeriesPlotter.cxx +++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx @@ -2351,7 +2351,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 @@ -2407,24 +2407,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 481583d5a5f8..8a68809e77a5 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 7b799eb9c4bf..bb781b65c0b5 100644 --- a/chart2/source/view/inc/VSeriesPlotter.hxx +++ b/chart2/source/view/inc/VSeriesPlotter.hxx @@ -194,7 +194,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 9c8842f559c4..a687d54c4967 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; diff --git a/sw/qa/extras/layout/data/legend-itemorder-min.docx b/sw/qa/extras/layout/data/legend-itemorder-min.docx new file mode 100644 index 000000000000..8783d3908267 Binary files /dev/null and b/sw/qa/extras/layout/data/legend-itemorder-min.docx differ diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx index b0a882ae1af6..2f5e080fba31 100644 --- a/sw/qa/extras/layout/layout.cxx +++ b/sw/qa/extras/layout/layout.cxx @@ -2344,6 +2344,23 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf125335) // This failed, if the legend first label is not "Data3". The legend position is bottom. } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf134247) +{ + SwDoc* pDoc = createDoc("legend-itemorder-min.docx"); + SwDocShell* pShell = pDoc->GetDocShell(); + + // Dump the rendering of the first page as an XML file. + std::shared_ptr<GDIMetaFile> xMetaFile = pShell->GetPreviewMetaFile(); + MetafileXmlDump dumper; + xmlDocPtr pXmlDoc = dumpAndParse(dumper, *xMetaFile); + CPPUNIT_ASSERT(pXmlDoc); + + assertXPathContent(pXmlDoc, + "/metafile/push[1]/push[1]/push[1]/push[4]/push[1]/textarray[14]/text", + "1. adatsor"); + // This failed, if the legend first label is not "1. adatsor". +} + CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf75659) { SwDoc* pDoc = createDoc("tdf75659.docx"); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits