forked from qt-creator/qt-creator
ProjectExplorer: Register createes' base id in RunConfigurationFactory
This shifts the resposibility of creation/splitting of RunConfiguration ids into what are essentially "type ids" and "build targets" to the base implementation, possibly opening the path of abandoning the mangled ids in favor of explicitly storing their constituent parts. Take advantage of base id split in RunConfigurations for availableIds /displayNameForId and for canCreate/canRestore/canClone. Change-Id: I19fefb32757407ab5053a2ae0e5a79438659f6ec Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Filippo Cucchetto <filippocucchetto@gmail.com>
This commit is contained in:
@@ -47,44 +47,26 @@ IosRunConfigurationFactory::IosRunConfigurationFactory(QObject *parent)
|
||||
: QmakeRunConfigurationFactory(parent)
|
||||
{
|
||||
setObjectName("IosRunConfigurationFactory");
|
||||
registerRunConfiguration<IosRunConfiguration>();
|
||||
registerRunConfiguration<IosRunConfiguration>(Constants::IOS_RC_ID_PREFIX);
|
||||
setSupportedProjectType<QmakeProject>();
|
||||
}
|
||||
|
||||
bool IosRunConfigurationFactory::canCreate(Target *parent, Core::Id id) const
|
||||
bool IosRunConfigurationFactory::canCreateHelper(Target *parent, const QString &buildTarget) const
|
||||
{
|
||||
if (!canHandle(parent))
|
||||
return false;
|
||||
return availableCreationIds(parent).contains(id);
|
||||
return availableBuildTargets(parent, UserCreate).contains(buildTarget);
|
||||
}
|
||||
|
||||
bool IosRunConfigurationFactory::canRestore(Target *parent, const QVariantMap &map) const
|
||||
QList<QString> IosRunConfigurationFactory::availableBuildTargets(Target *parent, CreationMode mode) const
|
||||
{
|
||||
if (!canHandle(parent))
|
||||
return false;
|
||||
QString id = ProjectExplorer::idFromMap(map).toString();
|
||||
return id.startsWith(Ios::Constants::IOS_RC_ID_PREFIX);
|
||||
}
|
||||
|
||||
bool IosRunConfigurationFactory::canClone(Target *parent, RunConfiguration *source) const
|
||||
{
|
||||
return canCreate(parent, source->id());
|
||||
}
|
||||
|
||||
QList<Core::Id> IosRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||
{
|
||||
if (!IosManager::supportsIos(parent))
|
||||
return QList<Core::Id>();
|
||||
|
||||
auto project = static_cast<QmakeProject *>(parent->project());
|
||||
return project->creationIds(Constants::IOS_RC_ID_PREFIX, mode, {ProjectType::ApplicationTemplate,
|
||||
ProjectType::SharedLibraryTemplate,
|
||||
ProjectType::AuxTemplate});
|
||||
return project->buildTargets(mode, {ProjectType::ApplicationTemplate,
|
||||
ProjectType::SharedLibraryTemplate,
|
||||
ProjectType::AuxTemplate});
|
||||
}
|
||||
|
||||
QString IosRunConfigurationFactory::displayNameForId(Core::Id id) const
|
||||
QString IosRunConfigurationFactory::displayNameForBuildTarget(const QString &buildTarget) const
|
||||
{
|
||||
return IosRunConfiguration::pathFromId(id).toFileInfo().completeBaseName();
|
||||
return QFileInfo(buildTarget).completeBaseName();
|
||||
}
|
||||
|
||||
bool IosRunConfigurationFactory::canHandle(Target *t) const
|
||||
|
||||
@@ -43,17 +43,12 @@ class IosRunConfigurationFactory : public QmakeProjectManager::QmakeRunConfigura
|
||||
public:
|
||||
explicit IosRunConfigurationFactory(QObject *parent = 0);
|
||||
|
||||
QString displayNameForId(Core::Id id) const override;
|
||||
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override;
|
||||
|
||||
bool canCreate(ProjectExplorer::Target *parent, Core::Id id) const override;
|
||||
|
||||
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const override;
|
||||
|
||||
bool canClone(ProjectExplorer::Target *parent,
|
||||
ProjectExplorer::RunConfiguration *source) const override;
|
||||
QList<QString> availableBuildTargets(ProjectExplorer::Target *parent, CreationMode mode) const override;
|
||||
QString displayNameForBuildTarget(const QString &buildTarget) const override;
|
||||
|
||||
bool canHandle(ProjectExplorer::Target *t) const override;
|
||||
bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override;
|
||||
|
||||
QList<ProjectExplorer::RunConfiguration *> runConfigurationsForNode(ProjectExplorer::Target *t,
|
||||
const ProjectExplorer::Node *n
|
||||
) override;
|
||||
|
||||
Reference in New Issue
Block a user