Kaydet (Commit) 82913d29 authored tarafından Balazs Varga's avatar Balazs Varga Kaydeden (comit) László Németh

tdf#122800 Chart view: Textbreak of X axis labels

Do not break the word into individual letters below
each other in the X axis labels. Keep the default
45 degree (even if the textbreak is true) rotation
if there is no enough space for a single word between
two tickmark.

Change-Id: I6f11e55b7ee8373210c1c417e64d552a6cd89812
Reviewed-on: https://gerrit.libreoffice.org/66580
Tested-by: Jenkins
Reviewed-by: 's avatarLászló Németh <nemeth@numbertext.org>
üst 643edcb1
...@@ -835,14 +835,17 @@ bool VCartesianAxis::createTextShapes( ...@@ -835,14 +835,17 @@ bool VCartesianAxis::createTextShapes(
recordMaximumTextSize( pTickInfo->xTextShape, rAxisLabelProperties.fRotationAngleDegree ); recordMaximumTextSize( pTickInfo->xTextShape, rAxisLabelProperties.fRotationAngleDegree );
// Label has multiple lines and the words are broken
if( nLimitedSpaceForText>0 && !rAxisLabelProperties.bOverlapAllowed if( nLimitedSpaceForText>0 && !rAxisLabelProperties.bOverlapAllowed
&& rAxisLabelProperties.fRotationAngleDegree == 0.0 && rAxisLabelProperties.fRotationAngleDegree == 0.0
&& m_aAxisProperties.m_bComplexCategories
&& lcl_hasWordBreak( pTickInfo->xTextShape ) ) && lcl_hasWordBreak( pTickInfo->xTextShape ) )
{ {
// Label has multiple lines and belongs to a complex category // Label has multiple lines and belongs to a complex category
// axis. Rotate 90 degrees to try to avoid overlaps. // axis. Rotate 90 degrees to try to avoid overlaps.
rAxisLabelProperties.fRotationAngleDegree = 90; if ( m_aAxisProperties.m_bComplexCategories )
{
rAxisLabelProperties.fRotationAngleDegree = 90;
}
rAxisLabelProperties.bLineBreakAllowed = false; rAxisLabelProperties.bLineBreakAllowed = false;
m_aAxisLabelProperties.fRotationAngleDegree = rAxisLabelProperties.fRotationAngleDegree; m_aAxisLabelProperties.fRotationAngleDegree = rAxisLabelProperties.fRotationAngleDegree;
removeTextShapesFromTicks(); removeTextShapesFromTicks();
......
...@@ -41,6 +41,7 @@ public: ...@@ -41,6 +41,7 @@ public:
void testTdf116830(); void testTdf116830();
void testTdf114163(); void testTdf114163();
void testTdf108021(); void testTdf108021();
void testTdf122800();
void testTdf116925(); void testTdf116925();
void testTdf117028(); void testTdf117028();
void testTdf106390(); void testTdf106390();
...@@ -79,6 +80,7 @@ public: ...@@ -79,6 +80,7 @@ public:
CPPUNIT_TEST(testTdf116830); CPPUNIT_TEST(testTdf116830);
CPPUNIT_TEST(testTdf114163); CPPUNIT_TEST(testTdf114163);
CPPUNIT_TEST(testTdf108021); CPPUNIT_TEST(testTdf108021);
CPPUNIT_TEST(testTdf122800);
CPPUNIT_TEST(testTdf116925); CPPUNIT_TEST(testTdf116925);
CPPUNIT_TEST(testTdf117028); CPPUNIT_TEST(testTdf117028);
CPPUNIT_TEST(testTdf106390); CPPUNIT_TEST(testTdf106390);
...@@ -2394,6 +2396,24 @@ void SwLayoutWriter::testTdf108021() ...@@ -2394,6 +2396,24 @@ void SwLayoutWriter::testTdf108021()
// This failed, if the textarray length of the first axis label not 17. // This failed, if the textarray length of the first axis label not 17.
} }
void SwLayoutWriter::testTdf122800()
{
SwDoc* pDoc = createDoc("tdf122800.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;
xmlDocPtr pXmlDoc = dumpAndParse(dumper, *xMetaFile);
CPPUNIT_ASSERT(pXmlDoc);
assertXPath(
pXmlDoc,
"/metafile/push[1]/push[1]/push[1]/push[3]/push[1]/push[1]/push[1]/textarray[@length='22']",
9);
// This failed, if the textarray length of the first axis label not 22.
}
void SwLayoutWriter::testTdf116925() void SwLayoutWriter::testTdf116925()
{ {
SwDoc* pDoc = createDoc("tdf116925.docx"); SwDoc* pDoc = createDoc("tdf116925.docx");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment