summaryrefslogtreecommitdiff
path: root/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp')
-rw-r--r--src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp32
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);