From 9a69c20c40ab9873f90bb60aab08b07f2ce3b806 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 14 Aug 2023 11:01:18 +0200 Subject: [PATCH] ProjectExplorer: Hide filtered items on TargetSetupPage Instead of destroying/recreating them. Fixes: QTCREATORBUG-29494 Change-Id: I70e673bf2fb72c0ed31248c6ea18b1fb1a8f30a8 Reviewed-by: Marcus Tillmanns --- .../projectexplorer/targetsetuppage.cpp | 25 +++---------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp index 573fcad099a..24f31fe2304 100644 --- a/src/plugins/projectexplorer/targetsetuppage.cpp +++ b/src/plugins/projectexplorer/targetsetuppage.cpp @@ -546,27 +546,10 @@ void TargetSetupPagePrivate::kitSelectionChanged() void TargetSetupPagePrivate::kitFilterChanged(const QString &filterText) { - QPointer focusWidget = QApplication::focusWidget(); - // Remember selected kits: - const std::vector selectedWidgets - = filtered(m_widgets, &TargetSetupWidget::isKitSelected); - const QVector selectedKitIds = transform(selectedWidgets, - [](const TargetSetupWidget *w) { - return w->kit()->id(); - }); - - // Reset currently shown kits - reset(); - setupWidgets(filterText); - - // Re-select kits: - for (TargetSetupWidget *w : std::as_const(m_widgets)) - w->setKitSelected(selectedKitIds.contains(w->kit()->id())); - - emit q->completeChanged(); - - if (focusWidget) - focusWidget->setFocus(); + for (TargetSetupWidget *widget : m_widgets) { + Kit *kit = widget->kit(); + widget->setVisible(filterText.isEmpty() || kit->displayName().contains(filterText, Qt::CaseInsensitive)); + } } void TargetSetupPagePrivate::doInitializePage()