CodeAssist: use shared pointer to pass around proposal models

Task-number: QTCREATORBUG-17752
Change-Id: Ia41f169b86ead209830e6f15764062389ced2b67
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
David Schulz
2018-02-14 14:32:51 +01:00
parent 4598a78980
commit a4b5fc00a8
34 changed files with 112 additions and 134 deletions

View File

@@ -443,9 +443,9 @@ AssistInterface *InternalCompletionAssistProvider::createAssistInterface(const Q
class CppAssistProposal : public GenericProposal
{
public:
CppAssistProposal(int cursorPos, GenericProposalModel *model)
CppAssistProposal(int cursorPos, GenericProposalModelPtr model)
: GenericProposal(cursorPos, model)
, m_replaceDotForArrow(static_cast<CppAssistProposalModel *>(model)->m_replaceDotForArrow)
, m_replaceDotForArrow(model.staticCast<CppAssistProposalModel>()->m_replaceDotForArrow)
{}
bool isCorrective(TextEditorWidget *) const override { return m_replaceDotForArrow; }
@@ -922,16 +922,15 @@ IAssistProposal *InternalCppCompletionAssistProcessor::createContentProposal()
}
m_model->loadContent(m_completions);
return new CppAssistProposal(m_positionForProposal, m_model.take());
return new CppAssistProposal(m_positionForProposal, m_model);
}
IAssistProposal *InternalCppCompletionAssistProcessor::createHintProposal(
QList<Function *> functionSymbols) const
{
IFunctionHintProposalModel *model =
new CppFunctionHintModel(functionSymbols, m_model->m_typeOfExpression);
IAssistProposal *proposal = new FunctionHintProposal(m_positionForProposal, model);
return proposal;
FunctionHintProposalModelPtr model(new CppFunctionHintModel(functionSymbols,
m_model->m_typeOfExpression));
return new FunctionHintProposal(m_positionForProposal, model);
}
int InternalCppCompletionAssistProcessor::startOfOperator(int positionInDocument,