tweak collapse/expand short cuts, and do not draw collpase boxes

in ifdefed out sections
This commit is contained in:
mae
2008-12-12 14:09:56 +01:00
parent 18d84955f7
commit d937ee5570
2 changed files with 14 additions and 7 deletions

View File

@@ -2283,10 +2283,12 @@ void BaseTextEditor::extraAreaPaintEvent(QPaintEvent *e)
} }
} }
if (!userData->ifdefedOut()) {
collapseAfter = (userData->collapseMode() == TextBlockUserData::CollapseAfter); collapseAfter = (userData->collapseMode() == TextBlockUserData::CollapseAfter);
collapseThis = (userData->collapseMode() == TextBlockUserData::CollapseThis); collapseThis = (userData->collapseMode() == TextBlockUserData::CollapseThis);
hasClosingCollapse = userData->hasClosingCollapse() && (previousBraceDepth > 0); hasClosingCollapse = userData->hasClosingCollapse() && (previousBraceDepth > 0);
} }
}
if (d->m_codeFoldingVisible) { if (d->m_codeFoldingVisible) {
const QRect box(extraAreaWidth + collapseBoxWidth/4, top + collapseBoxWidth/4, const QRect box(extraAreaWidth + collapseBoxWidth/4, top + collapseBoxWidth/4,
@@ -2318,10 +2320,12 @@ void BaseTextEditor::extraAreaPaintEvent(QPaintEvent *e)
bool collapseNext = nextBlockUserData bool collapseNext = nextBlockUserData
&& nextBlockUserData->collapseMode() && nextBlockUserData->collapseMode()
== TextBlockUserData::CollapseThis; == TextBlockUserData::CollapseThis
&& !nextBlockUserData->ifdefedOut();
bool nextHasClosingCollapse = nextBlockUserData bool nextHasClosingCollapse = nextBlockUserData
&& nextBlockUserData->hasClosingCollapseInside(); && nextBlockUserData->hasClosingCollapseInside()
&& nextBlockUserData->ifdefedOut();
bool drawBox = ((collapseAfter || collapseNext) && !nextHasClosingCollapse); bool drawBox = ((collapseAfter || collapseNext) && !nextHasClosingCollapse);
@@ -3397,9 +3401,12 @@ void BaseTextEditor::collapse()
TextEditDocumentLayout *documentLayout = qobject_cast<TextEditDocumentLayout*>(doc->documentLayout()); TextEditDocumentLayout *documentLayout = qobject_cast<TextEditDocumentLayout*>(doc->documentLayout());
QTC_ASSERT(documentLayout, return); QTC_ASSERT(documentLayout, return);
QTextBlock block = textCursor().block(); QTextBlock block = textCursor().block();
QTextBlock curBlock = block;
while (block.isValid()) { while (block.isValid()) {
if (TextBlockUserData::canCollapse(block) && block.next().isVisible()) { 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; break;
} }
block = block.previous(); block = block.previous();

View File

@@ -138,7 +138,7 @@ public:
TextBlockUserData *data = static_cast<TextBlockUserData*>(block.userData()); TextBlockUserData *data = static_cast<TextBlockUserData*>(block.userData());
if (!data || data->collapseMode() != CollapseAfter) { if (!data || data->collapseMode() != CollapseAfter) {
data = static_cast<TextBlockUserData*>(block.next().userData()); data = static_cast<TextBlockUserData*>(block.next().userData());
if (!data || data->collapseMode() != TextBlockUserData::CollapseThis) if (!data || data->collapseMode() != TextBlockUserData::CollapseThis || data->m_ifdefedOut)
data = 0; data = 0;
} }
return data; return data;