From a552bc8b2584df7e585e67e40c080c2953dfd0c1 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Thu, 24 Feb 2011 12:33:01 +0100
Subject: [PATCH] Do not create a widget if no valid qt version was found

---
 .../qt-desktop/qt4desktoptargetfactory.cpp             |  9 +++++++--
 src/plugins/qt4projectmanager/qt4target.cpp            | 10 +++++++---
 src/plugins/qt4projectmanager/qt4target.h              |  3 ++-
 3 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
index 776ace2b51f..7c458ab1a8e 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
@@ -148,8 +148,13 @@ QList<BuildConfigurationInfo> Qt4DesktopTargetFactory::availableBuildConfigurati
 
 Qt4TargetSetupWidget *Qt4DesktopTargetFactory::createTargetSetupWidget(const QString &id, const QString &proFilePath, const QtVersionNumber &number, bool importEnabled, QList<BuildConfigurationInfo> importInfos)
 {
-    Qt4DefaultTargetSetupWidget *widget = new Qt4DefaultTargetSetupWidget(this, id, proFilePath, number, importEnabled, importInfos);
-    widget->setShadowBuildCheckBoxVisible(true);
+    Qt4DefaultTargetSetupWidget *widget
+            = static_cast<Qt4DefaultTargetSetupWidget *>(
+                Qt4BaseTargetFactory::createTargetSetupWidget(id,  proFilePath,
+                                                              number,  importEnabled,
+                                                              importInfos));
+    if (widget)
+        widget->setShadowBuildCheckBoxVisible(true);
     return widget;
 }
 
diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp
index 1df0a27e7f7..db5653702e4 100644
--- a/src/plugins/qt4projectmanager/qt4target.cpp
+++ b/src/plugins/qt4projectmanager/qt4target.cpp
@@ -79,7 +79,10 @@ Qt4TargetSetupWidget *Qt4BaseTargetFactory::createTargetSetupWidget(const QStrin
                                                                     bool importEnabled,
                                                                     QList<BuildConfigurationInfo> importInfos)
 {
-    return new Qt4DefaultTargetSetupWidget(this, id, proFilePath, number, importEnabled, importInfos);
+    QList<BuildConfigurationInfo> infos = this->availableBuildConfigurations(id, proFilePath, number);
+    if (infos.isEmpty())
+        return 0;
+    return new Qt4DefaultTargetSetupWidget(this, id, proFilePath, infos, number, importEnabled, importInfos);
 }
 
 Qt4BaseTarget *Qt4BaseTargetFactory::create(ProjectExplorer::Project *parent, const QString &id, Qt4TargetSetupWidget *widget)
@@ -279,9 +282,10 @@ Qt4TargetSetupWidget::~Qt4TargetSetupWidget()
 Qt4DefaultTargetSetupWidget::Qt4DefaultTargetSetupWidget(Qt4BaseTargetFactory *factory,
                                                          const QString &id,
                                                          const QString &proFilePath,
+                                                         const QList<BuildConfigurationInfo> &infos,
                                                          const QtVersionNumber &minimumQtVersion,
                                                          bool importEnabled,
-                                                         QList<BuildConfigurationInfo> importInfos)
+                                                         const QList<BuildConfigurationInfo> &importInfos)
     : Qt4TargetSetupWidget(),
       m_id(id),
       m_factory(factory),
@@ -370,7 +374,7 @@ Qt4DefaultTargetSetupWidget::Qt4DefaultTargetSetupWidget(Qt4BaseTargetFactory *f
 
     setupImportWidgets();
 
-    setBuildConfigurationInfos(factory->availableBuildConfigurations(id, proFilePath, minimumQtVersion));
+    setBuildConfigurationInfos(infos);
 
     if (!m_importInfos.isEmpty())
         m_detailsWidget->setState(Utils::DetailsWidget::Expanded);
diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h
index cfc1e53249e..5cdf60aff3e 100644
--- a/src/plugins/qt4projectmanager/qt4target.h
+++ b/src/plugins/qt4projectmanager/qt4target.h
@@ -185,9 +185,10 @@ public:
     Qt4DefaultTargetSetupWidget(Qt4BaseTargetFactory *factory,
                                 const QString &id,
                                 const QString &proFilePath,
+                                const QList<BuildConfigurationInfo> &info,
                                 const QtVersionNumber &minimumQtVersion,
                                 bool importEnabled,
-                                QList<BuildConfigurationInfo> importInfos);
+                                const QList<BuildConfigurationInfo> &importInfos);
     ~Qt4DefaultTargetSetupWidget();
     bool isTargetSelected() const;
     void setTargetSelected(bool b);
-- 
GitLab