From 4c04c1a7748f6db751f72cace4e5d84c4c8a7c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com> Date: Mon, 15 Dec 2008 16:09:42 +0100 Subject: [PATCH] Fixed mouse handling for code folding when hidden The mouse handling for code folding wasn't deactivated when the code folding markers were hidden. Reviewed-by: mae --- src/plugins/texteditor/basetexteditor.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 870f826ebf2..ab8f87c5a88 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -749,7 +749,7 @@ void BaseTextEditor::moveLineUpDown(bool up) void BaseTextEditor::cleanWhitespace() { - d->m_document->cleanWhitespace(); + d->m_document->cleanWhitespace(); } void BaseTextEditor::keyPressEvent(QKeyEvent *e) @@ -1286,7 +1286,7 @@ void BaseTextEditor::setFontSettings(const TextEditor::FontSettings &fs) void BaseTextEditor::setStorageSettings(const StorageSettings &storageSettings) { - d->m_document->setStorageSettings(storageSettings); + d->m_document->setStorageSettings(storageSettings); } //--------- BaseTextEditorPrivate ----------- @@ -2477,17 +2477,22 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e) extraAreaWidth(&markWidth); if (e->type() == QEvent::MouseMove && e->buttons() == 0) { // mouse tracking - int highlightBlockNumber = d->extraAreaHighlightCollapseBlockNumber; + // Update which folder marker is highlighted + const int highlightBlockNumber = d->extraAreaHighlightCollapseBlockNumber; d->extraAreaHighlightCollapseBlockNumber = -1; - if (TextBlockUserData::canCollapse(cursor.block()) + + if (d->m_codeFoldingVisible + && TextBlockUserData::canCollapse(cursor.block()) && !TextBlockUserData::hasClosingCollapseInside(cursor.block().next()) && collapseBox(cursor.block()).contains(e->pos())) d->extraAreaHighlightCollapseBlockNumber = cursor.blockNumber(); + // Set whether the mouse cursor is a hand or normal arrow bool hand = (e->pos().x() <= markWidth || d->extraAreaHighlightCollapseBlockNumber >= 0); if (hand != (d->m_extraArea->cursor().shape() == Qt::PointingHandCursor)) d->m_extraArea->setCursor(hand ? Qt::PointingHandCursor : Qt::ArrowCursor); + // Start fading in or out the highlighted folding marker if (highlightBlockNumber != d->extraAreaHighlightCollapseBlockNumber) { d->extraAreaTimeLine->stop(); d->extraAreaTimeLine->setDirection(d->extraAreaHighlightCollapseBlockNumber >= 0? @@ -2504,12 +2509,12 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e) if (e->type() == QEvent::MouseButtonPress || e->type() == QEvent::MouseButtonDblClick) { if (e->button() == Qt::LeftButton) { - if (TextBlockUserData::canCollapse(cursor.block()) + if (d->m_codeFoldingVisible && TextBlockUserData::canCollapse(cursor.block()) && !TextBlockUserData::hasClosingCollapseInside(cursor.block().next()) && collapseBox(cursor.block()).contains(e->pos())) { setTextCursor(cursor); toggleBlockVisible(cursor.block()); - } else if (e->pos().x() > markWidth) { + } else if (d->m_marksVisible && e->pos().x() > markWidth) { QTextCursor selection = cursor; selection.setVisualNavigation(true); d->extraAreaSelectionAnchorBlockNumber = selection.blockNumber(); @@ -2519,7 +2524,7 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e) } else { d->extraAreaToggleMarkBlockNumber = cursor.blockNumber(); } - } else if (e->button() == Qt::RightButton) { + } else if (d->m_marksVisible && e->button() == Qt::RightButton) { QMenu * contextMenu = new QMenu(this); emit d->m_editable->markContextMenuRequested(editableInterface(), cursor.blockNumber() + 1, contextMenu); if (!contextMenu->isEmpty()) -- GitLab