From b3057b7944dc52cc2ee3c57f44d4265c625e8dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=BCnde=20T=C3=B3th?= Date: Tue, 23 Jun 2020 13:52:39 +0200 Subject: [PATCH] tdf#134247 Chart OOXML import: fix order of legend entries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: László Németh --- .../source/view/charttypes/VSeriesPlotter.cxx | 23 +++++++----------- .../source/view/inc/LegendEntryProvider.hxx | 4 +-- chart2/source/view/inc/VSeriesPlotter.hxx | 2 +- chart2/source/view/main/VLegend.cxx | 2 +- .../layout/data/legend-itemorder-min.docx | Bin 0 -> 27053 bytes sw/qa/extras/layout/layout.cxx | 17 +++++++++++++ 6 files changed, 30 insertions(+), 18 deletions(-) create mode 100644 sw/qa/extras/layout/data/legend-itemorder-min.docx 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,25 +2450,20 @@ 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 ) - { - StackingDirection eStackingDirection( pSeries->getStackingDirection() ); - bReverse = ( eStackingDirection == StackingDirection_Y_STACKING ); - - if( bSwapXAndY ) - { - bReverse = !bReverse; - } - } - else if( bSwapXAndY ) + if ( bSwapXAndY ) { StackingDirection eStackingDirection( pSeries->getStackingDirection() ); bReverse = ( eStackingDirection != StackingDirection_Y_STACKING ); } + else if ( eLegendPosition == LegendPosition_LINE_START || eLegendPosition == LegendPosition_LINE_END ) + { + StackingDirection eStackingDirection( pSeries->getStackingDirection() ); + bReverse = ( eStackingDirection == StackingDirection_Y_STACKING ); + } if (bReverse) aResult.insert( aResult.begin(), aSeriesEntries.begin(), aSeriesEntries.end() ); 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 +#include #include #include #include @@ -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 9bfd679e95f1..4642b63f55d4 100644 --- a/chart2/source/view/main/VLegend.cxx +++ b/chart2/source/view/main/VLegend.cxx @@ -954,7 +954,7 @@ void VLegend::createShapes( if (pLegendEntryProvider) { std::vector 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 0000000000000000000000000000000000000000..8783d3908267c7cd4dab398eb50e5d70d12efc6d GIT binary patch literal 27053 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 Wt&hNolx2*BL47r0b$ZGetDocShell(); + + // Dump the rendering of the first page as an XML file. + std::shared_ptr xMetaFile = pShell->GetPreviewMetaFile(); + MetafileXmlDump dumper; + xmlDocUniquePtr 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");