forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user