From c4b5b32601649f190edd64647e529c74b1300af2 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Fri, 14 Dec 2012 16:05:15 +0100 Subject: [PATCH] QmlProject: Choose initial kits matching selected wizard This follows the same pattern as the qt4project wizard. It's ugly code. Task-number: QTCREATORBUG-8424 Change-Id: I89909b34c371b17d32d5268c32b90e3408446a08 Reviewed-by: Tobias Hunger Reviewed-by: Kai Koehne --- .../qmlprojectapplicationwizard.cpp | 34 ++++++++++++++++--- .../qmlprojectapplicationwizard.h | 2 ++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp b/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp index 338f9953460..3f97040201c 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp @@ -30,11 +30,17 @@ #include "qmlprojectapplicationwizard.h" #include "qmlprojectconstants.h" +#include "qmlprojectmanager.h" +#include "qmlproject.h" #include +#include #include +#include #include +#include #include +#include #include @@ -130,9 +136,9 @@ Core::GeneratedFiles QmlProjectApplicationWizard::generateFiles(const QWizard *w const QString projectName = wizard->projectName(); const QString projectPath = wizard->path() + QLatin1Char('/') + projectName; - const QString creatorFileName = Core::BaseFileWizard::buildFileName(projectPath, - projectName, - QLatin1String("qmlproject")); + m_creatorFileName = Core::BaseFileWizard::buildFileName(projectPath, + projectName, + QLatin1String("qmlproject")); const QString mainFileName = Core::BaseFileWizard::buildFileName(projectPath, projectName, @@ -197,7 +203,7 @@ Core::GeneratedFiles QmlProjectApplicationWizard::generateFiles(const QWizard *w << " // importPaths: [ \"../exampleplugin\" ]" << endl << "}" << endl; } - Core::GeneratedFile generatedCreatorFile(creatorFileName); + Core::GeneratedFile generatedCreatorFile(m_creatorFileName); generatedCreatorFile.setContents(projectContents); generatedCreatorFile.setAttributes(Core::GeneratedFile::OpenProjectAttribute); @@ -208,8 +214,28 @@ Core::GeneratedFiles QmlProjectApplicationWizard::generateFiles(const QWizard *w return files; } +void QmlProjectApplicationWizard::writeUserFile(const QString &fileName) const +{ + Manager *manager = ExtensionSystem::PluginManager::getObject(); + + QmlProject *pro = new QmlProject(manager, fileName); + Core::FeatureSet features = Core::FeatureSet(QtSupport::Constants::FEATURE_QT_QUICK_1); + if (m_projectType == QtQuick2Project) + features = Core::FeatureSet(QtSupport::Constants::FEATURE_QT_QUICK_2); + QtSupport::QtVersionKitMatcher featureMatcher(features); + QList kits = ProjectExplorer::KitManager::instance()->kits(); + foreach (ProjectExplorer::Kit *k, kits) + if (featureMatcher.matches(k) + && pro->supportsKit(k, 0)) // checks for desktop device + pro->addTarget(pro->createTarget(k)); + + pro->saveSettings(); + delete pro; +} + bool QmlProjectApplicationWizard::postGenerateFiles(const QWizard *, const Core::GeneratedFiles &l, QString *errorMessage) { + writeUserFile(m_creatorFileName); return ProjectExplorer::CustomProjectWizard::postGenerateOpen(l, errorMessage); } diff --git a/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.h b/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.h index 76b9c84abde..a451c37d5f0 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.h +++ b/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.h @@ -70,6 +70,8 @@ protected: virtual bool postGenerateFiles(const QWizard *w, const Core::GeneratedFiles &l, QString *errorMessage); private: + void writeUserFile(const QString &fileName) const; + mutable QString m_creatorFileName; const ProjectType m_projectType; };