diff options
-rw-r--r-- | chart2/source/view/main/SeriesPlotterContainer.cxx | 7 | ||||
-rw-r--r-- | chart2/source/view/main/SeriesPlotterContainer.hxx | 2 | ||||
-rw-r--r-- | sw/qa/extras/layout/layout3.cxx | 25 |
3 files changed, 28 insertions, 6 deletions
diff --git a/chart2/source/view/main/SeriesPlotterContainer.cxx b/chart2/source/view/main/SeriesPlotterContainer.cxx index b70e51510b7d..06a22207634d 100644 --- a/chart2/source/view/main/SeriesPlotterContainer.cxx +++ b/chart2/source/view/main/SeriesPlotterContainer.cxx @@ -174,7 +174,7 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter(ChartModel& rChart } if (xDiagram->getDataTable().is()) - m_bForceShiftPosition = true; + m_bTableShiftPosition = true; //prepare for autoscaling and shape creation // - create plotter for charttypes (for each first scale group at each plotter, as they are independent) @@ -357,12 +357,9 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter(ChartModel& rChart bool SeriesPlotterContainer::isCategoryPositionShifted(const chart2::ScaleData& rSourceScale, bool bHasComplexCategories) { - if (m_bForceShiftPosition) - return true; - if (rSourceScale.AxisType == AxisType::CATEGORY) return bHasComplexCategories || rSourceScale.ShiftedCategoryPosition - || m_bChartTypeUsesShiftedCategoryPositionPerDefault; + || m_bTableShiftPosition || m_bChartTypeUsesShiftedCategoryPositionPerDefault; if (rSourceScale.AxisType == AxisType::DATE) return rSourceScale.ShiftedCategoryPosition; diff --git a/chart2/source/view/main/SeriesPlotterContainer.hxx b/chart2/source/view/main/SeriesPlotterContainer.hxx index 578f2ba2760c..38f3c8b909c8 100644 --- a/chart2/source/view/main/SeriesPlotterContainer.hxx +++ b/chart2/source/view/main/SeriesPlotterContainer.hxx @@ -151,7 +151,7 @@ private: sal_Int32 m_nMaxAxisIndex; bool m_bChartTypeUsesShiftedCategoryPositionPerDefault; - bool m_bForceShiftPosition = false; + bool m_bTableShiftPosition = false; sal_Int32 m_nDefaultDateNumberFormat; }; diff --git a/sw/qa/extras/layout/layout3.cxx b/sw/qa/extras/layout/layout3.cxx index 7bb1dbced75c..9d2de1ea0497 100644 --- a/sw/qa/extras/layout/layout3.cxx +++ b/sw/qa/extras/layout/layout3.cxx @@ -2458,6 +2458,31 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf159422) CPPUNIT_ASSERT_DOUBLES_EQUAL(6573, nYSymbol3, 20); } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf159456) +{ + // Given a document with chart, which have a datatable + createSwDoc("charttable.odt"); + SwDoc* pDoc = getSwDoc(); + SwDocShell* pShell = pDoc->GetDocShell(); + + // Dump the rendering of the first page as an XML file. + std::shared_ptr<GDIMetaFile> xMetaFile = pShell->GetPreviewMetaFile(); + MetafileXmlDump dumper; + xmlDocUniquePtr pXmlDoc = dumpAndParse(dumper, *xMetaFile); + //// Without the fix, this would fail: + //// - Expected: 1 + //// - Actual : 1.5 + //// - In <>, XPath contents of child does not match + assertXPathContent( + pXmlDoc, + "/metafile/push[1]/push[1]/push[1]/push[3]/push[1]/push[1]/push[1]/push[103]/textarray/text"_ostr, + "1"); + assertXPathContent( + pXmlDoc, + "/metafile/push[1]/push[1]/push[1]/push[3]/push[1]/push[1]/push[1]/push[104]/textarray/text"_ostr, + "2"); +} + } // end of anonymous namespace CPPUNIT_PLUGIN_IMPLEMENT(); |