summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppvirtualfunctionassistprovider.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-05-19 15:51:25 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-06-01 08:22:21 +0000
commitb0d4fc359faf6e2e8b4f0e3e0fa7d511316ea8b0 (patch)
treed643399b59652a7c2c9994c92b3cbc13e7379d48 /src/plugins/cpptools/cppvirtualfunctionassistprovider.cpp
parent1372dfdf7fc5e0ee04c064568bcd6e45da019db5 (diff)
downloadqt-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.cpp40
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