summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/runtime/q3dstextrenderer.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/runtime/q3dstextrenderer.cpp b/src/runtime/q3dstextrenderer.cpp
index cddca08..443a50c 100644
--- a/src/runtime/q3dstextrenderer.cpp
+++ b/src/runtime/q3dstextrenderer.cpp
@@ -195,6 +195,7 @@ void Q3DSTextRenderer::renderText(QPainter *painter, Q3DSTextNode *text3DS)
{
Q3DSTextRenderer::Font *font = findFont(text3DS->font());
Q_ASSERT(font);
+ int horizontalAlignmentFlag = Qt::AlignLeft;
updateFontInfo(font, text3DS);
@@ -229,9 +230,11 @@ void Q3DSTextRenderer::renderText(QPainter *painter, Q3DSTextNode *text3DS)
qreal tracking = 0.0;
switch (text3DS->horizontalAlignment()) {
case Q3DSTextNode::Center:
+ horizontalAlignmentFlag = Qt::AlignHCenter;
tracking += qreal(text3DS->tracking()) / 2.0;
break;
case Q3DSTextNode::Right:
+ horizontalAlignmentFlag = Qt::AlignRight;
tracking += qreal(text3DS->tracking());
break;
case Q3DSTextNode::Left:
@@ -303,12 +306,12 @@ void Q3DSTextRenderer::renderText(QPainter *painter, Q3DSTextNode *text3DS)
qreal(lineWidths.at(i)), lineHeight);
// shadow is a darker shade of the given font color
painter->setPen(QColor(shadowRgb, shadowRgb, shadowRgb));
- painter->drawText(boundShadow, mapVertAlign(text3DS) | wordWrapFlags | Qt::AlignLeft,
- line, &actualBound);
+ painter->drawText(boundShadow, mapVertAlign(text3DS) | wordWrapFlags
+ | horizontalAlignmentFlag, line, &actualBound);
painter->setPen(Qt::white); // coloring is done in the shader
}
- painter->drawText(bound, mapVertAlign(text3DS) | wordWrapFlags | Qt::AlignLeft, line,
- &actualBound);
+ painter->drawText(bound, mapVertAlign(text3DS) | wordWrapFlags | horizontalAlignmentFlag,
+ line, &actualBound);
nextHeight += lineHeight + qreal(text3DS->leading());
}
}