From d937ee5570c83afda61969042e293eca12f41b90 Mon Sep 17 00:00:00 2001 From: mae <qtc-committer@nokia.com> Date: Fri, 12 Dec 2008 14:09:56 +0100 Subject: [PATCH] tweak collapse/expand short cuts, and do not draw collpase boxes in ifdefed out sections --- src/plugins/texteditor/basetexteditor.cpp | 19 +++++++++++++------ src/plugins/texteditor/basetexteditor.h | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 1cff254452c..1db9ad6a5cb 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -2283,9 +2283,11 @@ void BaseTextEditor::extraAreaPaintEvent(QPaintEvent *e) } } - collapseAfter = (userData->collapseMode() == TextBlockUserData::CollapseAfter); - collapseThis = (userData->collapseMode() == TextBlockUserData::CollapseThis); - hasClosingCollapse = userData->hasClosingCollapse() && (previousBraceDepth > 0); + if (!userData->ifdefedOut()) { + collapseAfter = (userData->collapseMode() == TextBlockUserData::CollapseAfter); + collapseThis = (userData->collapseMode() == TextBlockUserData::CollapseThis); + hasClosingCollapse = userData->hasClosingCollapse() && (previousBraceDepth > 0); + } } if (d->m_codeFoldingVisible) { @@ -2318,10 +2320,12 @@ void BaseTextEditor::extraAreaPaintEvent(QPaintEvent *e) bool collapseNext = nextBlockUserData && nextBlockUserData->collapseMode() - == TextBlockUserData::CollapseThis; + == TextBlockUserData::CollapseThis + && !nextBlockUserData->ifdefedOut(); bool nextHasClosingCollapse = nextBlockUserData - && nextBlockUserData->hasClosingCollapseInside(); + && nextBlockUserData->hasClosingCollapseInside() + && nextBlockUserData->ifdefedOut(); bool drawBox = ((collapseAfter || collapseNext) && !nextHasClosingCollapse); @@ -3397,9 +3401,12 @@ void BaseTextEditor::collapse() TextEditDocumentLayout *documentLayout = qobject_cast<TextEditDocumentLayout*>(doc->documentLayout()); QTC_ASSERT(documentLayout, return); QTextBlock block = textCursor().block(); + QTextBlock curBlock = block; while (block.isValid()) { if (TextBlockUserData::canCollapse(block) && block.next().isVisible()) { - if ((block.next().userState()) >> 8 <= (textCursor().block().userState() >> 8)) + if (block == curBlock) + break; + if ((block.next().userState()) >> 8 <= (curBlock.previous().userState() >> 8)) break; } block = block.previous(); diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h index d75e174fea2..1d6444557ee 100644 --- a/src/plugins/texteditor/basetexteditor.h +++ b/src/plugins/texteditor/basetexteditor.h @@ -138,7 +138,7 @@ public: TextBlockUserData *data = static_cast<TextBlockUserData*>(block.userData()); if (!data || data->collapseMode() != CollapseAfter) { data = static_cast<TextBlockUserData*>(block.next().userData()); - if (!data || data->collapseMode() != TextBlockUserData::CollapseThis) + if (!data || data->collapseMode() != TextBlockUserData::CollapseThis || data->m_ifdefedOut) data = 0; } return data; -- GitLab