diff options
author | David Schulz <david.schulz@qt.io> | 2022-11-30 12:28:06 +0100 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2022-12-08 06:16:33 +0000 |
commit | 69ce2a40477a912e16dd57bfaab34b850421bbbb (patch) | |
tree | 753d4f82b77db8a5ddffb6aed7c58d80d519247c /src/plugins/texteditor/codeassist | |
parent | 0313470db0d5333ea5eda2da81e15c682f3ab981 (diff) |
Editor: ensure something is selected after model update
Change-Id: I3fbf14cb7aa60caef43340302e74e80ed5e3ba4c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/texteditor/codeassist')
-rw-r--r-- | src/plugins/texteditor/codeassist/genericproposalwidget.cpp | 15 | ||||
-rw-r--r-- | src/plugins/texteditor/codeassist/genericproposalwidget.h | 2 |
2 files changed, 8 insertions, 9 deletions
diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp index 9eb3fdcd37..bc00126dba 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp @@ -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) diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.h b/src/plugins/texteditor/codeassist/genericproposalwidget.h index c38ccc9f47..6052677662 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.h +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.h @@ -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; |