diff --git a/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp b/src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp index 338f99534607158f74ba91d8263fdbc071b89704..3f97040201ce7eee4f041754fe7fc78284eb58f3 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 <app/app_version.h> +#include <extensionsystem/pluginmanager.h> #include <projectexplorer/customwizard/customwizard.h> +#include <projectexplorer/kitmanager.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/target.h> #include <qtsupport/qtsupportconstants.h> +#include <qtsupport/qtkitinformation.h> #include <QIcon> @@ -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<Manager>(); + + 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<ProjectExplorer::Kit *> 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 76b9c84abde2a4bb02106cd32bec4c303f7706fc..a451c37d5f060e04bd81bd1dbe50e264f5ba0ced 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; };