summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oox/source/drawingml/chart/axisconverter.cxx7
-rw-r--r--sw/qa/extras/layout/data/tdf138773.docxbin0 -> 26209 bytes
-rw-r--r--sw/qa/extras/layout/layout2.cxx18
3 files changed, 24 insertions, 1 deletions
diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx
index 8f062d001eeb..1a8e23024612 100644
--- a/oox/source/drawingml/chart/axisconverter.cxx
+++ b/oox/source/drawingml/chart/axisconverter.cxx
@@ -38,6 +38,7 @@
#include <drawingml/chart/titleconverter.hxx>
#include <drawingml/chart/typegroupconverter.hxx>
#include <drawingml/lineproperties.hxx>
+#include <drawingml/textbody.hxx>
#include <oox/token/namespaces.hxx>
#include <oox/token/properties.hxx>
#include <oox/token/tokens.hxx>
@@ -270,7 +271,11 @@ void AxisConverter::convertFromModel(const Reference<XCoordinateSystem>& rxCoord
}
else
{
- aAxisProp.setProperty(PROP_TextOverlap, true);
+ // do not overlap text when the rotation is undefined in xml
+ bool bTextOverlap
+ = mrModel.mxTextProp.is()
+ && mrModel.mxTextProp->getTextProperties().moRotation.has();
+ aAxisProp.setProperty(PROP_TextOverlap, bTextOverlap);
/* do not break text into several lines unless the rotation is 0 degree,
or the rotation is 90 degree and the inner size of the chart is not fixed,
or the rotation is 270 degree and the inner size of the chart is not fixed */
diff --git a/sw/qa/extras/layout/data/tdf138773.docx b/sw/qa/extras/layout/data/tdf138773.docx
new file mode 100644
index 000000000000..656c596bc458
--- /dev/null
+++ b/sw/qa/extras/layout/data/tdf138773.docx
Binary files differ
diff --git a/sw/qa/extras/layout/layout2.cxx b/sw/qa/extras/layout/layout2.cxx
index 14492f240e4e..46ce68a04572 100644
--- a/sw/qa/extras/layout/layout2.cxx
+++ b/sw/qa/extras/layout/layout2.cxx
@@ -735,6 +735,24 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter2, testTdf138194)
assertXPath(pXmlDoc, "//textarray", 8);
}
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter2, testTdf138773)
+{
+ SwDoc* pDoc = createDoc("tdf138773.docx");
+ 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);
+
+ const sal_Int32 nFirstLabelLines
+ = getXPathContent(pXmlDoc, "count(//text[contains(text(),\"2000-01\")])").toInt32();
+
+ // This failed, if the first X axis label broke to multiple lines.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), nFirstLabelLines);
+}
+
CPPUNIT_TEST_FIXTURE(SwLayoutWriter2, testTdf124796)
{
SwDoc* pDoc = createDoc("tdf124796.odt");