QMake: Simplify QmakeProject::creationIds use further

We always operate on specific types of proFiles, knowing the types
suffices as interface.

Change-Id: I5ffe8862ae31234843a71bdae537825b37ccd311
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2017-02-28 13:19:34 +01:00
parent b7e2f672cf
commit 6fc03ac621
7 changed files with 20 additions and 18 deletions

View File

@@ -98,11 +98,10 @@ QList<Core::Id> IosRunConfigurationFactory::availableCreationIds(Target *parent,
if (!IosManager::supportsIos(parent))
return QList<Core::Id>();
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
QList<QmakeProFile *> files = project->allProFiles({ProjectType::ApplicationTemplate,
ProjectType::SharedLibraryTemplate,
ProjectType::AuxTemplate});
return QmakeProject::creationIds(IOS_RC_ID_PREFIX, files, mode);
auto project = static_cast<QmakeProject *>(parent->project());
return project->creationIds(IOS_RC_ID_PREFIX, mode, {ProjectType::ApplicationTemplate,
ProjectType::SharedLibraryTemplate,
ProjectType::AuxTemplate});
}
QString IosRunConfigurationFactory::displayNameForId(Core::Id id) const

View File

@@ -83,10 +83,9 @@ QList<Core::Id> QmakeAndroidRunConfigurationFactory::availableCreationIds(Target
if (!canHandle(parent))
return QList<Core::Id>();
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
QList<QmakeProFile *> files = project->allProFiles({ProjectType::ApplicationTemplate,
ProjectType::SharedLibraryTemplate});
return QmakeProject::creationIds(ANDROID_RC_ID_PREFIX, files, mode);
auto project = static_cast<QmakeProject *>(parent->project());
return project->creationIds(ANDROID_RC_ID_PREFIX, mode,
{ProjectType::ApplicationTemplate, ProjectType::SharedLibraryTemplate});
}
RunConfiguration *QmakeAndroidRunConfigurationFactory::doCreate(Target *parent, Core::Id id)

View File

@@ -564,7 +564,7 @@ QList<Core::Id> DesktopQmakeRunConfigurationFactory::availableCreationIds(Target
return QList<Core::Id>();
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
return QmakeProject::creationIds(QMAKE_RC_PREFIX, project->applicationProFiles(), mode);
return project->creationIds(QMAKE_RC_PREFIX, mode);
}
QString DesktopQmakeRunConfigurationFactory::displayNameForId(Core::Id id) const

View File

@@ -902,9 +902,14 @@ bool QmakeProject::hasApplicationProFile(const FileName &path) const
return Utils::contains(list, Utils::equal(&QmakeProFile::filePath, path));
}
QList<Core::Id> QmakeProject::creationIds(Core::Id base, const QList<QmakeProFile *> &files,
IRunConfigurationFactory::CreationMode mode)
QList<Core::Id> QmakeProject::creationIds(Core::Id base,
IRunConfigurationFactory::CreationMode mode,
const QList<ProjectType> &projectTypes)
{
QList<ProjectType> realTypes = projectTypes;
if (realTypes.isEmpty())
realTypes = {ProjectType::ApplicationTemplate, ProjectType::ScriptTemplate};
QList<QmakeProFile *> files = allProFiles(realTypes);
QList<QmakeProFile *> temp = files;
if (mode == IRunConfigurationFactory::AutoCreate) {

View File

@@ -85,8 +85,9 @@ public:
QList<QmakeProFile *> applicationProFiles(Parsing parse = ExactParse) const;
bool hasApplicationProFile(const Utils::FileName &path) const;
static QList<Core::Id> creationIds(Core::Id base, const QList<QmakeProFile *> &files,
ProjectExplorer::IRunConfigurationFactory::CreationMode mode);
QList<Core::Id> creationIds(Core::Id base,
ProjectExplorer::IRunConfigurationFactory::CreationMode mode,
const QList<ProjectType> &projectTypes = {});
void notifyChanged(const Utils::FileName &name);

View File

@@ -57,8 +57,7 @@ QList<Core::Id> QnxRunConfigurationFactory::availableCreationIds(ProjectExplorer
if (!project)
return QList<Core::Id>();
QList<QmakeProjectManager::QmakeProFile *> files = project->applicationProFiles();
return QmakeProject::creationIds(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX, files, mode);
return project->creationIds(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX, mode);
}
QString QnxRunConfigurationFactory::displayNameForId(Core::Id id) const

View File

@@ -66,8 +66,7 @@ QList<Core::Id> WinRtRunConfigurationFactory::availableCreationIds(Target *paren
return QList<Core::Id>();
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
QList<QmakeProFile *> files = project->applicationProFiles();
return QmakeProject::creationIds(Constants::WINRT_RC_PREFIX, files, mode);
return project->creationIds(Constants::WINRT_RC_PREFIX, mode);
}
QString WinRtRunConfigurationFactory::displayNameForId(Core::Id id) const