forked from qt-creator/qt-creator
Editor: optimize clearing layouts after edit width change
Change-Id: Ic3f700c48f05e2d231021379a5e154b23c2d1858 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -337,7 +337,17 @@ void PlainTextDocumentLayout::requestUpdate()
|
||||
void PlainTextDocumentLayout::setTextWidth(qreal newWidth)
|
||||
{
|
||||
d->width = d->maximumWidth = newWidth;
|
||||
d->relayout();
|
||||
bool layoutChanged = false;
|
||||
for (QTextBlock block = document()->firstBlock(); block.isValid(); block = block.next()) {
|
||||
QTextLayout *tl = block.layout();
|
||||
if (tl->lineCount() == 0 || (tl->lineCount() == 1 && tl->lineAt(0).naturalTextWidth() < newWidth))
|
||||
continue;
|
||||
layoutChanged = true;
|
||||
tl->clearLayout();
|
||||
block.setLineCount(block.isVisible() ? 1 : 0);
|
||||
}
|
||||
if (layoutChanged)
|
||||
emit update();
|
||||
}
|
||||
|
||||
qreal PlainTextDocumentLayout::textWidth() const
|
||||
|
Reference in New Issue
Block a user