From e1256f11f48dd38db7056040d2ccc735fbee3c2b Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@nokia.com>
Date: Fri, 24 Jun 2011 11:25:18 +0200
Subject: [PATCH] QtQuickApplication wizard: Don't show Harmattan targets for
 symbian components

Change-Id: Ia5108c04d7898567ece7b5498359c88210ed2682
Reviewed-on: http://codereview.qt.nokia.com/695
Reviewed-by: Alessandro Portale <alessandro.portale@nokia.com>
---
 .../qt-desktop/qt4desktoptargetfactory.cpp               | 8 ++++++--
 .../qt-desktop/qt4simulatortargetfactory.cpp             | 9 +++++++--
 .../qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp | 6 +++++-
 .../qt4projectmanager/qt4projectmanagerconstants.h       | 3 +++
 .../qt4projectmanager/wizards/qtquickappwizard.cpp       | 3 +++
 5 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
index c708daa32fe..b27b1013939 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
@@ -158,8 +158,12 @@ ProjectExplorer::Target *Qt4DesktopTargetFactory::create(ProjectExplorer::Projec
 
 QSet<QString> Qt4DesktopTargetFactory::targetFeatures(const QString & /*id*/) const
 {
-    return QSet<QString>() << Constants::DESKTOP_TARGETFEATURE_ID
-                           << Constants::SHADOWBUILD_TARGETFEATURE_ID;
+    QSet<QString> features;
+    features << Constants::DESKTOP_TARGETFEATURE_ID;
+    features << Constants::SHADOWBUILD_TARGETFEATURE_ID;
+    // how to check check whether they component set is really installed?
+    features << Constants::QTQUICKCOMPONENTS_SYMBIAN_TARGETFEATURE_ID;
+    return features;
 }
 
 ProjectExplorer::Target *Qt4DesktopTargetFactory::create(ProjectExplorer::Project *parent, const QString &id, const QList<BuildConfigurationInfo> &infos)
diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
index fe5178444df..ae0ce9ccb98 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
@@ -125,8 +125,13 @@ ProjectExplorer::Target *Qt4SimulatorTargetFactory::restore(ProjectExplorer::Pro
 
 QSet<QString> Qt4SimulatorTargetFactory::targetFeatures(const QString & /*id*/) const
 {
-    return QSet<QString>() << Constants::MOBILE_TARGETFEATURE_ID
-                           << Constants::SHADOWBUILD_TARGETFEATURE_ID;
+    QSet<QString> features;
+
+    features << Constants::MOBILE_TARGETFEATURE_ID;
+    features << Constants::SHADOWBUILD_TARGETFEATURE_ID;
+    // how to check check whether the component set is really installed?
+    features << Constants::QTQUICKCOMPONENTS_SYMBIAN_TARGETFEATURE_ID;
+    return features;
 }
 
 ProjectExplorer::Target *Qt4SimulatorTargetFactory::create(ProjectExplorer::Project *parent, const QString &id)
diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp
index 5e86f249d05..bb2dca563dc 100644
--- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp
@@ -177,7 +177,11 @@ QList<BuildConfigurationInfo> Qt4SymbianTargetFactory::availableBuildConfigurati
 
 QSet<QString> Qt4SymbianTargetFactory::targetFeatures(const QString & /*id*/) const
 {
-    return QSet<QString>() << Constants::MOBILE_TARGETFEATURE_ID;
+    QSet<QString> features;
+    features << Constants::MOBILE_TARGETFEATURE_ID;
+    // ideally we should check whether they're really installed
+    features << Constants::QTQUICKCOMPONENTS_SYMBIAN_TARGETFEATURE_ID;
+    return features;
 }
 
 ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Project *parent, const QString &id)
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
index 23ae39e175a..5562ebb0419 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
@@ -96,6 +96,9 @@ const char * const QT_SIMULATOR_TARGET_ID = "Qt4ProjectManager.Target.QtSimulato
 const char * const MOBILE_TARGETFEATURE_ID = "Qt4ProjectManager.TargetFeature.Mobile";
 const char * const DESKTOP_TARGETFEATURE_ID = "Qt4ProjectManager.TargetFeature.Desktop";
 const char * const SHADOWBUILD_TARGETFEATURE_ID = "Qt4ProjectManager.TargetFeature.ShadowBuild";
+const char * const QTQUICKCOMPONENTS_SYMBIAN_TARGETFEATURE_ID
+                               = "Qt4ProjectManager.TargetFeature.QtQuickComponentsSymbian";
+
 
 // Tool chains:
 const char * const GCCE_TOOLCHAIN_ID = "Qt4ProjectManager.ToolChain.GCCE";
diff --git a/src/plugins/qt4projectmanager/wizards/qtquickappwizard.cpp b/src/plugins/qt4projectmanager/wizards/qtquickappwizard.cpp
index 74f8d2fac4a..4102c67602f 100644
--- a/src/plugins/qt4projectmanager/wizards/qtquickappwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/qtquickappwizard.cpp
@@ -92,6 +92,9 @@ bool QtQuickAppWizardDialog::validateCurrentPage()
         if (m_componentOptionsPage->componentSet() == QtQuickApp::Symbian10Components) {
             setIgnoreGenericOptionsPage(true);
             targetsPage()->setMinimumQtVersion(QtSupport::QtVersionNumber(4, 7, 3));
+            QSet<QString> requiredFeatures;
+            requiredFeatures << Constants::QTQUICKCOMPONENTS_SYMBIAN_TARGETFEATURE_ID;
+            targetsPage()->setRequiredFeatures(requiredFeatures);
         } else if (m_componentOptionsPage->componentSet() == QtQuickApp::QtQuick11Components) {
             targetsPage()->setMinimumQtVersion(QtSupport::QtVersionNumber(4, 7, 4));
         }
-- 
GitLab