From 6fc03ac621b9ccff7815755dfae3ac5dd176b164 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 28 Feb 2017 13:19:34 +0100 Subject: [PATCH] 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 --- src/plugins/ios/iosrunfactories.cpp | 9 ++++----- .../qmakeandroidsupport/qmakeandroidrunfactories.cpp | 7 +++---- .../qmakeprojectmanager/desktopqmakerunconfiguration.cpp | 2 +- src/plugins/qmakeprojectmanager/qmakeproject.cpp | 9 +++++++-- src/plugins/qmakeprojectmanager/qmakeproject.h | 5 +++-- src/plugins/qnx/qnxrunconfigurationfactory.cpp | 3 +-- src/plugins/winrt/winrtrunfactories.cpp | 3 +-- 7 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/plugins/ios/iosrunfactories.cpp b/src/plugins/ios/iosrunfactories.cpp index bdf8c9f818e..1bc18f473cd 100644 --- a/src/plugins/ios/iosrunfactories.cpp +++ b/src/plugins/ios/iosrunfactories.cpp @@ -98,11 +98,10 @@ QList IosRunConfigurationFactory::availableCreationIds(Target *parent, if (!IosManager::supportsIos(parent)) return QList(); - QmakeProject *project = static_cast(parent->project()); - QList files = project->allProFiles({ProjectType::ApplicationTemplate, - ProjectType::SharedLibraryTemplate, - ProjectType::AuxTemplate}); - return QmakeProject::creationIds(IOS_RC_ID_PREFIX, files, mode); + auto project = static_cast(parent->project()); + return project->creationIds(IOS_RC_ID_PREFIX, mode, {ProjectType::ApplicationTemplate, + ProjectType::SharedLibraryTemplate, + ProjectType::AuxTemplate}); } QString IosRunConfigurationFactory::displayNameForId(Core::Id id) const diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.cpp b/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.cpp index f92e3476575..824c568ae08 100644 --- a/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.cpp +++ b/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.cpp @@ -83,10 +83,9 @@ QList QmakeAndroidRunConfigurationFactory::availableCreationIds(Target if (!canHandle(parent)) return QList(); - QmakeProject *project = static_cast(parent->project()); - QList files = project->allProFiles({ProjectType::ApplicationTemplate, - ProjectType::SharedLibraryTemplate}); - return QmakeProject::creationIds(ANDROID_RC_ID_PREFIX, files, mode); + auto project = static_cast(parent->project()); + return project->creationIds(ANDROID_RC_ID_PREFIX, mode, + {ProjectType::ApplicationTemplate, ProjectType::SharedLibraryTemplate}); } RunConfiguration *QmakeAndroidRunConfigurationFactory::doCreate(Target *parent, Core::Id id) diff --git a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp index eb5c5d21c5b..65b060572b9 100644 --- a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp @@ -564,7 +564,7 @@ QList DesktopQmakeRunConfigurationFactory::availableCreationIds(Target return QList(); QmakeProject *project = static_cast(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 diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 435d88545d6..f41b7920b9d 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -902,9 +902,14 @@ bool QmakeProject::hasApplicationProFile(const FileName &path) const return Utils::contains(list, Utils::equal(&QmakeProFile::filePath, path)); } -QList QmakeProject::creationIds(Core::Id base, const QList &files, - IRunConfigurationFactory::CreationMode mode) +QList QmakeProject::creationIds(Core::Id base, + IRunConfigurationFactory::CreationMode mode, + const QList &projectTypes) { + QList realTypes = projectTypes; + if (realTypes.isEmpty()) + realTypes = {ProjectType::ApplicationTemplate, ProjectType::ScriptTemplate}; + QList files = allProFiles(realTypes); QList temp = files; if (mode == IRunConfigurationFactory::AutoCreate) { diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.h b/src/plugins/qmakeprojectmanager/qmakeproject.h index abd085d481a..238180aa549 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.h +++ b/src/plugins/qmakeprojectmanager/qmakeproject.h @@ -85,8 +85,9 @@ public: QList applicationProFiles(Parsing parse = ExactParse) const; bool hasApplicationProFile(const Utils::FileName &path) const; - static QList creationIds(Core::Id base, const QList &files, - ProjectExplorer::IRunConfigurationFactory::CreationMode mode); + QList creationIds(Core::Id base, + ProjectExplorer::IRunConfigurationFactory::CreationMode mode, + const QList &projectTypes = {}); void notifyChanged(const Utils::FileName &name); diff --git a/src/plugins/qnx/qnxrunconfigurationfactory.cpp b/src/plugins/qnx/qnxrunconfigurationfactory.cpp index bbb3b08ba64..6cfab76b2dd 100644 --- a/src/plugins/qnx/qnxrunconfigurationfactory.cpp +++ b/src/plugins/qnx/qnxrunconfigurationfactory.cpp @@ -57,8 +57,7 @@ QList QnxRunConfigurationFactory::availableCreationIds(ProjectExplorer if (!project) return QList(); - QList 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 diff --git a/src/plugins/winrt/winrtrunfactories.cpp b/src/plugins/winrt/winrtrunfactories.cpp index 703a30c47f2..b1b5e568299 100644 --- a/src/plugins/winrt/winrtrunfactories.cpp +++ b/src/plugins/winrt/winrtrunfactories.cpp @@ -66,8 +66,7 @@ QList WinRtRunConfigurationFactory::availableCreationIds(Target *paren return QList(); QmakeProject *project = static_cast(parent->project()); - QList 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