forked from qt-creator/qt-creator
ProjectExplorer: Hide filtered items on TargetSetupPage
Instead of destroying/recreating them. Fixes: QTCREATORBUG-29494 Change-Id: I70e673bf2fb72c0ed31248c6ea18b1fb1a8f30a8 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -546,27 +546,10 @@ void TargetSetupPagePrivate::kitSelectionChanged()
|
||||
|
||||
void TargetSetupPagePrivate::kitFilterChanged(const QString &filterText)
|
||||
{
|
||||
QPointer<QWidget> focusWidget = QApplication::focusWidget();
|
||||
// Remember selected kits:
|
||||
const std::vector<TargetSetupWidget *> selectedWidgets
|
||||
= filtered(m_widgets, &TargetSetupWidget::isKitSelected);
|
||||
const QVector<Id> selectedKitIds = transform<QVector>(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()
|
||||
|
Reference in New Issue
Block a user