diff options
author | Tünde Tóth <tundeth@gmail.com> | 2020-05-21 10:20:43 +0200 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2020-05-25 13:41:49 +0200 |
commit | ed2c880a691a0b179bbc92a8ce4ee49eac004035 (patch) | |
tree | 40fae66a1dc0b237c31d881a25552d4bb8b506cd | |
parent | 7ed0993b9c2de38dfe2e71df15755b495f9a2299 (diff) |
tdf#133005 Chart: fix ODF import of date axis position
Chart with date axis setting "On tick marks" wasn't
imported correctly.
See commit 40d83914d43f60a196dfabddea0b52e2046b333a
(tdf#127792 implement UNO chart attribute MajorOrigin)
Change-Id: I5967c4bab8690df1f191b33ecb0e5b043bca68a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94621
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
-rw-r--r-- | chart2/source/controller/dialogs/dlg_ObjectProperties.cxx | 2 | ||||
-rw-r--r-- | chart2/source/view/main/ChartView.cxx | 14 | ||||
-rw-r--r-- | sw/qa/extras/layout/data/tdf133005.odt | bin | 0 -> 13251 bytes | |||
-rw-r--r-- | sw/qa/extras/layout/layout.cxx | 26 |
4 files changed, 31 insertions, 11 deletions
diff --git a/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx b/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx index 57375c33bfee..1add0435b0bc 100644 --- a/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx +++ b/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx @@ -191,7 +191,7 @@ void ObjectPropertiesDialogParameter::init( const uno::Reference< frame::XModel if( nDimensionIndex==1 && nAxisIndex==1 && ChartTypeHelper::isSupportingBaseValue( xChartType ) ) m_bShowAxisOrigin = true; - if ( nDimensionIndex == 0 && aData.AxisType == chart2::AxisType::CATEGORY ) + if ( nDimensionIndex == 0 && ( aData.AxisType == chart2::AxisType::CATEGORY || aData.AxisType == chart2::AxisType::DATE ) ) { ChartModel* pModel = dynamic_cast<ChartModel*>(xChartModel.get()); if (pModel) diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx index bc9d7a18d1d3..d3b0e8832e36 100644 --- a/chart2/source/view/main/ChartView.cxx +++ b/chart2/source/view/main/ChartView.cxx @@ -628,19 +628,13 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter( bool SeriesPlotterContainer::isCategoryPositionShifted( const chart2::ScaleData& rSourceScale, bool bHasComplexCategories ) { - if (rSourceScale.AxisType == AxisType::CATEGORY && rSourceScale.ShiftedCategoryPosition) - return true; - - if (rSourceScale.AxisType == AxisType::CATEGORY && bHasComplexCategories) - return true; + if (rSourceScale.AxisType == AxisType::CATEGORY) + return bHasComplexCategories || rSourceScale.ShiftedCategoryPosition; if (rSourceScale.AxisType == AxisType::DATE) - return true; + return rSourceScale.ShiftedCategoryPosition; - if (rSourceScale.AxisType == AxisType::SERIES) - return true; - - return false; + return rSourceScale.AxisType == AxisType::SERIES; } void SeriesPlotterContainer::initAxisUsageList(const Date& rNullDate) diff --git a/sw/qa/extras/layout/data/tdf133005.odt b/sw/qa/extras/layout/data/tdf133005.odt Binary files differnew file mode 100644 index 000000000000..660112d66712 --- /dev/null +++ b/sw/qa/extras/layout/data/tdf133005.odt diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx index 853d6b997381..adac583c8ed2 100644 --- a/sw/qa/extras/layout/layout.cxx +++ b/sw/qa/extras/layout/layout.cxx @@ -2347,6 +2347,32 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf123268) 41); } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf133005) +{ + SwDoc* pDoc = createDoc("tdf133005.odt"); + 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); + CPPUNIT_ASSERT(pXmlDoc); + + sal_Int32 nXChartWall = getXPath(pXmlDoc, + "/metafile/push[1]/push[1]/push[1]/push[3]/push[1]/push[1]/" + "push[1]/push[1]/polyline[1]/point[2]", + "x") + .toInt32(); + sal_Int32 nXColumn = getXPath(pXmlDoc, + "/metafile/push[1]/push[1]/push[1]/push[3]/push[1]/push[1]/" + "push[1]/push[42]/polypolygon/polygon/point[1]", + "x") + .toInt32(); + + // This failed, if the value axis doesn't appear inside category. + CPPUNIT_ASSERT_DOUBLES_EQUAL(nXChartWall, nXColumn, 5); +} + CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf115630) { SwDoc* pDoc = createDoc("tdf115630.docx"); |