diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-09-10 04:16:06 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2015-09-10 04:55:44 +0200 |
commit | 694419d813c14f6135aa4463d77f72c3a24a5cc5 (patch) | |
tree | 761d8ee4d53bb3d8b97c524ec4f4efcb87b2fc68 | |
parent | c70d012935659606591ad50346c252bb234994ea (diff) |
Related: tdf#93676 in msword chart appears with axis positioned between ticks
Change-Id: Ibd16d255a45a220faf7681a74785549c32969f78
-rw-r--r-- | chart2/qa/extras/chart2export.cxx | 9 | ||||
-rw-r--r-- | chart2/qa/extras/data/odt/axis-position.odt | bin | 0 -> 21224 bytes | |||
-rw-r--r-- | oox/source/export/chartexport.cxx | 11 |
3 files changed, 20 insertions, 0 deletions
diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 1e73718ec2ab..7004e97a3368 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -99,6 +99,7 @@ public: void testBarChartVaryColorsXLSX(); void testMultipleAxisXLSX(); void testAxisTitleRotationXLSX(); + void testAxisCrossBetweenXSLX(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -162,6 +163,7 @@ public: CPPUNIT_TEST(testBarChartVaryColorsXLSX); CPPUNIT_TEST(testMultipleAxisXLSX); CPPUNIT_TEST(testAxisTitleRotationXLSX); + CPPUNIT_TEST(testAxisCrossBetweenXSLX); CPPUNIT_TEST_SUITE_END(); protected: @@ -1473,6 +1475,13 @@ void Chart2ExportTest::testAxisTitleRotationXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:tx/c:rich/a:bodyPr", "rot", "0"); } +void Chart2ExportTest::testAxisCrossBetweenXSLX() +{ + load("/chart2/qa/extras/data/odt/", "axis-position.odt"); + xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + assertXPath(pXmlDoc, "(//c:crossBetween)[1]", "val", "midCat"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/odt/axis-position.odt b/chart2/qa/extras/data/odt/axis-position.odt Binary files differnew file mode 100644 index 000000000000..35ea152aa0d9 --- /dev/null +++ b/chart2/qa/extras/data/odt/axis-position.odt diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 2aab1aeeab1b..7cbd8a9cf8e5 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2896,6 +2896,17 @@ void ChartExport::_exportAxis( FSEND ); } + // TODO: MSO does not support random axis cross position for + // category axis, so we ideally need an algorithm that decides + // when to map the crossing to the tick mark and when to the + // middle of the category + if (nAxisType == XML_valAx) + { + pFS->singleElement( FSNS( XML_c, XML_crossBetween ), + XML_val, "midCat", + FSEND ); + } + // majorUnit bool bAutoStepMain = false; if(GetProperty( xAxisProp, "AutoStepMain" ) ) |