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)
|
void PlainTextDocumentLayout::setTextWidth(qreal newWidth)
|
||||||
{
|
{
|
||||||
d->width = d->maximumWidth = 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
|
qreal PlainTextDocumentLayout::textWidth() const
|
||||||
|
Reference in New Issue
Block a user