diff --git a/src/plugins/coreplugin/basefilewizardfactory.cpp b/src/plugins/coreplugin/basefilewizardfactory.cpp index 0da221b12bc..b978a1046b7 100644 --- a/src/plugins/coreplugin/basefilewizardfactory.cpp +++ b/src/plugins/coreplugin/basefilewizardfactory.cpp @@ -80,7 +80,7 @@ static int indexOfFile(const GeneratedFiles &f, const QString &path) */ Utils::Wizard *BaseFileWizardFactory::runWizardImpl(const QString &path, QWidget *parent, - const QString &platform, + Id platform, const QVariantMap &extraValues) { QTC_ASSERT(!path.isEmpty(), return 0); diff --git a/src/plugins/coreplugin/basefilewizardfactory.h b/src/plugins/coreplugin/basefilewizardfactory.h index cdc020f3a86..e1709a957ce 100644 --- a/src/plugins/coreplugin/basefilewizardfactory.h +++ b/src/plugins/coreplugin/basefilewizardfactory.h @@ -62,7 +62,7 @@ public: }; Q_DECLARE_FLAGS(DialogParameterFlags, DialogParameterEnum) - explicit WizardDialogParameters(const QString &defaultPath, const QString &platform, + explicit WizardDialogParameters(const QString &defaultPath, Id platform, const QSet &requiredFeatures, DialogParameterFlags flags, QVariantMap extraValues) : m_defaultPath(defaultPath), @@ -75,7 +75,7 @@ public: QString defaultPath() const { return m_defaultPath; } - QString selectedPlatform() const + Id selectedPlatform() const { return m_selectedPlatform; } QSet requiredFeatures() const @@ -89,7 +89,7 @@ public: private: QString m_defaultPath; - QString m_selectedPlatform; + Id m_selectedPlatform; QSet m_requiredFeatures; DialogParameterFlags m_parameterFlags; QVariantMap m_extraValues; @@ -123,7 +123,7 @@ protected: private: // IWizard - Utils::Wizard *runWizardImpl(const QString &path, QWidget *parent, const QString &platform, + Utils::Wizard *runWizardImpl(const QString &path, QWidget *parent, Id platform, const QVariantMap &extraValues) override; }; diff --git a/src/plugins/coreplugin/dialogs/newdialog.cpp b/src/plugins/coreplugin/dialogs/newdialog.cpp index 5632bbd5f6f..903794dba75 100644 --- a/src/plugins/coreplugin/dialogs/newdialog.cpp +++ b/src/plugins/coreplugin/dialogs/newdialog.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -76,7 +77,7 @@ class PlatformFilterProxyModel : public QSortFilterProxyModel public: PlatformFilterProxyModel(QObject *parent = 0): QSortFilterProxyModel(parent) {} - void setPlatform(const QString& platform) + void setPlatform(Core::Id platform) { m_platform = platform; invalidateFilter(); @@ -95,7 +96,7 @@ public: return true; } private: - QString m_platform; + Core::Id m_platform; }; class TwoLevelProxyModel : public QAbstractProxyModel @@ -270,12 +271,12 @@ void NewDialog::setWizardFactories(QList factories, if (m_dummyIcon.isNull()) m_dummyIcon = Core::Icons::NEWFILE.icon(); - QStringList availablePlatforms = IWizardFactory::allAvailablePlatforms(); - m_ui->comboBox->addItem(tr("All Templates"), QString()); + QSet availablePlatforms = IWizardFactory::allAvailablePlatforms(); + m_ui->comboBox->addItem(tr("All Templates"), Id().toSetting()); - foreach (const QString &platform, availablePlatforms) { + foreach (Id platform, availablePlatforms) { const QString displayNameForPlatform = IWizardFactory::displayNameForPlatform(platform); - m_ui->comboBox->addItem(tr("%1 Templates").arg(displayNameForPlatform), platform); + m_ui->comboBox->addItem(tr("%1 Templates").arg(displayNameForPlatform), platform.toSetting()); } m_ui->comboBox->setCurrentIndex(0); // "All templates" @@ -334,11 +335,10 @@ void NewDialog::showDialog() show(); } -QString NewDialog::selectedPlatform() const +Id NewDialog::selectedPlatform() const { - int index = m_ui->comboBox->currentIndex(); - - return m_ui->comboBox->itemData(index).toString(); + const int index = m_ui->comboBox->currentIndex(); + return Id::fromSetting(m_ui->comboBox->itemData(index)); } bool NewDialog::isRunning() @@ -422,8 +422,9 @@ void NewDialog::currentItemChanged(const QModelIndex &index) if (const IWizardFactory *wizard = factoryOfItem(cat)) { QString desciption = wizard->description(); QStringList displayNamesForSupportedPlatforms; - foreach (const QString &platform, wizard->supportedPlatforms()) + foreach (Id platform, wizard->supportedPlatforms()) displayNamesForSupportedPlatforms << IWizardFactory::displayNameForPlatform(platform); + Utils::sort(displayNamesForSupportedPlatforms); if (!Qt::mightBeRichText(desciption)) desciption.replace(QLatin1Char('\n'), QLatin1String("
")); desciption += QLatin1String("

"); diff --git a/src/plugins/coreplugin/dialogs/newdialog.h b/src/plugins/coreplugin/dialogs/newdialog.h index a8351fbaa95..0cfd30a8343 100644 --- a/src/plugins/coreplugin/dialogs/newdialog.h +++ b/src/plugins/coreplugin/dialogs/newdialog.h @@ -65,7 +65,7 @@ public: void setWizardFactories(QList factories, const QString &defaultLocation, const QVariantMap &extraVariables); void showDialog(); - QString selectedPlatform() const; + Id selectedPlatform() const; static bool isRunning(); diff --git a/src/plugins/coreplugin/featureprovider.h b/src/plugins/coreplugin/featureprovider.h index e0e0d886c40..cb9bad4cd44 100644 --- a/src/plugins/coreplugin/featureprovider.h +++ b/src/plugins/coreplugin/featureprovider.h @@ -47,9 +47,9 @@ class CORE_EXPORT IFeatureProvider public: virtual ~IFeatureProvider() = default; - virtual QSet availableFeatures(const QString &platform) const = 0; - virtual QStringList availablePlatforms() const = 0; - virtual QString displayNameForPlatform(const QString &string) const = 0; + virtual QSet availableFeatures(Id id) const = 0; + virtual QSet availablePlatforms() const = 0; + virtual QString displayNameForPlatform(Id id) const = 0; }; } // namespace Core diff --git a/src/plugins/coreplugin/iwizardfactory.cpp b/src/plugins/coreplugin/iwizardfactory.cpp index bcfe43c6126..18359952d9f 100644 --- a/src/plugins/coreplugin/iwizardfactory.cpp +++ b/src/plugins/coreplugin/iwizardfactory.cpp @@ -250,7 +250,7 @@ QList IWizardFactory::allWizardFactories() connect(newFactory->m_action, &QAction::triggered, newFactory, [newFactory]() { if (!ICore::isNewItemDialogRunning()) { QString path = newFactory->runPath(QString()); - newFactory->runWizard(path, ICore::dialogParent(), QString(), QVariantMap()); + newFactory->runWizard(path, ICore::dialogParent(), Id(), QVariantMap()); } }); @@ -290,7 +290,7 @@ QString IWizardFactory::runPath(const QString &defaultPath) return path; } -Utils::Wizard *IWizardFactory::runWizard(const QString &path, QWidget *parent, const QString &platform, const QVariantMap &variables) +Utils::Wizard *IWizardFactory::runWizard(const QString &path, QWidget *parent, Id platform, const QVariantMap &variables) { QTC_ASSERT(!s_isWizardRunning, return 0); @@ -326,24 +326,24 @@ Utils::Wizard *IWizardFactory::runWizard(const QString &path, QWidget *parent, c return wizard; } -bool IWizardFactory::isAvailable(const QString &platformName) const +bool IWizardFactory::isAvailable(Id platformId) const { - if (platformName.isEmpty()) + if (!platformId.isValid()) return true; - return availableFeatures(platformName).contains(requiredFeatures()); + return availableFeatures(platformId).contains(requiredFeatures()); } -QStringList IWizardFactory::supportedPlatforms() const +QSet IWizardFactory::supportedPlatforms() const { - QStringList stringList; + QSet platformIds; - foreach (const QString &platform, allAvailablePlatforms()) { + foreach (Id platform, allAvailablePlatforms()) { if (isAvailable(platform)) - stringList.append(platform); + platformIds.insert(platform); } - return stringList; + return platformIds; } void IWizardFactory::registerFactoryCreator(const IWizardFactory::FactoryCreator &creator) @@ -351,20 +351,20 @@ void IWizardFactory::registerFactoryCreator(const IWizardFactory::FactoryCreator s_factoryCreators << creator; } -QStringList IWizardFactory::allAvailablePlatforms() +QSet IWizardFactory::allAvailablePlatforms() { - QStringList platforms; + QSet platforms; foreach (const IFeatureProvider *featureManager, s_providerList) - platforms.append(featureManager->availablePlatforms()); + platforms.unite(featureManager->availablePlatforms()); return platforms; } -QString IWizardFactory::displayNameForPlatform(const QString &string) +QString IWizardFactory::displayNameForPlatform(Id i) { foreach (const IFeatureProvider *featureManager, s_providerList) { - QString displayName = featureManager->displayNameForPlatform(string); + const QString displayName = featureManager->displayNameForPlatform(i); if (!displayName.isEmpty()) return displayName; } @@ -420,12 +420,12 @@ QSet IWizardFactory::pluginFeatures() const return plugins; } -QSet IWizardFactory::availableFeatures(const QString &platformName) const +QSet IWizardFactory::availableFeatures(Id platformId) const { QSet availableFeatures; foreach (const IFeatureProvider *featureManager, s_providerList) - availableFeatures.unite(featureManager->availableFeatures(platformName)); + availableFeatures.unite(featureManager->availableFeatures(platformId)); return availableFeatures; } diff --git a/src/plugins/coreplugin/iwizardfactory.h b/src/plugins/coreplugin/iwizardfactory.h index d0c3f4293b2..b82c1701046 100644 --- a/src/plugins/coreplugin/iwizardfactory.h +++ b/src/plugins/coreplugin/iwizardfactory.h @@ -89,11 +89,11 @@ public: QString runPath(const QString &defaultPath); // Does bookkeeping and the calls runWizardImpl. Please implement that. - virtual Utils::Wizard *runWizard(const QString &path, QWidget *parent, const QString &platform, + virtual Utils::Wizard *runWizard(const QString &path, QWidget *parent, Id platform, const QVariantMap &variables); - virtual bool isAvailable(const QString &platformName) const; - QStringList supportedPlatforms() const; + virtual bool isAvailable(Id platformId) const; + QSet supportedPlatforms() const; typedef std::function()> FactoryCreator; static void registerFactoryCreator(const FactoryCreator &creator); @@ -102,8 +102,8 @@ public: static QList allWizardFactories(); // Utility to find all registered wizards of a certain kind static QList wizardFactoriesOfKind(WizardKind kind); - static QStringList allAvailablePlatforms(); - static QString displayNameForPlatform(const QString &string); + static QSet allAvailablePlatforms(); + static QString displayNameForPlatform(Id i); static void registerFeatureProvider(IFeatureProvider *provider); @@ -116,9 +116,9 @@ public: protected: QSet pluginFeatures() const; - QSet availableFeatures(const QString &platformName) const; + QSet availableFeatures(Id platformId) const; - virtual Utils::Wizard *runWizardImpl(const QString &path, QWidget *parent, const QString &platform, + virtual Utils::Wizard *runWizardImpl(const QString &path, QWidget *parent, Id platform, const QVariantMap &variables) = 0; private: diff --git a/src/plugins/projectexplorer/baseprojectwizarddialog.cpp b/src/plugins/projectexplorer/baseprojectwizarddialog.cpp index ee07a78ccfd..1cbf35a9bf3 100644 --- a/src/plugins/projectexplorer/baseprojectwizarddialog.cpp +++ b/src/plugins/projectexplorer/baseprojectwizarddialog.cpp @@ -53,7 +53,7 @@ struct BaseProjectWizardDialogPrivate { const int desiredIntroPageId; Utils::ProjectIntroPage *introPage; int introPageId; - QString selectedPlatform; + Core::Id selectedPlatform; QSet requiredFeatureSet; }; @@ -189,12 +189,12 @@ void BaseProjectWizardDialog::addExtensionPages(const QList &wiza addPage(p); } -QString BaseProjectWizardDialog::selectedPlatform() const +Core::Id BaseProjectWizardDialog::selectedPlatform() const { return d->selectedPlatform; } -void BaseProjectWizardDialog::setSelectedPlatform(const QString &platform) +void BaseProjectWizardDialog::setSelectedPlatform(Core::Id platform) { d->selectedPlatform = platform; } diff --git a/src/plugins/projectexplorer/baseprojectwizarddialog.h b/src/plugins/projectexplorer/baseprojectwizarddialog.h index c1dade2de96..84062bb70c7 100644 --- a/src/plugins/projectexplorer/baseprojectwizarddialog.h +++ b/src/plugins/projectexplorer/baseprojectwizarddialog.h @@ -77,8 +77,8 @@ signals: protected: Utils::ProjectIntroPage *introPage() const; - QString selectedPlatform() const; - void setSelectedPlatform(const QString &platform); + Core::Id selectedPlatform() const; + void setSelectedPlatform(Core::Id platform); QSet requiredFeatures() const; void setRequiredFeatures(const QSet &featureSet); diff --git a/src/plugins/projectexplorer/jsonwizard/jsonkitspage.cpp b/src/plugins/projectexplorer/jsonwizard/jsonkitspage.cpp index 8514dc6b222..6e6d6fa4562 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonkitspage.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonkitspage.cpp @@ -62,7 +62,7 @@ void JsonKitsPage::initializePage() connect(wiz, &JsonWizard::filesPolished, this, &JsonKitsPage::setupProjectFiles); - const QString platform = wiz->stringValue(QLatin1String("Platform")); + const Id platform = Id::fromString(wiz->stringValue(QLatin1String("Platform"))); const QSet preferred = evaluate(m_preferredFeatures, wiz->value(QLatin1String("PreferredFeatures")), wiz); const QSet required diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp index 23cc89fafba..46236559489 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp @@ -357,7 +357,7 @@ JsonWizardFactory::~JsonWizardFactory() { } Utils::Wizard *JsonWizardFactory::runWizardImpl(const QString &path, QWidget *parent, - const QString &platform, + Core::Id platform, const QVariantMap &variables) { auto wizard = new JsonWizard(parent); @@ -380,7 +380,7 @@ Utils::Wizard *JsonWizardFactory::runWizardImpl(const QString &path, QWidget *pa wizard->setValue(i.key(), i.value()); wizard->setValue(QStringLiteral("InitialPath"), path); - wizard->setValue(QStringLiteral("Platform"), platform); + wizard->setValue(QStringLiteral("Platform"), platform.toString()); QString kindStr = QLatin1String(Core::Constants::WIZARD_KIND_UNKNOWN); if (kind() == IWizardFactory::FileWizard) @@ -483,17 +483,17 @@ QString JsonWizardFactory::localizedString(const QVariant &value) return QCoreApplication::translate("ProjectExplorer::JsonWizardFactory", value.toByteArray()); } -bool JsonWizardFactory::isAvailable(const QString &platformName) const +bool JsonWizardFactory::isAvailable(Core::Id platformId) const { - if (!IWizardFactory::isAvailable(platformName)) // check for required features + if (!IWizardFactory::isAvailable(platformId)) // check for required features return false; Utils::MacroExpander expander; Utils::MacroExpander *e = &expander; expander.registerVariable("Platform", tr("The platform selected for the wizard."), - [platformName]() { return platformName; }); + [platformId]() { return platformId.toString(); }); expander.registerVariable("Features", tr("The features available to this wizard."), - [this, e, platformName]() { return JsonWizard::stringListToArrayString(Core::Id::toStringList(availableFeatures(platformName)), e); }); + [this, e, platformId]() { return JsonWizard::stringListToArrayString(Core::Id::toStringList(availableFeatures(platformId)), e); }); expander.registerVariable("Plugins", tr("The plugins loaded."), [this, e]() { return JsonWizard::stringListToArrayString(Core::Id::toStringList(pluginFeatures()), e); }); diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.h b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.h index 280af740be8..6b60b642c61 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.h +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.h @@ -91,10 +91,10 @@ public: static QString localizedString(const QVariant &value); - bool isAvailable(const QString &platformName) const override; + bool isAvailable(Core::Id platformId) const override; private: - Utils::Wizard *runWizardImpl(const QString &path, QWidget *parent, const QString &platform, + Utils::Wizard *runWizardImpl(const QString &path, QWidget *parent, Core::Id platform, const QVariantMap &variables) override; // Create all wizards. As other plugins might register factories for derived diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.cpp index 04ae2411452..3908f22910e 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.cpp @@ -312,7 +312,7 @@ FileGeneratorFactory::FileGeneratorFactory() } JsonWizardGenerator *FileGeneratorFactory::create(Id typeId, const QVariant &data, - const QString &path, const QString &platform, + const QString &path, Id platform, const QVariantMap &variables) { Q_UNUSED(path); @@ -352,7 +352,7 @@ ScannerGeneratorFactory::ScannerGeneratorFactory() } JsonWizardGenerator *ScannerGeneratorFactory::create(Id typeId, const QVariant &data, - const QString &path, const QString &platform, + const QString &path, Id platform, const QVariantMap &variables) { Q_UNUSED(path); diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.h b/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.h index e9b182dfc1c..6ffa475df8f 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.h +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.h @@ -79,7 +79,7 @@ public: QList supportedIds() const { return m_typeIds; } virtual JsonWizardGenerator *create(Core::Id typeId, const QVariant &data, - const QString &path, const QString &platform, + const QString &path, Core::Id platform, const QVariantMap &variables) = 0; // Basic syntax check for the data taken from the wizard.json file: @@ -104,7 +104,7 @@ public: FileGeneratorFactory(); JsonWizardGenerator *create(Core::Id typeId, const QVariant &data, - const QString &path, const QString &platform, + const QString &path, Core::Id platform, const QVariantMap &variables); bool validateData(Core::Id typeId, const QVariant &data, QString *errorMessage); }; @@ -117,7 +117,7 @@ public: ScannerGeneratorFactory(); JsonWizardGenerator *create(Core::Id typeId, const QVariant &data, - const QString &path, const QString &platform, + const QString &path, Core::Id platform, const QVariantMap &variables); bool validateData(Core::Id typeId, const QVariant &data, QString *errorMessage); }; diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp index 6415436694b..8cec3c5eea3 100644 --- a/src/plugins/projectexplorer/kit.cpp +++ b/src/plugins/projectexplorer/kit.cpp @@ -613,22 +613,22 @@ bool Kit::isMutable(Id id) const return d->m_mutable.contains(id); } -QSet Kit::availablePlatforms() const +QSet Kit::availablePlatforms() const { - QSet platforms; + QSet platforms; foreach (const KitInformation *ki, KitManager::kitInformation()) platforms.unite(ki->availablePlatforms(this)); return platforms; } -bool Kit::hasPlatform(const QString &platform) const +bool Kit::hasPlatform(Id platform) const { - if (platform.isEmpty()) + if (!platform.isValid()) return true; return availablePlatforms().contains(platform); } -QString Kit::displayNameForPlatform(const QString &platform) const +QString Kit::displayNameForPlatform(Id platform) const { foreach (const KitInformation *ki, KitManager::kitInformation()) { const QString displayName = ki->displayNameForPlatform(this, platform); diff --git a/src/plugins/projectexplorer/kit.h b/src/plugins/projectexplorer/kit.h index 8101ea4a651..56f5083dc16 100644 --- a/src/plugins/projectexplorer/kit.h +++ b/src/plugins/projectexplorer/kit.h @@ -121,9 +121,9 @@ public: void setMutable(Core::Id id, bool b); bool isMutable(Core::Id id) const; - QSet availablePlatforms() const; - bool hasPlatform(const QString &platform) const; - QString displayNameForPlatform(const QString &platform) const; + QSet availablePlatforms() const; + bool hasPlatform(Core::Id platform) const; + QString displayNameForPlatform(Core::Id platform) const; QSet availableFeatures() const; bool hasFeatures(const QSet &features) const; Utils::MacroExpander *macroExpander() const; diff --git a/src/plugins/projectexplorer/kitfeatureprovider.h b/src/plugins/projectexplorer/kitfeatureprovider.h index 1bb2b55d314..01701cfd850 100644 --- a/src/plugins/projectexplorer/kitfeatureprovider.h +++ b/src/plugins/projectexplorer/kitfeatureprovider.h @@ -40,9 +40,9 @@ namespace Internal { class KitFeatureProvider : public Core::IFeatureProvider { public: - QSet availableFeatures(const QString &platform) const; - QStringList availablePlatforms() const; - QString displayNameForPlatform(const QString &string) const; + QSet availableFeatures(Core::Id id) const; + QSet availablePlatforms() const; + QString displayNameForPlatform(Core::Id id) const; }; } // namespace Internal diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index 3101ca09a60..900dc1955a0 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -302,15 +302,15 @@ void KitManager::deregisterKitInformation(KitInformation *ki) delete ki; } -QSet KitManager::availablePlatforms() +QSet KitManager::availablePlatforms() { - QSet platforms; + QSet platforms; foreach (const Kit *k, kits()) platforms.unite(k->availablePlatforms()); return platforms; } -QString KitManager::displayNameForPlatform(const QString &platform) +QString KitManager::displayNameForPlatform(Id platform) { foreach (const Kit *k, kits()) { const QString displayName = k->displayNameForPlatform(platform); @@ -320,13 +320,13 @@ QString KitManager::displayNameForPlatform(const QString &platform) return QString(); } -QSet KitManager::availableFeatures(const QString &platform) +QSet KitManager::availableFeatures(Id platform) { QSet features; foreach (const Kit *k, kits()) { - QSet kitPlatforms = k->availablePlatforms(); - if (kitPlatforms.isEmpty() || kitPlatforms.contains(platform) || platform.isEmpty()) - features |= k->availableFeatures(); + QSet kitPlatforms = k->availablePlatforms(); + if (kitPlatforms.isEmpty() || kitPlatforms.contains(platform) || !platform.isValid()) + features.unite(k->availableFeatures()); } return features; } @@ -553,13 +553,13 @@ QString KitInformation::displayNamePostfix(const Kit *k) const return QString(); } -QSet KitInformation::availablePlatforms(const Kit *k) const +QSet KitInformation::availablePlatforms(const Kit *k) const { Q_UNUSED(k); - return QSet(); + return QSet(); } -QString KitInformation::displayNameForPlatform(const Kit *k, const QString &platform) const +QString KitInformation::displayNameForPlatform(const Kit *k, Id platform) const { Q_UNUSED(k); Q_UNUSED(platform); @@ -588,19 +588,19 @@ void KitInformation::notifyAboutUpdate(Kit *k) // KitFeatureProvider: // -------------------------------------------------------------------- -QSet KitFeatureProvider::availableFeatures(const QString &platform) const +QSet KitFeatureProvider::availableFeatures(Id id) const { - return KitManager::availableFeatures(platform); + return KitManager::availableFeatures(id); } -QStringList KitFeatureProvider::availablePlatforms() const +QSet KitFeatureProvider::availablePlatforms() const { - return KitManager::availablePlatforms().toList(); + return KitManager::availablePlatforms(); } -QString KitFeatureProvider::displayNameForPlatform(const QString &string) const +QString KitFeatureProvider::displayNameForPlatform(Id id) const { - return KitManager::displayNameForPlatform(string); + return KitManager::displayNameForPlatform(id); } } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/kitmanager.h b/src/plugins/projectexplorer/kitmanager.h index 2168cd6d120..64f3c46ef0d 100644 --- a/src/plugins/projectexplorer/kitmanager.h +++ b/src/plugins/projectexplorer/kitmanager.h @@ -95,8 +95,8 @@ public: virtual QString displayNamePostfix(const Kit *k) const; - virtual QSet availablePlatforms(const Kit *k) const; - virtual QString displayNameForPlatform(const Kit *k, const QString &platform) const; + virtual QSet availablePlatforms(const Kit *k) const; + virtual QString displayNameForPlatform(const Kit *k, Core::Id platform) const; virtual QSet availableFeatures(const Kit *k) const; virtual void addToMacroExpander(ProjectExplorer::Kit *kit, Utils::MacroExpander *expander) const; @@ -152,9 +152,9 @@ public: static void registerKitInformation(KitInformation *ki); static void deregisterKitInformation(KitInformation *ki); - static QSet availablePlatforms(); - static QString displayNameForPlatform(const QString &platform); - static QSet availableFeatures(const QString &platform); + static QSet availablePlatforms(); + static QString displayNameForPlatform(Core::Id platform); + static QSet availableFeatures(Core::Id platform); static QList sortKits(const QList kits); // Avoid sorting whenever possible! diff --git a/src/plugins/qmakeprojectmanager/wizards/guiappwizarddialog.cpp b/src/plugins/qmakeprojectmanager/wizards/guiappwizarddialog.cpp index 3d6830d4aea..adc8a2bdac2 100644 --- a/src/plugins/qmakeprojectmanager/wizards/guiappwizarddialog.cpp +++ b/src/plugins/qmakeprojectmanager/wizards/guiappwizarddialog.cpp @@ -110,7 +110,7 @@ GuiAppParameters GuiAppWizardDialog::parameters() const rc.formFileName = m_filesPage->formFileName(); rc.designerForm = m_filesPage->formInputChecked(); rc.isMobileApplication = true; - if (isQtPlatformSelected(QLatin1String(QtSupport::Constants::ANDROID_PLATFORM))) { + if (isQtPlatformSelected(QtSupport::Constants::ANDROID_PLATFORM)) { rc.widgetWidth = 800; rc.widgetHeight = 480; } else { diff --git a/src/plugins/qmakeprojectmanager/wizards/qtwizard.cpp b/src/plugins/qmakeprojectmanager/wizards/qtwizard.cpp index ac737571517..bc2f3589f2f 100644 --- a/src/plugins/qmakeprojectmanager/wizards/qtwizard.cpp +++ b/src/plugins/qmakeprojectmanager/wizards/qtwizard.cpp @@ -203,9 +203,9 @@ int BaseQmakeProjectWizardDialog::addModulesPage(int id) int BaseQmakeProjectWizardDialog::addTargetSetupPage(int id) { m_targetSetupPage = new ProjectExplorer::TargetSetupPage; - const QString platform = selectedPlatform(); + const Core::Id platform = selectedPlatform(); QSet features = { QtSupport::Constants::FEATURE_DESKTOP }; - if (platform.isEmpty()) + if (!platform.isValid()) m_targetSetupPage->setPreferredKitMatcher(QtKitInformation::qtVersionMatcher(features)); else m_targetSetupPage->setPreferredKitMatcher(QtKitInformation::platformMatcher(platform)); @@ -278,7 +278,7 @@ bool BaseQmakeProjectWizardDialog::setupProject(QmakeProject *project) const return m_targetSetupPage->setupProject(project); } -bool BaseQmakeProjectWizardDialog::isQtPlatformSelected(const QString &platform) const +bool BaseQmakeProjectWizardDialog::isQtPlatformSelected(Core::Id platform) const { QList selectedKitList = selectedKits(); diff --git a/src/plugins/qmakeprojectmanager/wizards/qtwizard.h b/src/plugins/qmakeprojectmanager/wizards/qtwizard.h index fb22a458b9e..1ef3265cdbf 100644 --- a/src/plugins/qmakeprojectmanager/wizards/qtwizard.h +++ b/src/plugins/qmakeprojectmanager/wizards/qtwizard.h @@ -131,7 +131,7 @@ public: bool writeUserFile(const QString &proFileName) const; bool setupProject(QmakeProject *project) const; - bool isQtPlatformSelected(const QString &platform) const; + bool isQtPlatformSelected(Core::Id platform) const; QList selectedKits() const; void addExtensionPages(const QList &wizardPageList); diff --git a/src/plugins/qtsupport/qtkitinformation.cpp b/src/plugins/qtsupport/qtkitinformation.cpp index 9aa10f7dcd8..94aa930d159 100644 --- a/src/plugins/qtsupport/qtkitinformation.cpp +++ b/src/plugins/qtsupport/qtkitinformation.cpp @@ -220,11 +220,11 @@ void QtKitInformation::kitsWereLoaded() this, SLOT(qtVersionsChanged(QList,QList,QList))); } -KitMatcher QtKitInformation::platformMatcher(const QString &platform) +KitMatcher QtKitInformation::platformMatcher(Core::Id platform) { return std::function([platform](const Kit *kit) -> bool { BaseQtVersion *version = QtKitInformation::qtVersion(kit); - return version && version->platformName() == platform; + return version && Core::Id::fromString(version->platformName()) == platform; }); } @@ -244,22 +244,19 @@ KitMatcher QtKitInformation::qtVersionMatcher(const QSet &required, }); } -QSet QtKitInformation::availablePlatforms(const Kit *k) const +QSet QtKitInformation::availablePlatforms(const Kit *k) const { - QSet result; BaseQtVersion *version = QtKitInformation::qtVersion(k); - if (version) { - QString platform = version->platformName(); - if (!platform.isEmpty()) - result.insert(version->platformName()); - } - return result; + const QString platform = version ? version->platformName() : QString(); + if (!platform.isEmpty()) + return { Core::Id::fromString(platform) }; + return QSet(); } -QString QtKitInformation::displayNameForPlatform(const Kit *k, const QString &platform) const +QString QtKitInformation::displayNameForPlatform(const Kit *k, Core::Id platform) const { BaseQtVersion *version = QtKitInformation::qtVersion(k); - if (version && version->platformName() == platform) + if (version && Core::Id::fromString(version->platformName()) == platform) return version->platformDisplayName(); return QString(); } diff --git a/src/plugins/qtsupport/qtkitinformation.h b/src/plugins/qtsupport/qtkitinformation.h index 94780824290..bb5b8eddc97 100644 --- a/src/plugins/qtsupport/qtkitinformation.h +++ b/src/plugins/qtsupport/qtkitinformation.h @@ -69,13 +69,13 @@ public: static BaseQtVersion *qtVersion(const ProjectExplorer::Kit *k); static void setQtVersion(ProjectExplorer::Kit *k, const BaseQtVersion *v); - static ProjectExplorer::KitMatcher platformMatcher(const QString &availablePlatforms); + static ProjectExplorer::KitMatcher platformMatcher(Core::Id availablePlatforms); static ProjectExplorer::KitMatcher qtVersionMatcher(const QSet &required = QSet(), const QtVersionNumber &min = QtVersionNumber(0, 0, 0), const QtVersionNumber &max = QtVersionNumber(INT_MAX, INT_MAX, INT_MAX)); - QSet availablePlatforms(const ProjectExplorer::Kit *k) const; - QString displayNameForPlatform(const ProjectExplorer::Kit *k, const QString &platform) const; + QSet availablePlatforms(const ProjectExplorer::Kit *k) const; + QString displayNameForPlatform(const ProjectExplorer::Kit *k, Core::Id platform) const; QSet availableFeatures(const ProjectExplorer::Kit *k) const; private slots: