diff options
author | Jiang Jiang <jiang.jiang@nokia.com> | 2011-04-28 17:02:53 +0200 |
---|---|---|
committer | Jiang Jiang <jiang.jiang@nokia.com> | 2011-04-29 10:29:28 +0200 |
commit | c37880a3e8190d5eaceb39493fd638e662a32245 (patch) | |
tree | 8608b7119e412cb9a919b8c619c9f9d90b0895b9 | |
parent | a7dbf8a92f18fb77cb74d46da58ddd36f02bcb1f (diff) |
Make text align in the same baseline
(cherry picked from commit 3f0e1ac647cc8ab700b85772264bc2a95e5301fa)
-rw-r--r-- | src/declarative/items/qsgtext.cpp | 3 | ||||
-rw-r--r-- | src/declarative/items/qsgtextnode.cpp | 16 |
2 files changed, 8 insertions, 11 deletions
diff --git a/src/declarative/items/qsgtext.cpp b/src/declarative/items/qsgtext.cpp index ab4669eb45..f796006c18 100644 --- a/src/declarative/items/qsgtext.cpp +++ b/src/declarative/items/qsgtext.cpp @@ -1116,9 +1116,6 @@ QSGNode *QSGText::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data) } else { node->addTextLayout(QPoint(0, bounds.y()), &d->layout, d->color, d->style, d->styleColor); - QMatrix4x4 m; - m.translate(0, QFontMetricsF(d->font).ascent()); - node->setMatrix(m); } return node; diff --git a/src/declarative/items/qsgtextnode.cpp b/src/declarative/items/qsgtextnode.cpp index 3bbe0d2832..a887c2360a 100644 --- a/src/declarative/items/qsgtextnode.cpp +++ b/src/declarative/items/qsgtextnode.cpp @@ -188,8 +188,11 @@ void QSGTextNode::addTextLayout(const QPointF &position, QTextLayout *textLayout QSGText::TextStyle style, const QColor &styleColor) { QList<QGlyphs> glyphsList(textLayout->glyphs()); - for (int i=0; i<glyphsList.size(); ++i) - addGlyphs(position, glyphsList.at(i), color, style, styleColor); + for (int i=0; i<glyphsList.size(); ++i) { + QGlyphs glyphs = glyphsList.at(i); + QRawFont font = glyphs.font(); + addGlyphs(position + QPointF(0, font.ascent()), glyphs, color, style, styleColor); + } QFont font = textLayout->font(); QRawFont rawFont = QRawFont::fromFont(font); @@ -353,16 +356,13 @@ void QSGTextNode::addTextBlock(const QPointF &position, QTextDocument *textDocum ? overrideColor : charFormat.foreground().color(); - QFontMetricsF fm(fragment.charFormat().font()); - QPointF ascent(0, fm.ascent()); - QList<QGlyphs> glyphsList = fragment.glyphs(); for (int i=0; i<glyphsList.size(); ++i) { QGlyphs glyphs = glyphsList.at(i); - QSGGlyphNode *glyphNode = addGlyphs(position + blockPosition + ascent, glyphs, - color, style, styleColor); - QRawFont font = glyphs.font(); + QSGGlyphNode *glyphNode = addGlyphs(position + blockPosition + QPointF(0, font.ascent()), + glyphs, color, style, styleColor); + QPointF baseLine = glyphNode->baseLine(); qreal width = glyphNode->boundingRect().width(); addTextDecorations(baseLine, font, color, width, |