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

@@ -815,12 +815,11 @@ static void addRefactoringActions(QMenu *menu, AssistInterface *iface)
using Processor = QScopedPointer<IAssistProcessor>;
using Proposal = QScopedPointer<IAssistProposal>;
using Model = QScopedPointer<GenericProposalModel>;
const Processor processor(CppEditorPlugin::instance()->quickFixProvider()->createProcessor());
const Proposal proposal(processor->perform(iface)); // OK, perform() takes ownership of iface.
if (proposal) {
Model model(static_cast<GenericProposalModel *>(proposal->model()));
auto model = proposal->model().staticCast<GenericProposalModel>();
for (int index = 0; index < model->size(); ++index) {
const auto item = static_cast<AssistProposalItem *>(model->proposalItem(index));
const QuickFixOperation::Ptr op = item->data().value<QuickFixOperation::Ptr>();