TextEditor: prevent crash on updating the completion model

Prevent updating the model with something other than a generic proposal
model.

Change-Id: I3880c1ce4ae7cf0aa4fb72d59b75a40db3f53482
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2023-01-16 12:49:58 +01:00
parent d9de9db6f8
commit 41294e70b4
3 changed files with 9 additions and 4 deletions

View File

@@ -392,12 +392,12 @@ void GenericProposalWidget::setIsSynchronized(bool isSync)
d->m_isSynchronized = isSync;
}
void GenericProposalWidget::updateModel(ProposalModelPtr model, const QString &prefix)
void GenericProposalWidget::updateModel(GenericProposalModelPtr model, const QString &prefix)
{
QString currentText;
if (d->m_explicitlySelected)
currentText = d->m_model->text(d->m_completionListView->currentIndex().row());
d->m_model = model.staticCast<GenericProposalModel>();
d->m_model = model;
if (d->m_model->containsDuplicates())
d->m_model->removeDuplicates();
d->m_completionListView->setModel(new ModelAdapter(d->m_model, d->m_completionListView));

View File

@@ -31,7 +31,7 @@ public:
void setDisplayRect(const QRect &rect) override;
void setIsSynchronized(bool isSync) override;
void updateModel(ProposalModelPtr model, const QString &prefix);
void updateModel(GenericProposalModelPtr model, const QString &prefix);
void showProposal(const QString &prefix) override;
void filterProposal(const QString &prefix) override;