From d087d0b66ec1b865a393730a84b7534dde26820a Mon Sep 17 00:00:00 2001
From: Orgad Shaneh <orgad.shaneh@audiocodes.com>
Date: Sun, 16 Feb 2014 22:05:23 +0200
Subject: [PATCH] CppEditor: Jump directly to single virtual function
Assumption: model never has 1 entry for immediate result
(there is always the natural result + "Searching for overrides"
Change-Id: I5de7e7933b1309f995a6111a2ab1c7aed31c086e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
---
.../cppeditor/cppvirtualfunctionassistprovider.cpp | 11 +++++++++++
.../texteditor/codeassist/genericproposalwidget.cpp | 5 +++++
.../texteditor/codeassist/genericproposalwidget.h | 2 ++
3 files changed, 18 insertions(+)
diff --git a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
index f593074d2dd..75635d2f2b1 100644
--- a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
+++ b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
@@ -88,6 +88,17 @@ protected:
return GenericProposalWidget::eventFilter(o, e);
}
+ void showProposal(const QString &prefix)
+ {
+ IGenericProposalModel *proposalModel = model();
+ if (proposalModel && proposalModel->size() == 1) {
+ emit proposalItemActivated(proposalModel->proposalItem(0));
+ deleteLater();
+ return;
+ }
+ GenericProposalWidget::showProposal(prefix);
+ }
+
private:
QKeySequence m_sequence;
};
diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
index bf096098e8f..839e26f31d9 100644
--- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
+++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
@@ -666,6 +666,11 @@ bool GenericProposalWidget::activateCurrentProposalItem()
return false;
}
+IGenericProposalModel *GenericProposalWidget::model()
+{
+ return d->m_model;
+}
+
#include "genericproposalwidget.moc"
} // TextEditor
diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.h b/src/plugins/texteditor/codeassist/genericproposalwidget.h
index 6d5b584a788..1fb9ce276f2 100644
--- a/src/plugins/texteditor/codeassist/genericproposalwidget.h
+++ b/src/plugins/texteditor/codeassist/genericproposalwidget.h
@@ -37,6 +37,7 @@
namespace TextEditor {
class GenericProposalWidgetPrivate;
+class IGenericProposalModel;
class TEXTEDITOR_EXPORT GenericProposalWidget : public IAssistProposalWidget
{
@@ -72,6 +73,7 @@ private slots:
protected:
bool eventFilter(QObject *o, QEvent *e);
bool activateCurrentProposalItem();
+ IGenericProposalModel *model();
private:
GenericProposalWidgetPrivate *d;
--
GitLab