Skip to content

Commit

Permalink
Fix horizontally overlapping text in rect mode
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Nov 24, 2022
1 parent 4fd60d0 commit 12ec85a
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/core/textrenderer/qgstextrenderer.cpp
Expand Up @@ -1635,7 +1635,7 @@ void QgsTextRenderer::drawTextInternalHorizontal( QgsRenderContext &context, con
textp.setBrush( textColor );
textp.drawPath( path );

xOffset += metrics.fragmentHorizontalAdvance( blockIndex, fragmentIndex, mode );
xOffset += metrics.fragmentHorizontalAdvance( blockIndex, fragmentIndex, mode ) * fontScale;
fragmentIndex ++;
}
textp.end();
Expand Down
15 changes: 13 additions & 2 deletions tests/src/python/test_qgstextrenderer.py
Expand Up @@ -1470,8 +1470,9 @@ def imageCheck(self, name, reference_image, image):
checker.setRenderedImage(file_name)
checker.setColorTolerance(2)
result = checker.compareImages(name, 20)
PyQgsTextRenderer.report += checker.report()
print(checker.report())
if checker.report():
PyQgsTextRenderer.report += checker.report()
print(checker.report())
return result

def checkRender(self, format, name, part=None, angle=0, alignment=QgsTextRenderer.AlignLeft,
Expand Down Expand Up @@ -1590,6 +1591,16 @@ def testDrawMassiveFont(self):
format.setSize(1100)
assert self.checkRender(format, 'massive_font', rect=QRectF(-800, -600, 1000, 1000), text=['a t'], image_size=800)

def testDrawRectMixedHtml(self):
"""
Test drawing text in rect mode with cap height based line heights
"""
format = QgsTextFormat()
format.setFont(getTestFont('bold'))
format.setAllowHtmlFormatting(True)
format.setSize(30)
assert self.checkRender(format, 'rect_html', rect=QRectF(100, 100, 100, 100), text=['first <span style="font-size:50pt">line</span>', 'second <span style="font-size:50pt">line</span>', 'third line'])

def testDrawForcedItalic(self):
"""
Test drawing with forced italic
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 12ec85a

Please sign in to comment.