WrapColumnFinder finder(this);
while(finder.nextWrapColumn(w) > 0)
lines++;
- qreal h = lines * fontMetrics()->lineSpacing();
+ qreal spacing = qMax(fontMetrics()->lineSpacing(), fontMetrics()->height()); // cope with negative leading()
+ qreal h = lines * spacing;
delete _data;
_data = 0;
if(!wrapList.count()) return; // empty chatitem
qreal h = 0;
+ qreal spacing = qMax(fontMetrics()->lineSpacing(), fontMetrics()->height()); // cope with negative leading()
WrapColumnFinder finder(this);
layout->beginLayout();
forever {
// Sometimes, setNumColumns will create a line that's too long (cf. Qt bug 238249)
// We verify this and try setting the width again, making it shorter each time until the lengths match.
// Dead fugly, but seems to work…
- for(int i = line.textLength()-1; line.textLength() > num; i--) {
+ for(int i = line.textLength()-1; i >= 0 && line.textLength() > num; i--) {
line.setNumColumns(i);
}
if(num != line.textLength()) {
}
line.setPosition(QPointF(0, h));
- h += fontMetrics()->lineSpacing();
+ h += spacing;
}
layout->endLayout();
}