diff options
Diffstat (limited to 'src/gui/painting/qpainter.cpp')
-rw-r--r-- | src/gui/painting/qpainter.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index 6bb8acd..50d27ac 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -5724,14 +5724,18 @@ void QPainter::drawText(const QPointF &p, const QString &str) */ void QPainter::drawStaticText(const QPointF &position, const QStaticText &staticText) { + Q_D(QPainter); + if (!d->engine || staticText.isEmpty() || pen().style() == Qt::NoPen) + return; + const QStaticTextPrivate *staticText_d = QStaticTextPrivate::get(&staticText); QFixed x = QFixed::fromReal(position.x()); - for (int i=0; i<staticText_d->items.size();++i) { - QTextItemInt *gf = staticText_d->items.at(i); - if (gf->num_chars != 0) - drawTextItem(QPointF(x.toReal(), position.y()), *gf); - x += gf->width; + for (int i=0; i<staticText_d->itemCount; ++i) { + const QTextItemInt &gf = staticText_d->items[i]; + if (gf.num_chars != 0) + drawTextItem(QPointF(x.toReal(), position.y()), gf); + x += gf.width; } } |