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)
|
void TargetSetupPagePrivate::kitFilterChanged(const QString &filterText)
|
||||||
{
|
{
|
||||||
QPointer<QWidget> focusWidget = QApplication::focusWidget();
|
for (TargetSetupWidget *widget : m_widgets) {
|
||||||
// Remember selected kits:
|
Kit *kit = widget->kit();
|
||||||
const std::vector<TargetSetupWidget *> selectedWidgets
|
widget->setVisible(filterText.isEmpty() || kit->displayName().contains(filterText, Qt::CaseInsensitive));
|
||||||
= 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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TargetSetupPagePrivate::doInitializePage()
|
void TargetSetupPagePrivate::doInitializePage()
|
||||||
|
Reference in New Issue
Block a user