From b36924c0e6afb5e7e4bf816e88a0f4d4aca51afa Mon Sep 17 00:00:00 2001 From: Takumi ASAKI Date: Wed, 1 Jul 2015 13:22:18 +0900 Subject: [PATCH] CppEditor: Fix inserting completion while in (local) rename mode Fixes case 1 of QTCREATORBUG-14633. Task-number: QTCREATORBUG-14633 Change-Id: I1f57b8f831613668b85948f4ec588c4cf441b633 Reviewed-by: David Schulz --- src/plugins/cppeditor/cppeditor.cpp | 8 ++++++++ src/plugins/cppeditor/cppeditor.h | 2 ++ src/plugins/cppeditor/cpplocalrenaming.cpp | 8 ++++++++ src/plugins/cppeditor/cpplocalrenaming.h | 2 ++ 4 files changed, 20 insertions(+) diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index a19081e5240..c04630a0793 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -723,6 +723,14 @@ FollowSymbolUnderCursor *CppEditorWidget::followSymbolUnderCursorDelegate() return d->m_followSymbolUnderCursor.data(); } +void CppEditorWidget::encourageApply() +{ + if (d->m_localRenaming.encourageApply()) + return; + + TextEditorWidget::encourageApply(); +} + void CppEditorWidget::abortDeclDefLink() { if (!d->m_declDefLink) diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h index 41002e77790..489a04216d7 100644 --- a/src/plugins/cppeditor/cppeditor.h +++ b/src/plugins/cppeditor/cppeditor.h @@ -83,6 +83,8 @@ public: FollowSymbolUnderCursor *followSymbolUnderCursorDelegate(); // exposed for tests + void encourageApply() override; + public slots: void paste() override; void cut() override; diff --git a/src/plugins/cppeditor/cpplocalrenaming.cpp b/src/plugins/cppeditor/cpplocalrenaming.cpp index ab267df0b82..733005b8d66 100644 --- a/src/plugins/cppeditor/cpplocalrenaming.cpp +++ b/src/plugins/cppeditor/cpplocalrenaming.cpp @@ -210,6 +210,14 @@ bool CppLocalRenaming::handleKeyPressEvent(QKeyEvent *e) return true; } +bool CppLocalRenaming::encourageApply() +{ + if (!isActive()) + return false; + finishRenameChange(); + return true; +} + QTextEdit::ExtraSelection &CppLocalRenaming::renameSelection() { return m_selections[m_renameSelectionIndex]; diff --git a/src/plugins/cppeditor/cpplocalrenaming.h b/src/plugins/cppeditor/cpplocalrenaming.h index de6fd9ecf94..b23e4c5f5db 100644 --- a/src/plugins/cppeditor/cpplocalrenaming.h +++ b/src/plugins/cppeditor/cpplocalrenaming.h @@ -61,6 +61,8 @@ public: // to BaseTextEditorWidget::keyPressEvent() bool handleKeyPressEvent(QKeyEvent *e); + bool encourageApply(); + public slots: void updateSelectionsForVariableUnderCursor(const QList &selections);