ProjectExplorer: Merge the two update functions in TargetSetupWidget

It was very confusing that we had two different functions that acted on
kit updates independently.

Change-Id: I4801b284c51cab1527324ac9a9f244d9fe9900c3
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2019-08-22 14:54:31 +02:00
parent 0d11d880ca
commit 5f924cea2a
3 changed files with 6 additions and 21 deletions

View File

@@ -603,7 +603,7 @@ void TargetSetupPage::updateWidget(TargetSetupWidget *widget)
QTC_ASSERT(widget, return ); QTC_ASSERT(widget, return );
widget->setKitSelected(widget->isEnabled() && m_preferredPredicate widget->setKitSelected(widget->isEnabled() && m_preferredPredicate
&& m_preferredPredicate(widget->kit())); && m_preferredPredicate(widget->kit()));
widget->updateStatus(m_requiredPredicate); widget->update(m_requiredPredicate);
} }
bool TargetSetupPage::isUsable(const Kit *kit) const bool TargetSetupPage::isUsable(const Kit *kit) const

View File

@@ -77,8 +77,6 @@ TargetSetupWidget::TargetSetupWidget(Kit *k, const FilePath &projectPath) :
panelLayout->addWidget(m_manageButton); panelLayout->addWidget(m_manageButton);
m_detailsWidget->setToolWidget(panel); m_detailsWidget->setToolWidget(panel);
handleKitUpdate(m_kit);
auto widget = new QWidget; auto widget = new QWidget;
auto layout = new QVBoxLayout; auto layout = new QVBoxLayout;
widget->setLayout(layout); widget->setLayout(layout);
@@ -100,9 +98,6 @@ TargetSetupWidget::TargetSetupWidget(Kit *k, const FilePath &projectPath) :
connect(m_detailsWidget, &Utils::DetailsWidget::checked, connect(m_detailsWidget, &Utils::DetailsWidget::checked,
this, &TargetSetupWidget::targetCheckBoxToggled); this, &TargetSetupWidget::targetCheckBoxToggled);
connect(KitManager::instance(), &KitManager::kitUpdated,
this, &TargetSetupWidget::handleKitUpdate);
connect(m_manageButton, &QAbstractButton::clicked, this, &TargetSetupWidget::manageKit); connect(m_manageButton, &QAbstractButton::clicked, this, &TargetSetupWidget::manageKit);
} }
@@ -226,8 +221,10 @@ void TargetSetupWidget::expandWidget()
m_detailsWidget->setState(Utils::DetailsWidget::Expanded); m_detailsWidget->setState(Utils::DetailsWidget::Expanded);
} }
void TargetSetupWidget::updateStatus(const Kit::Predicate &predicate) void TargetSetupWidget::update(const Kit::Predicate &predicate)
{ {
m_detailsWidget->setSummaryText(kit()->displayName());
// Kits that we deem invalid get a warning icon, but users can still select them, // Kits that we deem invalid get a warning icon, but users can still select them,
// e.g. in case we misdetected an ABI mismatch. // e.g. in case we misdetected an ABI mismatch.
// Kits that don't fulfill the project predicate are not selectable, because we cannot // Kits that don't fulfill the project predicate are not selectable, because we cannot
@@ -238,9 +235,8 @@ void TargetSetupWidget::updateStatus(const Kit::Predicate &predicate)
"the project's prerequisites.")); "the project's prerequisites."));
return; return;
} }
if (!kit()->isValid())
m_detailsWidget->setIcon(Icons::CRITICAL.icon());
setEnabled(true); setEnabled(true);
m_detailsWidget->setIcon(kit()->isValid() ? kit()->icon() : Icons::CRITICAL.icon());
m_detailsWidget->setToolTip(m_kit->toHtml()); m_detailsWidget->setToolTip(m_kit->toHtml());
} }
@@ -254,15 +250,6 @@ const QList<BuildInfo> TargetSetupWidget::buildInfoList(const Kit *k, const File
return {info}; return {info};
} }
void TargetSetupWidget::handleKitUpdate(Kit *k)
{
if (k != m_kit)
return;
m_detailsWidget->setIcon(k->icon());
m_detailsWidget->setSummaryText(k->displayName());
}
const QList<BuildInfo> TargetSetupWidget::selectedBuildInfoList() const const QList<BuildInfo> TargetSetupWidget::selectedBuildInfoList() const
{ {
QList<BuildInfo> result; QList<BuildInfo> result;

View File

@@ -70,7 +70,7 @@ public:
const QList<BuildInfo> selectedBuildInfoList() const; const QList<BuildInfo> selectedBuildInfoList() const;
void setProjectPath(const Utils::FilePath &projectPath); void setProjectPath(const Utils::FilePath &projectPath);
void expandWidget(); void expandWidget();
void updateStatus(const Kit::Predicate &predicate); void update(const Kit::Predicate &predicate);
signals: signals:
void selectedToggled() const; void selectedToggled() const;
@@ -78,8 +78,6 @@ signals:
private: private:
static const QList<BuildInfo> buildInfoList(const Kit *k, const Utils::FilePath &projectPath); static const QList<BuildInfo> buildInfoList(const Kit *k, const Utils::FilePath &projectPath);
void handleKitUpdate(ProjectExplorer::Kit *k);
void checkBoxToggled(bool b); void checkBoxToggled(bool b);
void pathChanged(); void pathChanged();
void targetCheckBoxToggled(bool b); void targetCheckBoxToggled(bool b);