diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-07-04 20:11:10 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-10-01 14:23:00 +0200 |
commit | 11aeaea86f99bb00ef328c6f439d5549131cfc28 (patch) | |
tree | cc15cb55e6b7e6ad0d65065b49506c7f979e8d51 /src/plugins/texteditor/codeassist | |
parent | 3a64f8a344b1c702f66331a4fa21807f0a017762 (diff) | |
download | qt-creator-11aeaea86f99bb00ef328c6f439d5549131cfc28.tar.gz |
CppEditor: "Follow Symbol Under Cursor" for virtual functions
F2 on a virtual function call presents a list of overrides in derived
classes. The function declaration of the static type is shown
immediately at the top.
Task-number: QTCREATORBUG-9611
Change-Id: I80ce906fa06272dc9fbd1662cd17500b8c77067f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/plugins/texteditor/codeassist')
-rw-r--r-- | src/plugins/texteditor/codeassist/assistenums.h | 3 | ||||
-rw-r--r-- | src/plugins/texteditor/codeassist/genericproposalwidget.cpp | 18 | ||||
-rw-r--r-- | src/plugins/texteditor/codeassist/genericproposalwidget.h | 5 |
3 files changed, 18 insertions, 8 deletions
diff --git a/src/plugins/texteditor/codeassist/assistenums.h b/src/plugins/texteditor/codeassist/assistenums.h index 31447cec1b..b71a96ce46 100644 --- a/src/plugins/texteditor/codeassist/assistenums.h +++ b/src/plugins/texteditor/codeassist/assistenums.h @@ -35,7 +35,8 @@ namespace TextEditor { enum AssistKind { Completion, - QuickFix + QuickFix, + FollowSymbol }; enum AssistReason diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp index 22b7d15880..52303c1dc0 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp @@ -547,9 +547,7 @@ bool GenericProposalWidget::eventFilter(QObject *o, QEvent *e) if (fe->reason() == Qt::OtherFocusReason) { // Qt/carbon workaround // focus out is received before the key press event. - if (d->m_completionListView->currentIndex().isValid()) - emit proposalItemActivated(d->m_model->proposalItem( - d->m_completionListView->currentIndex().row())); + activateCurrentProposalItem(); } } if (d->m_infoFrame) @@ -593,9 +591,7 @@ bool GenericProposalWidget::eventFilter(QObject *o, QEvent *e) case Qt::Key_Return: if (!useCarbonWorkaround()) { abort(); - if (d->m_completionListView->currentIndex().isValid()) - emit proposalItemActivated(d->m_model->proposalItem( - d->m_completionListView->currentIndex().row())); + activateCurrentProposalItem(); } return true; @@ -658,6 +654,16 @@ bool GenericProposalWidget::eventFilter(QObject *o, QEvent *e) return false; } +bool GenericProposalWidget::activateCurrentProposalItem() +{ + if (d->m_completionListView->currentIndex().isValid()) { + const int currentRow = d->m_completionListView->currentIndex().row(); + emit proposalItemActivated(d->m_model->proposalItem(currentRow)); + return true; + } + return false; +} + #include "genericproposalwidget.moc" } // TextEditor diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.h b/src/plugins/texteditor/codeassist/genericproposalwidget.h index cc68c0253e..f1f5f5a61e 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.h +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.h @@ -32,11 +32,13 @@ #include "iassistproposalwidget.h" +#include <texteditor/texteditor_global.h> + namespace TextEditor { class GenericProposalWidgetPrivate; -class GenericProposalWidget : public IAssistProposalWidget +class TEXTEDITOR_EXPORT GenericProposalWidget : public IAssistProposalWidget { Q_OBJECT friend class GenericProposalWidgetPrivate; @@ -69,6 +71,7 @@ private slots: protected: virtual bool eventFilter(QObject *o, QEvent *e); + bool activateCurrentProposalItem(); private: GenericProposalWidgetPrivate *d; |