forked from qt-creator/qt-creator
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:
@@ -74,13 +74,14 @@ static bool isComment(const QString &text, int index,
|
||||
}
|
||||
|
||||
|
||||
void Utils::unCommentSelection(QPlainTextEdit *edit, const CommentDefinition &definition,
|
||||
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;
|
||||
}
|
||||
|
@@ -28,6 +28,7 @@
|
||||
#include "utils_global.h"
|
||||
|
||||
#include <QString>
|
||||
#include <QTextCursor>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QPlainTextEdit;
|
||||
@@ -57,7 +58,7 @@ public:
|
||||
};
|
||||
|
||||
QTCREATOR_UTILS_EXPORT
|
||||
void unCommentSelection(QPlainTextEdit *edit,
|
||||
QTextCursor unCommentSelection(const QTextCursor &cursor,
|
||||
const CommentDefinition &definiton = CommentDefinition(),
|
||||
bool preferSingleLine = false);
|
||||
|
||||
|
@@ -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()
|
||||
|
Reference in New Issue
Block a user