void WatchPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) { TRACE(qDebug() << __func__ << p << textItem.text()); const qreal ascent = textItem.ascent(); const qreal descent = textItem.descent(); const qreal w = textItem.width(); damageRect(QRect(p.x(), p.y() - ascent, w, ascent + descent)); _painter.drawTextItem(p, textItem); }
void QAlphaPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) { Q_D(QAlphaPaintEngine); QRectF tr(p.x(), p.y() - textItem.ascent(), textItem.width() + 5, textItem.ascent() + textItem.descent() + 5); tr = d->m_transform.mapRect(tr); if (d->m_pass == 0) { d->m_continueCall = false; if (d->m_alphaPen || d->m_alphaOpacity || d->m_advancedPen) { d->addAlphaRect(tr); } if (d->m_picengine) { d->m_picengine->drawTextItem(p, textItem); } } else { d->m_continueCall = !d->fullyContained(tr); } }
void QPicturePaintEngine::drawTextItem(const QPointF &p , const QTextItem &ti) { Q_D(QPicturePaintEngine); #ifdef QT_PICTURE_DEBUG qDebug() << " -> drawTextItem():" << p << ti.text(); #endif const QTextItemInt &si = static_cast<const QTextItemInt &>(ti); if (si.chars == 0) QPaintEngine::drawTextItem(p, ti); // Draw as path if (d->pic_d->formatMajor >= 9) { int pos; SERIALIZE_CMD(QPicturePrivate::PdcDrawTextItem); QFont fnt = ti.font(); fnt.setUnderline(false); fnt.setStrikeOut(false); fnt.setOverline(false); qreal justificationWidth = 0; if (si.justified) justificationWidth = si.width.toReal(); d->s << p << ti.text() << fnt << ti.renderFlags() << double(fnt.d->dpi)/qt_defaultDpi() << justificationWidth; writeCmdLength(pos, /*brect=*/QRectF(), /*corr=*/false); } else if (d->pic_d->formatMajor >= 8) { // old old (buggy) format int pos; SERIALIZE_CMD(QPicturePrivate::PdcDrawTextItem); d->s << QPointF(p.x(), p.y() - ti.ascent()) << ti.text() << ti.font() << ti.renderFlags(); writeCmdLength(pos, /*brect=*/QRectF(), /*corr=*/false); } else { // old (buggy) format int pos; SERIALIZE_CMD(QPicturePrivate::PdcDrawText2); d->s << p << ti.text(); writeCmdLength(pos, QRectF(p, QSizeF(1,1)), true); } }