diff --git a/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp b/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp index 592f79dd281..a824a7353d7 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp @@ -295,6 +295,17 @@ void JsonSummaryPage::updateProjectData(FolderNode *node) m_wizard->setValue(QLatin1String(KEY_QT_KEYWORDS_ENABLED), qtKeyWordsEnabled); updateFileList(); + setStatusVisible(false); + if (node && !m_fileList.isEmpty()) { + const FilePath parentFolder = node->directory(); + const FilePath subProjectFolder = m_fileList.first().file.filePath().parentDir(); + if (!subProjectFolder.isChildOf(parentFolder)) { + setStatus(Tr::tr("Subproject \"%1\" outside of \"%2\".") + .arg(subProjectFolder.toUserOutput()).arg(parentFolder.toUserOutput()), + InfoLabel::Warning); + setStatusVisible(true); + } + } } } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/projectwizardpage.cpp b/src/plugins/projectexplorer/projectwizardpage.cpp index 4fb82d1f0ba..47b764d1db1 100644 --- a/src/plugins/projectexplorer/projectwizardpage.cpp +++ b/src/plugins/projectexplorer/projectwizardpage.cpp @@ -275,6 +275,8 @@ ProjectWizardPage::ProjectWizardPage(QWidget *parent) m_projectLabel->setObjectName("projectLabel"); m_projectComboBox = new Utils::TreeViewComboBox; m_projectComboBox->setObjectName("projectComboBox"); + m_infoLabel = new Utils::InfoLabel; + m_infoLabel->setVisible(false); m_additionalInfo = new QLabel; m_addToVersionControlLabel = new QLabel(Tr::tr("Add to &version control:")); m_addToVersionControlComboBox = new QComboBox; @@ -295,6 +297,7 @@ ProjectWizardPage::ProjectWizardPage(QWidget *parent) Column { Form { m_projectLabel, m_projectComboBox, br, + m_infoLabel, br, empty, m_additionalInfo, br, m_addToVersionControlLabel, m_addToVersionControlComboBox, m_vcsManageButton, br, }, @@ -610,4 +613,15 @@ void ProjectWizardPage::setProjectUiVisible(bool visible) m_projectComboBox->setVisible(visible); } +void ProjectWizardPage::setStatus(const QString &text, InfoLabel::InfoType type) +{ + m_infoLabel->setText(text); + m_infoLabel->setType(type); +} + +void ProjectWizardPage::setStatusVisible(bool visible) +{ + m_infoLabel->setVisible(visible); +} + } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/projectwizardpage.h b/src/plugins/projectexplorer/projectwizardpage.h index c111b7d8f71..f6926c46c50 100644 --- a/src/plugins/projectexplorer/projectwizardpage.h +++ b/src/plugins/projectexplorer/projectwizardpage.h @@ -9,6 +9,7 @@ #include #include +#include #include #include @@ -57,6 +58,8 @@ public: void initializeVersionControls(); void setProjectUiVisible(bool visible); + void setStatus(const QString &text, Utils::InfoLabel::InfoType type); + void setStatusVisible(bool visible); signals: void projectNodeChanged(); @@ -85,6 +88,7 @@ private: QLabel *m_projectLabel; Utils::TreeViewComboBox *m_projectComboBox; + Utils::InfoLabel *m_infoLabel; QLabel *m_additionalInfo; QLabel *m_addToVersionControlLabel; QComboBox *m_addToVersionControlComboBox;