summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-09-10 04:16:06 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-09-10 04:55:44 +0200
commit694419d813c14f6135aa4463d77f72c3a24a5cc5 (patch)
tree761d8ee4d53bb3d8b97c524ec4f4efcb87b2fc68
parentc70d012935659606591ad50346c252bb234994ea (diff)
Related: tdf#93676 in msword chart appears with axis positioned between ticks
Change-Id: Ibd16d255a45a220faf7681a74785549c32969f78
-rw-r--r--chart2/qa/extras/chart2export.cxx9
-rw-r--r--chart2/qa/extras/data/odt/axis-position.odtbin0 -> 21224 bytes
-rw-r--r--oox/source/export/chartexport.cxx11
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
new file mode 100644
index 000000000000..35ea152aa0d9
--- /dev/null
+++ b/chart2/qa/extras/data/odt/axis-position.odt
Binary files differ
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" ) )