From eed9ab2901ca898f361c825a253d1af0ffaab5c9 Mon Sep 17 00:00:00 2001 From: Leandro Melo Date: Fri, 9 Dec 2011 17:36:42 +0100 Subject: [PATCH] Editor: Update layout accordingly when restoring state Whenever blocks are folded/unfoled we need to request a layout update. Task-number: QTCREATORBUG-6666 Change-Id: I123b99c697a034cb04871bc41f42eac4f39895a2 Reviewed-by: Daniel Teske Reviewed-by: Eike Ziller Reviewed-by: Leandro Melo --- src/plugins/texteditor/basetexteditor.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 00baeea31d9..5b41cfea5cb 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -2206,10 +2206,20 @@ bool BaseTextEditorWidget::restoreState(const QByteArray &state) QList collapsedBlocks; stream >> collapsedBlocks; QTextDocument *doc = document(); + bool layoutChanged = false; foreach(int blockNumber, collapsedBlocks) { QTextBlock block = doc->findBlockByNumber(qMax(0, blockNumber)); - if (block.isValid()) + if (block.isValid()) { BaseTextDocumentLayout::doFoldOrUnfold(block, false); + layoutChanged = true; + } + } + if (layoutChanged) { + BaseTextDocumentLayout *documentLayout = + qobject_cast(doc->documentLayout()); + QTC_ASSERT(documentLayout, return false); + documentLayout->requestUpdate(); + documentLayout->emitDocumentSizeChanged(); } } else { if (d->m_displaySettings.m_autoFoldFirstComment)