ProjectExplorer: Do not reset kit selection in target setup widget

... on kit update. We don't know why the kit was originally selected,
and keeping track of this information would add unreasonable book-
keeping effort. Plus, the user probably does not expect the selection to
change anyway.

Change-Id: I341e1727a3f1fdd481c3a1670f821aee0e6b9cdd
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2019-08-23 15:33:53 +02:00
parent dca7edbeef
commit 2cad0733c2
2 changed files with 9 additions and 2 deletions

View File

@@ -267,6 +267,7 @@ void TargetSetupPage::setupWidgets(const QString &filterText)
if (!filterText.isEmpty() && !k->displayName().contains(filterText, Qt::CaseInsensitive))
continue;
const auto widget = new TargetSetupWidget(k, m_projectPath);
setInitialCheckState(widget);
connect(widget, &TargetSetupWidget::selectedToggled,
this, &TargetSetupPage::kitSelectionChanged);
connect(widget, &TargetSetupWidget::selectedToggled, this, &QWizardPage::completeChanged);
@@ -298,6 +299,12 @@ void TargetSetupPage::reset()
m_ui->allKitsCheckBox->setChecked(false);
}
void TargetSetupPage::setInitialCheckState(TargetSetupWidget *widget)
{
widget->setKitSelected(widget->isEnabled() && m_preferredPredicate
&& m_preferredPredicate(widget->kit()));
}
TargetSetupWidget *TargetSetupPage::widget(const Core::Id kitId,
TargetSetupWidget *fallback) const
{
@@ -559,6 +566,7 @@ void TargetSetupPage::removeWidget(TargetSetupWidget *w)
TargetSetupWidget *TargetSetupPage::addWidget(Kit *k)
{
const auto widget = new TargetSetupWidget(k, m_projectPath);
setInitialCheckState(widget);
updateWidget(widget);
connect(widget, &TargetSetupWidget::selectedToggled,
this, &TargetSetupPage::kitSelectionChanged);
@@ -601,8 +609,6 @@ void TargetSetupPage::removeAdditionalWidgets(QLayout *layout)
void TargetSetupPage::updateWidget(TargetSetupWidget *widget)
{
QTC_ASSERT(widget, return );
widget->setKitSelected(widget->isEnabled() && m_preferredPredicate
&& m_preferredPredicate(widget->kit()));
widget->update(m_requiredPredicate);
}

View File

@@ -118,6 +118,7 @@ private:
void setupWidgets(const QString &filterText = QString());
void reset();
void setInitialCheckState(Internal::TargetSetupWidget *widget);
Internal::TargetSetupWidget *widget(Kit *k, Internal::TargetSetupWidget *fallback = nullptr) const
{ return widget(k->id(), fallback); }