diff --git a/src/plugins/qmakeprojectmanager/wizards/qtquickapp.cpp b/src/plugins/qmakeprojectmanager/wizards/qtquickapp.cpp index f64789053f1..931c214ab30 100644 --- a/src/plugins/qmakeprojectmanager/wizards/qtquickapp.cpp +++ b/src/plugins/qmakeprojectmanager/wizards/qtquickapp.cpp @@ -31,6 +31,8 @@ #include #include +#include +#include #include #include @@ -173,6 +175,12 @@ class TemplateInfoList public: TemplateInfoList() { + QSet availablePlugins; + foreach (ExtensionSystem::PluginSpec *s, ExtensionSystem::PluginManager::plugins()) { + if (s->state() == ExtensionSystem::PluginSpec::Running && !s->hasError()) + availablePlugins += s->name(); + } + QMultiMap multiMap; foreach (const QString &templateName, templateNames()) { const QString templatePath = templateRootDirectory() + templateName; @@ -185,7 +193,17 @@ public: info.templateName = templateName; info.templatePath = templatePath; QXmlStreamReader reader(&xmlFile); - if (parseTemplateXml(reader, &info)) + if (!parseTemplateXml(reader, &info)) + continue; + + bool ok = true; + foreach (const QString &neededPlugin, info.requiredPlugins) { + if (!availablePlugins.contains(neededPlugin)) { + ok = false; + break; + } + } + if (ok) multiMap.insert(info.priority, info); } m_templateInfoList = multiMap.values(); diff --git a/src/plugins/qmakeprojectmanager/wizards/qtquickappwizardpages.cpp b/src/plugins/qmakeprojectmanager/wizards/qtquickappwizardpages.cpp index 78451eaf54d..1dd36a63ef0 100644 --- a/src/plugins/qmakeprojectmanager/wizards/qtquickappwizardpages.cpp +++ b/src/plugins/qmakeprojectmanager/wizards/qtquickappwizardpages.cpp @@ -30,8 +30,6 @@ #include "qtquickappwizardpages.h" #include -#include -#include #include #include @@ -58,23 +56,8 @@ QtQuickComponentSetPage::QtQuickComponentSetPage(QWidget *parent) QLabel *label = new QLabel(tr("Qt Quick component set:"), this); d->m_versionComboBox = new QComboBox(this); - QSet availablePlugins; - foreach (ExtensionSystem::PluginSpec *s, ExtensionSystem::PluginManager::plugins()) { - if (s->state() == ExtensionSystem::PluginSpec::Running && !s->hasError()) - availablePlugins += s->name(); - } - - foreach (const TemplateInfo &templateInfo, QtQuickApp::templateInfos()) { - bool ok = true; - foreach (const QString &neededPlugin, templateInfo.requiredPlugins) { - if (!availablePlugins.contains(neededPlugin)) { - ok = false; - break; - } - } - if (ok) - d->m_versionComboBox->addItem(templateInfo.displayName); - } + foreach (const TemplateInfo &templateInfo, QtQuickApp::templateInfos()) + d->m_versionComboBox->addItem(templateInfo.displayName); l->addWidget(label); l->addWidget(d->m_versionComboBox);