diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
index 4d9e8fb23c3..f57ffd7961f 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
@@ -114,6 +114,13 @@ void Qt4ProjectConfigWidget::updateDetails()
.arg(QDir::toNativeSeparators(m_buildConfiguration->buildDirectory())));
}
+void Qt4ProjectConfigWidget::setProblemLabel(const QString &text)
+{
+ m_ui->warningLabel->setVisible(!text.isEmpty());
+ m_ui->problemLabel->setVisible(!text.isEmpty());
+ m_ui->problemLabel->setText(text);
+}
+
void Qt4ProjectConfigWidget::environmentChanged()
{
m_ui->shadowBuildDirEdit->setEnvironment(m_buildConfiguration->environment());
@@ -202,22 +209,20 @@ void Qt4ProjectConfigWidget::shadowBuildEdited()
void Qt4ProjectConfigWidget::updateProblemLabel()
{
- bool targetMismatch = false;
- bool incompatibleBuild = false;
- bool allGood = false;
ProjectExplorer::Kit *k = m_buildConfiguration->target()->kit();
const QString proFileName = m_buildConfiguration->target()->project()->document()->fileName();
+ // Check for Qt version:
QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(k);
if (!version) {
- m_ui->problemLabel->setVisible(true);
- m_ui->warningLabel->setVisible(true);
- m_ui->problemLabel->setText(tr("This target cannot build this project since it does not define a "
- "Qt version."));
+ setProblemLabel(tr("This target cannot build this project since it does not define a Qt version."));
return;
}
+ bool targetMismatch = false;
+ bool incompatibleBuild = false;
+ bool allGood = false;
// we only show if we actually have a qmake and makestep
if (m_buildConfiguration->qmakeStep() && m_buildConfiguration->makeStep()) {
QString makefile = m_buildConfiguration->buildDirectory() + QLatin1Char('/');
@@ -244,7 +249,7 @@ void Qt4ProjectConfigWidget::updateProblemLabel()
QString shadowBuildWarning;
if (!version->supportsShadowBuilds() && m_buildConfiguration->shadowBuild()) {
- shadowBuildWarning =tr("The Qt version %1 does not support shadow builds, building might fail.")
+ shadowBuildWarning = tr("The Qt version %1 does not support shadow builds, building might fail.")
.arg(version->displayName())
+ QLatin1String("
");
}
@@ -257,12 +262,7 @@ void Qt4ProjectConfigWidget::updateProblemLabel()
issues = version->reportIssues(proFileName, buildDirectory);
qSort(issues);
- if (issues.isEmpty() && shadowBuildWarning.isEmpty()) {
- m_ui->problemLabel->setVisible(false);
- m_ui->warningLabel->setVisible(false);
- } else {
- m_ui->problemLabel->setVisible(true);
- m_ui->warningLabel->setVisible(true);
+ if (!issues.isEmpty() || !shadowBuildWarning.isEmpty()) {
QString text = QLatin1String("") + shadowBuildWarning;
foreach (const ProjectExplorer::Task &task, issues) {
QString type;
@@ -283,23 +283,23 @@ void Qt4ProjectConfigWidget::updateProblemLabel()
text.append(QLatin1String("
"));
text.append(type + task.description);
}
- m_ui->problemLabel->setText(text);
+ setProblemLabel(text);
+ return;
}
} else if (targetMismatch) {
- m_ui->problemLabel->setVisible(true);
- m_ui->warningLabel->setVisible(true);
- m_ui->problemLabel->setText(shadowBuildWarning + tr("A build for a different project exists in %1, which will be overwritten.",
- "%1 build directory")
- .arg(m_ui->shadowBuildDirEdit->path()));
+ setProblemLabel(shadowBuildWarning + tr("A build for a different project exists in %1, which will be overwritten.",
+ "%1 build directory")
+ .arg(m_ui->shadowBuildDirEdit->path()));
+ return;
} else if (incompatibleBuild) {
- m_ui->warningLabel->setVisible(true);
- m_ui->problemLabel->setVisible(true);
- m_ui->problemLabel->setText(shadowBuildWarning +tr("An incompatible build exists in %1, which will be overwritten.",
- "%1 build directory")
- .arg(m_ui->shadowBuildDirEdit->path()));
+ setProblemLabel(shadowBuildWarning +tr("An incompatible build exists in %1, which will be overwritten.",
+ "%1 build directory")
+ .arg(m_ui->shadowBuildDirEdit->path()));
+ return;
} else if (!shadowBuildWarning.isEmpty()) {
- m_ui->warningLabel->setVisible(true);
- m_ui->problemLabel->setVisible(true);
- m_ui->problemLabel->setText(shadowBuildWarning);
+ setProblemLabel(shadowBuildWarning);
+ return;
}
+
+ setProblemLabel(QString());
}
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.h b/src/plugins/qt4projectmanager/qt4projectconfigwidget.h
index da407c865f3..16d26c13bd8 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.h
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.h
@@ -72,6 +72,7 @@ private slots:
private:
void updateDetails();
+ void setProblemLabel(const QString &text);
Ui::Qt4ProjectConfigWidget *m_ui;
QAbstractButton *m_browseButton;