From 08e4c30eb17bac2e4c00fd747901c8fff23b221d Mon Sep 17 00:00:00 2001 From: mae <qt-info@nokia.com> Date: Fri, 26 Mar 2010 14:28:26 +0100 Subject: [PATCH] Improve (un)comment selection in C++ style The patch makes the algorithm ignore empty (i.e. only whitespace) blocks similar to emacs. --- src/libs/utils/uncommentselection.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libs/utils/uncommentselection.cpp b/src/libs/utils/uncommentselection.cpp index 3ceef801a84..a5da088da95 100644 --- a/src/libs/utils/uncommentselection.cpp +++ b/src/libs/utils/uncommentselection.cpp @@ -110,8 +110,8 @@ void Utils::unCommentSelection(QPlainTextEdit *edit) endBlock = endBlock.next(); doCppStyleUncomment = true; for (QTextBlock block = startBlock; block != endBlock; block = block.next()) { - QString text = block.text(); - if (!text.trimmed().startsWith(QLatin1String("//"))) { + QString text = block.text().trimmed(); + if (!text.isEmpty() && !text.startsWith(QLatin1String("//"))) { doCppStyleUncomment = false; break; } @@ -133,8 +133,14 @@ void Utils::unCommentSelection(QPlainTextEdit *edit) ++i; } } else { - cursor.setPosition(block.position()); - cursor.insertText(QLatin1String("//")); + QString text = block.text(); + foreach(QChar c, text) { + if (!c.isSpace()) { + cursor.setPosition(block.position()); + cursor.insertText(QLatin1String("//")); + break; + } + } } } } -- GitLab