diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2021-05-19 15:51:25 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2021-06-01 08:22:21 +0000 |
commit | b0d4fc359faf6e2e8b4f0e3e0fa7d511316ea8b0 (patch) | |
tree | d643399b59652a7c2c9994c92b3cbc13e7379d48 /src/plugins/cpptools/cppvirtualfunctionassistprovider.cpp | |
parent | 1372dfdf7fc5e0ee04c064568bcd6e45da019db5 (diff) | |
download | qt-creator-b0d4fc359faf6e2e8b4f0e3e0fa7d511316ea8b0.tar.gz |
ClangCodeModel: Let user choose the override
.... when following virtual function calls.
This brings us up to par with the built-in code model.
We do lose the icons, but they are of very little use in this context.
Change-Id: I29b27d538e7277d06a5af7acee07bddb6eb94c98
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppvirtualfunctionassistprovider.cpp')
-rw-r--r-- | src/plugins/cpptools/cppvirtualfunctionassistprovider.cpp | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/plugins/cpptools/cppvirtualfunctionassistprovider.cpp b/src/plugins/cpptools/cppvirtualfunctionassistprovider.cpp index 1ee271433b..f89b6c5231 100644 --- a/src/plugins/cpptools/cppvirtualfunctionassistprovider.cpp +++ b/src/plugins/cpptools/cppvirtualfunctionassistprovider.cpp @@ -37,7 +37,6 @@ #include <coreplugin/actionmanager/command.h> #include <texteditor/codeassist/genericproposalmodel.h> -#include <texteditor/codeassist/genericproposal.h> #include <texteditor/codeassist/genericproposalwidget.h> #include <texteditor/codeassist/assistinterface.h> #include <texteditor/codeassist/iassistprocessor.h> @@ -84,9 +83,13 @@ protected: { GenericProposalModelPtr proposalModel = model(); if (proposalModel && proposalModel->size() == 1) { - emit proposalItemActivated(proposalModel->proposalItem(0)); - deleteLater(); - return; + const auto item = dynamic_cast<VirtualFunctionProposalItem *>( + proposalModel->proposalItem(0)); + if (item && item->link().hasValidTarget()) { + emit proposalItemActivated(proposalModel->proposalItem(0)); + deleteLater(); + return; + } } GenericProposalWidget::showProposal(prefix); } @@ -95,24 +98,7 @@ private: QKeySequence m_sequence; }; -class VirtualFunctionProposal : public GenericProposal -{ -public: - VirtualFunctionProposal(int cursorPos, - const QList<AssistProposalItemInterface *> &items, - bool openInSplit) - : GenericProposal(cursorPos, items) - , m_openInSplit(openInSplit) - { - setFragile(true); - } - - IAssistProposalWidget *createWidget() const override - { return new VirtualFunctionProposalWidget(m_openInSplit); } -private: - bool m_openInSplit; -}; class VirtualFunctionAssistProcessor : public IAssistProcessor { @@ -207,4 +193,16 @@ IAssistProcessor *VirtualFunctionAssistProvider::createProcessor() const return new VirtualFunctionAssistProcessor(m_params); } +VirtualFunctionProposal::VirtualFunctionProposal( + int cursorPos, const QList<AssistProposalItemInterface *> &items, bool openInSplit) + : GenericProposal(cursorPos, items), m_openInSplit(openInSplit) +{ + setFragile(true); +} + +IAssistProposalWidget *VirtualFunctionProposal::createWidget() const +{ + return new VirtualFunctionProposalWidget(m_openInSplit); +} + } // namespace CppTools |