From 5f924cea2ac2e2d7263558bf77da281e521aaa06 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 22 Aug 2019 14:54:31 +0200 Subject: [PATCH] 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 --- .../projectexplorer/targetsetuppage.cpp | 2 +- .../projectexplorer/targetsetupwidget.cpp | 21 ++++--------------- .../projectexplorer/targetsetupwidget.h | 4 +--- 3 files changed, 6 insertions(+), 21 deletions(-) diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp index d827175d55f..78c8f442730 100644 --- a/src/plugins/projectexplorer/targetsetuppage.cpp +++ b/src/plugins/projectexplorer/targetsetuppage.cpp @@ -603,7 +603,7 @@ void TargetSetupPage::updateWidget(TargetSetupWidget *widget) QTC_ASSERT(widget, return ); widget->setKitSelected(widget->isEnabled() && m_preferredPredicate && m_preferredPredicate(widget->kit())); - widget->updateStatus(m_requiredPredicate); + widget->update(m_requiredPredicate); } bool TargetSetupPage::isUsable(const Kit *kit) const diff --git a/src/plugins/projectexplorer/targetsetupwidget.cpp b/src/plugins/projectexplorer/targetsetupwidget.cpp index a0a994a904f..db738a105dd 100644 --- a/src/plugins/projectexplorer/targetsetupwidget.cpp +++ b/src/plugins/projectexplorer/targetsetupwidget.cpp @@ -77,8 +77,6 @@ TargetSetupWidget::TargetSetupWidget(Kit *k, const FilePath &projectPath) : panelLayout->addWidget(m_manageButton); m_detailsWidget->setToolWidget(panel); - handleKitUpdate(m_kit); - auto widget = new QWidget; auto layout = new QVBoxLayout; widget->setLayout(layout); @@ -100,9 +98,6 @@ TargetSetupWidget::TargetSetupWidget(Kit *k, const FilePath &projectPath) : connect(m_detailsWidget, &Utils::DetailsWidget::checked, this, &TargetSetupWidget::targetCheckBoxToggled); - connect(KitManager::instance(), &KitManager::kitUpdated, - this, &TargetSetupWidget::handleKitUpdate); - connect(m_manageButton, &QAbstractButton::clicked, this, &TargetSetupWidget::manageKit); } @@ -226,8 +221,10 @@ void TargetSetupWidget::expandWidget() 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, // e.g. in case we misdetected an ABI mismatch. // 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.")); return; } - if (!kit()->isValid()) - m_detailsWidget->setIcon(Icons::CRITICAL.icon()); setEnabled(true); + m_detailsWidget->setIcon(kit()->isValid() ? kit()->icon() : Icons::CRITICAL.icon()); m_detailsWidget->setToolTip(m_kit->toHtml()); } @@ -254,15 +250,6 @@ const QList TargetSetupWidget::buildInfoList(const Kit *k, const File return {info}; } -void TargetSetupWidget::handleKitUpdate(Kit *k) -{ - if (k != m_kit) - return; - - m_detailsWidget->setIcon(k->icon()); - m_detailsWidget->setSummaryText(k->displayName()); -} - const QList TargetSetupWidget::selectedBuildInfoList() const { QList result; diff --git a/src/plugins/projectexplorer/targetsetupwidget.h b/src/plugins/projectexplorer/targetsetupwidget.h index 43165017dd3..8966e491851 100644 --- a/src/plugins/projectexplorer/targetsetupwidget.h +++ b/src/plugins/projectexplorer/targetsetupwidget.h @@ -70,7 +70,7 @@ public: const QList selectedBuildInfoList() const; void setProjectPath(const Utils::FilePath &projectPath); void expandWidget(); - void updateStatus(const Kit::Predicate &predicate); + void update(const Kit::Predicate &predicate); signals: void selectedToggled() const; @@ -78,8 +78,6 @@ signals: private: static const QList buildInfoList(const Kit *k, const Utils::FilePath &projectPath); - void handleKitUpdate(ProjectExplorer::Kit *k); - void checkBoxToggled(bool b); void pathChanged(); void targetCheckBoxToggled(bool b);