Fix drawing text in item view:
Put back code that was removed by mistake in e8019cf8feb402303e6d253f5ca58bebfda42679 Task-number: QTBUG-18998 (cherry picked from commit bbbd4b8f3949b58d4fd21854241cb46cbc024a80)bb10
parent
9e3fb2b86f
commit
74dda83074
|
|
@ -898,6 +898,25 @@ QSize QCommonStylePrivate::viewItemSize(const QStyleOptionViewItemV4 *option, in
|
|||
return QSize(0, 0);
|
||||
}
|
||||
|
||||
static QSizeF viewItemTextLayout(QTextLayout &textLayout, int lineWidth)
|
||||
{
|
||||
qreal height = 0;
|
||||
qreal widthUsed = 0;
|
||||
textLayout.beginLayout();
|
||||
while (true) {
|
||||
QTextLine line = textLayout.createLine();
|
||||
if (!line.isValid())
|
||||
break;
|
||||
line.setLineWidth(lineWidth);
|
||||
line.setPosition(QPointF(0, height));
|
||||
height += line.height();
|
||||
widthUsed = qMax(widthUsed, line.naturalTextWidth());
|
||||
}
|
||||
textLayout.endLayout();
|
||||
return QSizeF(widthUsed, height);
|
||||
}
|
||||
|
||||
|
||||
void QCommonStylePrivate::viewItemDrawText(QPainter *p, const QStyleOptionViewItemV4 *option, const QRect &rect) const
|
||||
{
|
||||
Q_Q(const QCommonStyle);
|
||||
|
|
@ -915,6 +934,8 @@ void QCommonStylePrivate::viewItemDrawText(QPainter *p, const QStyleOptionViewIt
|
|||
textLayout.setFont(option->font);
|
||||
textLayout.setText(option->text);
|
||||
|
||||
viewItemTextLayout(textLayout, textRect.width());
|
||||
|
||||
QString elidedText;
|
||||
qreal height = 0;
|
||||
qreal width = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue