From a138465848a535630fab38a1f92f2fe39cce7abe Mon Sep 17 00:00:00 2001 From: Bojan Petrovic Date: Wed, 18 Jan 2012 12:09:41 +0100 Subject: [PATCH] C++: Select All select the symbol while renaming symbol https://bugreports.qt.nokia.com//browse/QTCREATORBUG-5520 Change-Id: Ifb163adb2609e17cdbc3df1e90b7e583c75fac49 Reviewed-by: Leandro Melo --- src/plugins/cppeditor/cppeditor.cpp | 21 +++++++++++++++++++++ src/plugins/cppeditor/cppeditor.h | 1 + src/plugins/texteditor/basetexteditor.cpp | 6 ++++++ src/plugins/texteditor/basetexteditor.h | 1 + 4 files changed, 29 insertions(+) diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 88be82d64ff..5b311ed3d5b 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -579,6 +579,27 @@ void CPPEditorWidget::cut() finishRename(); } +void CPPEditorWidget::selectAll() +{ + // if we are currently renaming a symbol + // and the cursor is over that symbol, select just that symbol + if (m_currentRenameSelection != NoCurrentRenameSelection) { + QTextCursor cursor = textCursor(); + int selectionBegin = m_currentRenameSelectionBegin.position(); + int selectionEnd = m_currentRenameSelectionEnd.position(); + + if (cursor.position() >= selectionBegin + && cursor.position() <= selectionEnd) { + cursor.setPosition(selectionBegin); + cursor.setPosition(selectionEnd, QTextCursor::KeepAnchor); + setTextCursor(cursor); + return; + } + } + + BaseTextEditorWidget::selectAll(); +} + CppModelManagerInterface *CPPEditorWidget::modelManager() const { return m_modelManager; diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h index f02c444f813..2cc792006c6 100644 --- a/src/plugins/cppeditor/cppeditor.h +++ b/src/plugins/cppeditor/cppeditor.h @@ -179,6 +179,7 @@ public: virtual void paste(); // reimplemented from BaseTextEditorWidget virtual void cut(); // reimplemented from BaseTextEditorWidget + virtual void selectAll(); // reimplemented from BaseTextEditorWidget CPlusPlus::CppModelManagerInterface *modelManager() const; diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 3c1895f1759..1d75d6d4544 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -5763,6 +5763,12 @@ void BaseTextEditorWidget::cut() QPlainTextEdit::cut(); } +void BaseTextEditorWidget::selectAll() +{ + d->clearBlockSelection(); + QPlainTextEdit::selectAll(); +} + void BaseTextEditorWidget::copy() { if (!textCursor().hasSelection()) diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h index 4e02b961d28..d19d619b199 100644 --- a/src/plugins/texteditor/basetexteditor.h +++ b/src/plugins/texteditor/basetexteditor.h @@ -257,6 +257,7 @@ public slots: virtual void copy(); virtual void paste(); virtual void cut(); + virtual void selectAll(); void circularPaste();