TextEditor: use cursor to comment selection

preparation for multi cursor support

Change-Id: I57d318ee325e3667a6377a972a0eda66e43d0349
Reviewed-by: André Hartmann <aha_1980@gmx.de>
This commit is contained in:
David Schulz
2021-09-06 07:22:07 +02:00
parent ace765c199
commit d739ba8a7d
3 changed files with 16 additions and 11 deletions

View File

@@ -74,13 +74,14 @@ static bool isComment(const QString &text, int index,
}
void Utils::unCommentSelection(QPlainTextEdit *edit, const CommentDefinition &definition,
bool preferSingleLine)
QTextCursor Utils::unCommentSelection(const QTextCursor &cursorIn,
const CommentDefinition &definition,
bool preferSingleLine)
{
if (!definition.isValid())
return;
return cursorIn;
QTextCursor cursor = edit->textCursor();
QTextCursor cursor = cursorIn;
QTextDocument *doc = cursor.document();
cursor.beginEditBlock();
@@ -227,9 +228,9 @@ void Utils::unCommentSelection(QPlainTextEdit *edit, const CommentDefinition &de
cursor.endEditBlock();
cursor = cursorIn;
// adjust selection when commenting out
if (hasSelection && !doMultiLineStyleUncomment && !doSingleLineStyleUncomment) {
cursor = edit->textCursor();
if (!doMultiLineStyleComment)
start = startBlock.position(); // move the comment into the selection
int lastSelPos = anchorIsStart ? cursor.position() : cursor.anchor();
@@ -240,6 +241,6 @@ void Utils::unCommentSelection(QPlainTextEdit *edit, const CommentDefinition &de
cursor.setPosition(lastSelPos);
cursor.setPosition(start, QTextCursor::KeepAnchor);
}
edit->setTextCursor(cursor);
}
return cursor;
}

View File

@@ -28,6 +28,7 @@
#include "utils_global.h"
#include <QString>
#include <QTextCursor>
QT_BEGIN_NAMESPACE
class QPlainTextEdit;
@@ -57,8 +58,8 @@ public:
};
QTCREATOR_UTILS_EXPORT
void unCommentSelection(QPlainTextEdit *edit,
const CommentDefinition &definiton = CommentDefinition(),
bool preferSingleLine = false);
QTextCursor unCommentSelection(const QTextCursor &cursor,
const CommentDefinition &definiton = CommentDefinition(),
bool preferSingleLine = false);
} // namespace Utils

View File

@@ -7336,8 +7336,11 @@ void TextEditorWidget::rewrapParagraph()
void TextEditorWidget::unCommentSelection()
{
Utils::unCommentSelection(this, d->m_commentDefinition,
d->m_document->typingSettings().m_preferSingleLineComments);
const bool singleLine = d->m_document->typingSettings().m_preferSingleLineComments;
const QTextCursor cursor = Utils::unCommentSelection(textCursor(),
d->m_commentDefinition,
singleLine);
setTextCursor(cursor);
}
void TextEditorWidget::autoFormat()