Editor: ensure something is selected after model update

Change-Id: I3fbf14cb7aa60caef43340302e74e80ed5e3ba4c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2022-11-30 12:28:06 +01:00
parent 0313470db0
commit 69ce2a4047
3 changed files with 16 additions and 14 deletions

View File

@@ -392,7 +392,7 @@ void GenericProposalWidget::setIsSynchronized(bool isSync)
d->m_isSynchronized = isSync;
}
void GenericProposalWidget::updateModel(ProposalModelPtr model)
void GenericProposalWidget::updateModel(ProposalModelPtr model, const QString &prefix)
{
QString currentText;
if (d->m_explicitlySelected)
@@ -403,16 +403,15 @@ void GenericProposalWidget::updateModel(ProposalModelPtr model)
d->m_completionListView->setModel(new ModelAdapter(d->m_model, d->m_completionListView));
connect(d->m_completionListView->selectionModel(), &QItemSelectionModel::currentChanged,
&d->m_infoTimer, QOverload<>::of(&QTimer::start));
int currentRow = -1;
if (!currentText.isEmpty()) {
currentRow = d->m_model->indexOf(
const int currentRow = d->m_model->indexOf(
Utils::equal(&AssistProposalItemInterface::text, currentText));
if (currentRow < 0)
d->m_explicitlySelected = false;
else
d->m_completionListView->selectRow(currentRow);
}
if (currentRow >= 0)
d->m_completionListView->selectRow(currentRow);
else
d->m_explicitlySelected = false;
updatePositionAndSize();
updateAndCheck(prefix);
}
void GenericProposalWidget::showProposal(const QString &prefix)

View File

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