diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp
index aabb2d33a64..e9572718f27 100644
--- a/src/plugins/projectexplorer/targetsettingspanel.cpp
+++ b/src/plugins/projectexplorer/targetsettingspanel.cpp
@@ -117,18 +117,11 @@ private:
Core::ModeManager::activateMode(Core::Constants::MODE_EDIT);
}
- void kitUpdated(ProjectExplorer::Kit *k)
- {
- if (k == KitManager::defaultKit())
- updateNoteText();
- }
-
void completeChanged()
{
m_configureButton->setEnabled(m_targetSetupPage && m_targetSetupPage->isComplete());
}
- void updateNoteText();
void addTargetSetupPage();
Project * const m_project;
@@ -161,41 +154,6 @@ TargetSetupPageWrapper::TargetSetupPageWrapper(Project *project)
this, &TargetSetupPageWrapper::done);
}
-void TargetSetupPageWrapper::updateNoteText()
-{
- if (!m_targetSetupPage)
- return;
-
- Kit *k = KitManager::defaultKit();
-
- QString text;
- bool showHint = false;
- if (!k) {
- text = tr("The project %1 is not yet configured.
"
- "%2 cannot parse the project, because no kit "
- "has been set up.")
- .arg(m_project->displayName(), Core::Constants::IDE_DISPLAY_NAME);
- showHint = true;
- } else if (k->isValid()) {
- text = tr("The project %1 is not yet configured.
"
- "%2 uses the kit %3 to parse the project.")
- .arg(m_project->displayName())
- .arg(Core::Constants::IDE_DISPLAY_NAME)
- .arg(k->displayName());
- showHint = false;
- } else {
- text = tr("The project %1 is not yet configured.
"
- "%2 uses the invalid kit %3 to parse the project.")
- .arg(m_project->displayName())
- .arg(Core::Constants::IDE_DISPLAY_NAME)
- .arg(k->displayName());
- showHint = true;
- }
-
- m_targetSetupPage->setNoteText(text);
- m_targetSetupPage->showOptionsHint(showHint);
-}
-
void TargetSetupPageWrapper::addTargetSetupPage()
{
m_targetSetupPage = new TargetSetupPage(this);
@@ -207,16 +165,11 @@ void TargetSetupPageWrapper::addTargetSetupPage()
m_targetSetupPage->initializePage();
m_targetSetupPage->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
m_setupPageContainer->addWidget(m_targetSetupPage);
- updateNoteText();
completeChanged();
connect(m_targetSetupPage, &QWizardPage::completeChanged,
this, &TargetSetupPageWrapper::completeChanged);
- connect(KitManager::instance(), &KitManager::defaultkitChanged,
- this, &TargetSetupPageWrapper::updateNoteText);
- connect(KitManager::instance(), &KitManager::kitUpdated,
- this, &TargetSetupPageWrapper::kitUpdated);
}
//
diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp
index 7f45cf69b71..2895a2983e5 100644
--- a/src/plugins/projectexplorer/targetsetuppage.cpp
+++ b/src/plugins/projectexplorer/targetsetuppage.cpp
@@ -86,18 +86,13 @@ public:
QWidget *scrollAreaWidget;
QScrollArea *scrollArea;
QLabel *headerLabel;
- QLabel *descriptionLabel;
QLabel *noValidKitLabel;
- QLabel *optionHintLabel;
QCheckBox *allKitsCheckBox;
FancyLineEdit *kitFilterLineEdit;
void setupUi(TargetSetupPage *q)
{
auto setupTargetPage = new QWidget(q);
- descriptionLabel = new QLabel(setupTargetPage);
- descriptionLabel->setWordWrap(true);
- descriptionLabel->setVisible(false);
headerLabel = new QLabel(setupTargetPage);
headerLabel->setWordWrap(true);
@@ -105,16 +100,11 @@ public:
noValidKitLabel = new QLabel(setupTargetPage);
noValidKitLabel->setWordWrap(true);
- noValidKitLabel->setText(TargetSetupPage::tr("No valid kits found."));
-
-
- optionHintLabel = new QLabel(setupTargetPage);
- optionHintLabel->setWordWrap(true);
- optionHintLabel->setText(TargetSetupPage::tr(
- "Please add a kit in the options "
- "or via the maintenance tool of the SDK."));
- optionHintLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
- optionHintLabel->setVisible(false);
+ noValidKitLabel->setText(TargetSetupPage::tr("No suitable kits found.
"
+ "Please add a kit in the options "
+ "or via the maintenance tool of the SDK."));
+ noValidKitLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
+ noValidKitLabel->setVisible(false);
allKitsCheckBox = new QCheckBox(setupTargetPage);
allKitsCheckBox->setTristate(true);
@@ -146,10 +136,8 @@ public:
auto verticalLayout_2 = new QVBoxLayout(setupTargetPage);
verticalLayout_2->addWidget(headerLabel);
- verticalLayout_2->addWidget(descriptionLabel);
verticalLayout_2->addWidget(kitFilterLineEdit);
verticalLayout_2->addWidget(noValidKitLabel);
- verticalLayout_2->addWidget(optionHintLabel);
verticalLayout_2->addWidget(allKitsCheckBox);
verticalLayout_2->addWidget(centralWidget);
verticalLayout_2->addWidget(scrollAreaWidget);
@@ -158,7 +146,7 @@ public:
verticalLayout_3->setContentsMargins(0, 0, 0, -1);
verticalLayout_3->addWidget(setupTargetPage);
- QObject::connect(optionHintLabel, &QLabel::linkActivated,
+ QObject::connect(noValidKitLabel, &QLabel::linkActivated,
q, &TargetSetupPage::openOptions);
QObject::connect(allKitsCheckBox, &QAbstractButton::clicked,
@@ -213,6 +201,8 @@ TargetSetupPage::TargetSetupPage(QWidget *parent) :
connect(km, &KitManager::kitUpdated, this, &TargetSetupPage::handleKitUpdate);
connect(m_importWidget, &ImportWidget::importFrom,
this, [this](const FilePath &dir) { import(dir); });
+ connect(KitManager::instance(), &KitManager::kitsChanged,
+ this, &TargetSetupPage::updateVisibility);
setProperty(SHORT_TITLE_PROPERTY, tr("Kits"));
}
@@ -224,6 +214,7 @@ void TargetSetupPage::initializePage()
setupWidgets();
setupImports();
selectAtLeastOneKit();
+ updateVisibility();
}
void TargetSetupPage::setRequiredKitPredicate(const Kit::Predicate &predicate)
@@ -348,18 +339,6 @@ bool TargetSetupPage::importLineEditHasFocus() const
return m_importWidget->ownsReturnKey();
}
-void TargetSetupPage::setNoteText(const QString &text)
-{
- m_ui->descriptionLabel->setText(text);
- m_ui->descriptionLabel->setVisible(!text.isEmpty());
-}
-
-void TargetSetupPage::showOptionsHint(bool show)
-{
- m_forceOptionHint = show;
- updateVisibility();
-}
-
void TargetSetupPage::setupImports()
{
if (!m_importer || m_projectPath.isEmpty())
@@ -446,10 +425,9 @@ void TargetSetupPage::updateVisibility()
m_ui->scrollAreaWidget->setVisible(m_baseLayout == m_ui->scrollArea->widget()->layout());
m_ui->centralWidget->setVisible(m_baseLayout == m_ui->centralWidget->layout());
- bool hasKits = m_widgets.size() > 0;
- m_ui->noValidKitLabel->setVisible(!hasKits);
- m_ui->optionHintLabel->setVisible(m_forceOptionHint || !hasKits);
- m_ui->allKitsCheckBox->setVisible(hasKits);
+ const bool hasUsableKits = KitManager::kit([this](const Kit *k) { return isUsable(k); });
+ m_ui->noValidKitLabel->setVisible(!hasUsableKits);
+ m_ui->allKitsCheckBox->setVisible(hasUsableKits);
emit completeChanged();
}
diff --git a/src/plugins/projectexplorer/targetsetuppage.h b/src/plugins/projectexplorer/targetsetuppage.h
index 7ac07015c69..c0814a1ce48 100644
--- a/src/plugins/projectexplorer/targetsetuppage.h
+++ b/src/plugins/projectexplorer/targetsetuppage.h
@@ -81,10 +81,6 @@ public:
bool setupProject(Project *project);
QList selectedKits() const;
- /// Overrides the summary text of the targetsetuppage
- void setNoteText(const QString &text);
- void showOptionsHint(bool show);
-
void openOptions();
void changeAllKitsSelections();
@@ -139,7 +135,6 @@ private:
QSpacerItem *m_spacer;
QList m_potentialWidgets;
- bool m_forceOptionHint = false;
bool m_widgetsWereSetUp = false;
};