From 3f9c1d5d2b279d8e26d6523811809cfe361b6748 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 14 Apr 2022 14:53:20 +0200 Subject: [PATCH] Editor: fix selecting multiple block selections with mouse Change-Id: I5b46adbf38358d1396ee7120558648b1375e4047 Reviewed-by: Marcus Tillmanns Reviewed-by: Christian Stenger --- src/libs/utils/multitextcursor.cpp | 6 ++++++ src/libs/utils/multitextcursor.h | 1 + src/plugins/texteditor/texteditor.cpp | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/multitextcursor.cpp b/src/libs/utils/multitextcursor.cpp index f22490eb7db..c5d8feac0ab 100644 --- a/src/libs/utils/multitextcursor.cpp +++ b/src/libs/utils/multitextcursor.cpp @@ -50,6 +50,12 @@ void MultiTextCursor::addCursor(const QTextCursor &cursor) mergeCursors(); } +void MultiTextCursor::addCursors(const QList &cursors) +{ + m_cursors.append(cursors); + mergeCursors(); +} + void MultiTextCursor::setCursors(const QList &cursors) { m_cursors = cursors; diff --git a/src/libs/utils/multitextcursor.h b/src/libs/utils/multitextcursor.h index 8fdf041faa0..4aaaee933ee 100644 --- a/src/libs/utils/multitextcursor.h +++ b/src/libs/utils/multitextcursor.h @@ -57,6 +57,7 @@ public: /// the \param cursor that is appended by added by \brief addCursor /// will be interpreted as the new main cursor void addCursor(const QTextCursor &cursor); + void addCursors(const QList &cursors); /// convenience function that removes the old main cursor and appends /// \param cursor as the new main cursor void replaceMainCursor(const QTextCursor &cursor); diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 8951630dd53..35d764a33e5 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -5335,7 +5335,7 @@ void TextEditorWidget::mouseMoveEvent(QMouseEvent *e) anchorCursor.blockNumber(), anchorColumn}; - cursor.setCursors(d->generateCursorsForBlockSelection(blockSelection)); + cursor.addCursors(d->generateCursorsForBlockSelection(blockSelection)); if (!cursor.isNull()) setMultiTextCursor(cursor); } else {