summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/codeassist
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2013-07-04 20:11:10 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-10-01 14:23:00 +0200
commit11aeaea86f99bb00ef328c6f439d5549131cfc28 (patch)
treecc15cb55e6b7e6ad0d65065b49506c7f979e8d51 /src/plugins/texteditor/codeassist
parent3a64f8a344b1c702f66331a4fa21807f0a017762 (diff)
downloadqt-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.h3
-rw-r--r--src/plugins/texteditor/codeassist/genericproposalwidget.cpp18
-rw-r--r--src/plugins/texteditor/codeassist/genericproposalwidget.h5
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;