forked from qt-creator/qt-creator
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:
@@ -347,7 +347,7 @@ QStringList qmlJSAutoComplete(QTextDocument *textDocument,
|
||||
info)));
|
||||
|
||||
if (proposal) {
|
||||
GenericProposalModel *model = static_cast<GenericProposalModel*>(proposal->model());
|
||||
GenericProposalModelPtr model = proposal->model().staticCast<GenericProposalModel>();
|
||||
|
||||
int basePosition = proposal->basePosition();
|
||||
const QString prefix = textDocument->toPlainText().mid(basePosition,
|
||||
@@ -538,7 +538,7 @@ QmlJSCompletionAssistProcessor::~QmlJSCompletionAssistProcessor()
|
||||
|
||||
IAssistProposal *QmlJSCompletionAssistProcessor::createContentProposal() const
|
||||
{
|
||||
GenericProposalModel *model = new QmlJSAssistProposalModel(m_completions);
|
||||
GenericProposalModelPtr model(new QmlJSAssistProposalModel(m_completions));
|
||||
return new GenericProposal(m_startPosition, model);
|
||||
}
|
||||
|
||||
@@ -546,10 +546,9 @@ IAssistProposal *QmlJSCompletionAssistProcessor::createHintProposal(
|
||||
const QString &functionName, const QStringList &namedArguments,
|
||||
int optionalNamedArguments, bool isVariadic) const
|
||||
{
|
||||
IFunctionHintProposalModel *model = new FunctionHintProposalModel(
|
||||
functionName, namedArguments, optionalNamedArguments, isVariadic);
|
||||
IAssistProposal *proposal = new FunctionHintProposal(m_startPosition, model);
|
||||
return proposal;
|
||||
FunctionHintProposalModelPtr model(new FunctionHintProposalModel(
|
||||
functionName, namedArguments, optionalNamedArguments, isVariadic));
|
||||
return new FunctionHintProposal(m_startPosition, model);
|
||||
}
|
||||
|
||||
IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface *assistInterface)
|
||||
|
||||
@@ -832,14 +832,13 @@ void QmlJSEditorWidget::contextMenuEvent(QContextMenuEvent *e)
|
||||
QmlJSEditorPlugin::quickFixAssistProvider()->createProcessor());
|
||||
QScopedPointer<IAssistProposal> proposal(processor->perform(interface));
|
||||
if (!proposal.isNull()) {
|
||||
GenericProposalModel *model = static_cast<GenericProposalModel *>(proposal->model());
|
||||
GenericProposalModelPtr model = proposal->model().staticCast<GenericProposalModel>();
|
||||
for (int index = 0; index < model->size(); ++index) {
|
||||
AssistProposalItem *item = static_cast<AssistProposalItem *>(model->proposalItem(index));
|
||||
QuickFixOperation::Ptr op = item->data().value<QuickFixOperation::Ptr>();
|
||||
QAction *action = refactoringMenu->addAction(op->description());
|
||||
connect(action, &QAction::triggered, this, [op]() { op->perform(); });
|
||||
}
|
||||
delete model;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user