From d087d0b66ec1b865a393730a84b7534dde26820a Mon Sep 17 00:00:00 2001 From: Orgad Shaneh 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 --- .../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;