summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libs/utils/uncommentselection.cpp13
-rw-r--r--src/libs/utils/uncommentselection.h7
-rw-r--r--src/plugins/texteditor/texteditor.cpp7
3 files changed, 16 insertions, 11 deletions
diff --git a/src/libs/utils/uncommentselection.cpp b/src/libs/utils/uncommentselection.cpp
index 2a9bf682f5..cdc271e5ef 100644
--- a/src/libs/utils/uncommentselection.cpp
+++ b/src/libs/utils/uncommentselection.cpp
@@ -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;
}
diff --git a/src/libs/utils/uncommentselection.h b/src/libs/utils/uncommentselection.h
index 9a27c46c1b..c937086aef 100644
--- a/src/libs/utils/uncommentselection.h
+++ b/src/libs/utils/uncommentselection.h
@@ -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
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index b68086ac97..46077a2385 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -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()