diff options
Diffstat (limited to 'src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp')
-rw-r--r-- | src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp index 3aacc1bde2..b999cc31d8 100644 --- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp +++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp @@ -341,18 +341,32 @@ void Qt4ProjectConfigWidget::updateImportLabel() } } - QString sourceDirectory = - m_buildConfiguration->target()->project()->projectDirectory(); - if (!sourceDirectory.endsWith('/')) - sourceDirectory.append('/'); - bool invalidBuildDirectory = m_buildConfiguration->shadowBuild() - && m_buildConfiguration->buildDirectory().startsWith(sourceDirectory); - - if (invalidBuildDirectory) { + QString buildDirectory = m_buildConfiguration->target()->project()->projectDirectory();; + if (m_buildConfiguration->shadowBuild()) + buildDirectory = m_buildConfiguration->buildDirectory(); + QList<ProjectExplorer::Task> issues = m_buildConfiguration->qtVersion()->reportIssues(m_buildConfiguration->target()->project()->file()->fileName(), + buildDirectory); + + if (!issues.isEmpty()) { m_ui->problemLabel->setVisible(true); m_ui->warningLabel->setVisible(true); m_ui->importLabel->setVisible(visible); - m_ui->problemLabel->setText(tr("Building in subdirectories of the source directory is not supported by qmake.")); + QString text = "<nobr>"; + foreach (const ProjectExplorer::Task &task, issues) { + QString type; + switch (task.type) { + case ProjectExplorer::Task::Error: + type = tr("Error: "); + break; + case ProjectExplorer::Task::Warning: + type = tr("Warning: "); + break; + } + if (!text.endsWith(QLatin1String("br>"))) + text.append(QLatin1String("<br>")); + text.append(type + task.description); + } + m_ui->problemLabel->setText(text); } else if (targetMatches) { m_ui->problemLabel->setVisible(false); m_ui->warningLabel->setVisible(false); |