From 9f2bb5d0c5ec33a03759d038fb58c3dcddb6f7c5 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 8 Feb 2018 15:07:10 +0100 Subject: [PATCH] ProjectExplorer: Simplify collection of RunConfigurationCreationInfos Instead of calling twice for AutoCreated and UserCreated, call once and record to which case it belongs. Only the 'both' and 'user only' combination are ever used. Change-Id: I9c15085bcbb4bf6584a6156135f2084dbfc51c1c Reviewed-by: Christian Kandeler --- .../baremetalrunconfigurationfactory.cpp | 3 +- .../baremetalrunconfigurationfactory.h | 2 +- .../cmakerunconfiguration.cpp | 4 +-- .../cmakerunconfiguration.h | 2 +- src/plugins/ios/iosrunfactories.cpp | 17 ++-------- src/plugins/ios/iosrunfactories.h | 4 +-- .../projectexplorer/runconfiguration.cpp | 10 ++---- .../projectexplorer/runconfiguration.h | 26 ++++++++------- src/plugins/projectexplorer/target.cpp | 21 +++++++----- .../pythoneditor/pythoneditorplugin.cpp | 4 +-- .../qbsprojectmanager/qbsrunconfiguration.cpp | 26 ++++++++------- .../qbsprojectmanager/qbsrunconfiguration.h | 2 +- .../qmakeandroidrunfactories.cpp | 6 ++-- .../qmakeandroidrunfactories.h | 2 +- .../desktopqmakerunconfiguration.cpp | 4 +-- .../desktopqmakerunconfiguration.h | 2 +- .../qmakeprojectmanager/qmakeproject.cpp | 32 +++++++++++-------- .../qmakeprojectmanager/qmakeproject.h | 6 ++-- .../qnx/qnxrunconfigurationfactory.cpp | 3 +- src/plugins/qnx/qnxrunconfigurationfactory.h | 4 +-- .../remotelinuxrunconfigurationfactory.cpp | 3 +- .../remotelinuxrunconfigurationfactory.h | 2 +- src/plugins/winrt/winrtrunfactories.cpp | 9 +++--- src/plugins/winrt/winrtrunfactories.h | 2 +- 24 files changed, 93 insertions(+), 103 deletions(-) diff --git a/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp b/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp index a59024d7286..62b82f36b6f 100644 --- a/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp +++ b/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp @@ -48,9 +48,8 @@ BareMetalRunConfigurationFactory::BareMetalRunConfigurationFactory(QObject *pare setSupportedTargetDeviceTypes({BareMetal::Constants::BareMetalOsType}); } -QList BareMetalRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const +QList BareMetalRunConfigurationFactory::availableCreators(Target *parent) const { - Q_UNUSED(mode); return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &bti) { return convert(tr("%1 (on GDB server or hardware debugger)").arg(QFileInfo(bti.targetName).fileName()), bti.projectFilePath.toString() + '/' + bti.targetName); diff --git a/src/plugins/baremetal/baremetalrunconfigurationfactory.h b/src/plugins/baremetal/baremetalrunconfigurationfactory.h index 271f6fa4cb8..d3de78e70fb 100644 --- a/src/plugins/baremetal/baremetalrunconfigurationfactory.h +++ b/src/plugins/baremetal/baremetalrunconfigurationfactory.h @@ -38,7 +38,7 @@ public: explicit BareMetalRunConfigurationFactory(QObject *parent = nullptr); QList - availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override; + availableCreators(ProjectExplorer::Target *parent) const override; }; class BareMetalCustomRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp index 96ca235225e..c5a26508ca4 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp @@ -239,10 +239,8 @@ CMakeRunConfigurationFactory::CMakeRunConfigurationFactory(QObject *parent) : } QList -CMakeRunConfigurationFactory::availableCreators(Target *parent, - IRunConfigurationFactory::CreationMode mode) const +CMakeRunConfigurationFactory::availableCreators(Target *parent) const { - Q_UNUSED(mode); CMakeProject *project = static_cast(parent->project()); const QStringList titles = project->buildTargetTitles(true); return Utils::transform(titles, [this](const QString &title) { return convert(title, title); }); diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h index 0e715553404..f13ef973223 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h @@ -84,7 +84,7 @@ public: explicit CMakeRunConfigurationFactory(QObject *parent = 0); QList - availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override; + availableCreators(ProjectExplorer::Target *parent) const override; bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override; }; diff --git a/src/plugins/ios/iosrunfactories.cpp b/src/plugins/ios/iosrunfactories.cpp index 1e737d727b3..b2f7a8d7067 100644 --- a/src/plugins/ios/iosrunfactories.cpp +++ b/src/plugins/ios/iosrunfactories.cpp @@ -52,22 +52,11 @@ IosRunConfigurationFactory::IosRunConfigurationFactory(QObject *parent) } QList -IosRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const +IosRunConfigurationFactory::availableCreators(Target *parent) const { auto project = static_cast(parent->project()); - return Utils::transform(project->buildTargets(mode, {ProjectType::ApplicationTemplate, - ProjectType::SharedLibraryTemplate}), - [this](const BuildTargetInfo &ti) { return convert(ti); }); -} - -bool IosRunConfigurationFactory::canCreateHelper(Target *parent, const QString &buildTarget) const -{ - auto project = static_cast(parent->project()); - const QList buildTargets = project->buildTargets(UserCreate, {ProjectType::ApplicationTemplate, - ProjectType::SharedLibraryTemplate}); - return Utils::contains(buildTargets, [buildTarget](const BuildTargetInfo &bti) { - return bti.targetName == buildTarget; - }); + return project->runConfigurationCreators(this, {ProjectType::ApplicationTemplate, + ProjectType::SharedLibraryTemplate}); } bool IosRunConfigurationFactory::hasRunConfigForProFile(RunConfiguration *rc, const Utils::FileName &n) const diff --git a/src/plugins/ios/iosrunfactories.h b/src/plugins/ios/iosrunfactories.h index e9a574ee4d1..a6736286de9 100644 --- a/src/plugins/ios/iosrunfactories.h +++ b/src/plugins/ios/iosrunfactories.h @@ -44,9 +44,7 @@ public: explicit IosRunConfigurationFactory(QObject *parent = 0); QList - availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override; - - bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override; + availableCreators(ProjectExplorer::Target *parent) const override; bool hasRunConfigForProFile(ProjectExplorer::RunConfiguration *rc, const Utils::FileName &n) const override; }; diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 51dac8d769a..182b510b892 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -449,9 +449,8 @@ const QList IRunConfigurationFactory::allRunConfigur } QList -IRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const +IRunConfigurationFactory::availableCreators(Target *parent) const { - Q_UNUSED(mode); return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &ti) { return RunConfigurationCreationInfo(this, m_runConfigBaseId, ti.targetName, QFileInfo(ti.targetName).completeBaseName()); @@ -610,12 +609,9 @@ FixedRunConfigurationFactory::FixedRunConfigurationFactory(const QString &displa { } QList -FixedRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const +FixedRunConfigurationFactory::availableCreators(Target *parent) const { - Q_UNUSED(mode); - if (!canHandle(parent)) - return {}; - + Q_UNUSED(parent); return {RunConfigurationCreationInfo(this, runConfigurationBaseId(), QString(), m_fixedBuildTarget)}; } diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index 123b38102cb..c335318630c 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -280,14 +280,22 @@ private: class RunConfigurationCreationInfo { public: - RunConfigurationCreationInfo(const IRunConfigurationFactory *factory, Core::Id id, - QString extra, QString displayName) - : factory(factory) , id(id) , extra(extra) , displayName(displayName) {} + enum CreationMode {AlwaysCreate, ManualCreationOnly}; + RunConfigurationCreationInfo(const IRunConfigurationFactory *factory, + Core::Id id, + QString extra, QString displayName, + CreationMode creationMode = AlwaysCreate) + : factory(factory), id(id), + extra(extra), + displayName(displayName), + creationMode(creationMode) + {} const IRunConfigurationFactory *factory = nullptr; Core::Id id; QString extra; QString displayName; + CreationMode creationMode = AlwaysCreate; }; class PROJECTEXPLORER_EXPORT IRunConfigurationFactory : public QObject @@ -300,10 +308,7 @@ public: static const QList allRunConfigurationFactories(); - enum CreationMode {UserCreate, AutoCreate}; - - virtual QList availableCreators(Target *parent, - CreationMode mode = UserCreate) const; + virtual QList availableCreators(Target *parent) const; virtual bool canHandle(Target *target) const; @@ -317,6 +322,8 @@ public: static IRunConfigurationFactory *find(Target *parent, RunConfiguration *rc); static QList find(Target *parent); + Core::Id runConfigurationBaseId() const { return m_runConfigBaseId; } + protected: virtual bool canCreateHelper(Target *parent, const QString &buildTarget) const; @@ -333,8 +340,6 @@ protected: void setSupportedTargetDeviceTypes(const QList &ids); void setDisplayNamePattern(const QString &pattern); - Core::Id runConfigurationBaseId() const { return m_runConfigBaseId; } - RunConfigurationCreationInfo convert(const BuildTargetInfo &ti) const; RunConfigurationCreationInfo convert(const QString &displayName, const QString &targetName = QString()) const; @@ -352,8 +357,7 @@ class PROJECTEXPLORER_EXPORT FixedRunConfigurationFactory : public IRunConfigura public: explicit FixedRunConfigurationFactory(const QString &displayName, QObject *parent = nullptr); - QList availableCreators(Target *parent, - CreationMode mode = UserCreate) const override; + QList availableCreators(Target *parent) const override; private: const QString m_fixedBuildTarget; diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index 2d80aa77aa9..3b690577803 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -554,14 +554,19 @@ void Target::updateDefaultRunConfigurations() int configuredCount = existingConfigured.count(); // find all RC ids that can get created: - QList availableFactories; - for (IRunConfigurationFactory *rcFactory : rcFactories) - availableFactories.append(rcFactory->availableCreators(this)); - + QList allAvailableFactories; QList autoCreateFactories; - for (IRunConfigurationFactory *rcFactory : rcFactories) - autoCreateFactories.append(rcFactory->availableCreators(this, - IRunConfigurationFactory::AutoCreate)); + + for (IRunConfigurationFactory *rcFactory : rcFactories) { + if (rcFactory->canHandle(this)) { + const QList creators = rcFactory->availableCreators(this); + for (const RunConfigurationCreationInfo &creator : creators) { + allAvailableFactories.append(creator); // Manual and Auto + if (creator.creationMode == RunConfigurationCreationInfo::AlwaysCreate) + autoCreateFactories.append(creator); // Auto only. + } + } + } // Put outdated RCs into toRemove, do not bother with factories // that produce already existing RCs @@ -569,7 +574,7 @@ void Target::updateDefaultRunConfigurations() QList existing; foreach (RunConfiguration *rc, existingConfigured) { bool present = false; - for (const RunConfigurationCreationInfo &item : availableFactories) { + for (const RunConfigurationCreationInfo &item : allAvailableFactories) { if (item.id == rc->id() && item.extra == rc->extraId()) { existing.append(item); present = true; diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp index e83b2564d3d..d0266d23781 100644 --- a/src/plugins/pythoneditor/pythoneditorplugin.cpp +++ b/src/plugins/pythoneditor/pythoneditorplugin.cpp @@ -271,10 +271,8 @@ public: addSupportedProjectType(PythonProjectId); } - QList availableCreators(Target *parent, - CreationMode mode) const override + QList availableCreators(Target *parent) const override { - Q_UNUSED(mode); return Utils::transform(parent->project()->files(Project::AllFiles),[this](const FileName &fn) { return convert(fn.toString(), fn.toString()); }); diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp index 02da061d344..b609f5c5192 100644 --- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp @@ -385,7 +385,7 @@ bool QbsRunConfigurationFactory::canCreateHelper(Target *parent, const QString & } QList -QbsRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const +QbsRunConfigurationFactory::availableCreators(Target *parent) const { QList products; @@ -398,19 +398,23 @@ QbsRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) products << product; } - if (mode == AutoCreate) { - std::function hasQtcRunnable = [](const qbs::ProductData &product) { - return product.properties().value("qtcRunnable").toBool(); - }; + const auto isQtcRunnable = [](const qbs::ProductData &product) { + return product.properties().value("qtcRunnable").toBool(); + }; + const bool hasAnyQtcRunnable = Utils::anyOf(products, isQtcRunnable); - if (Utils::anyOf(products, hasQtcRunnable)) - Utils::erase(products, std::not1(hasQtcRunnable)); - } - - return Utils::transform(products, [this, project](const qbs::ProductData &product) { + return Utils::transform(products, [&](const qbs::ProductData &product) { const QString displayName = product.fullDisplayName(); const QString targetName = QbsProject::uniqueProductName(product) + rcNameSeparator() + displayName; - return convert(displayName, targetName); + return RunConfigurationCreationInfo { + this, + runConfigurationBaseId(), + targetName, + displayName, + (hasAnyQtcRunnable && !isQtcRunnable(product)) + ? RunConfigurationCreationInfo::ManualCreationOnly + : RunConfigurationCreationInfo::AlwaysCreate + }; }); } diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h index 78c8796d0b0..3a39d67c7b6 100644 --- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h +++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h @@ -119,7 +119,7 @@ public: bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override; QList - availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override; + availableCreators(ProjectExplorer::Target *parent) const override; }; } // namespace Internal diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.cpp b/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.cpp index 108667f0ac7..61d0d4abc81 100644 --- a/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.cpp +++ b/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.cpp @@ -56,12 +56,10 @@ QmakeAndroidRunConfigurationFactory::QmakeAndroidRunConfigurationFactory(QObject setSupportedTargetDeviceTypes({Android::Constants::ANDROID_DEVICE_TYPE}); } -QList QmakeAndroidRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const +QList QmakeAndroidRunConfigurationFactory::availableCreators(Target *parent) const { auto project = static_cast(parent->project()); - return Utils::transform(project->buildTargets(mode, {ProjectType::ApplicationTemplate, ProjectType::SharedLibraryTemplate}), - [this](const BuildTargetInfo &ti) { return convert(ti); }); - + return project->runConfigurationCreators(this, {ProjectType::ApplicationTemplate, ProjectType::SharedLibraryTemplate}); } } // namespace Internal diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.h b/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.h index ebcfce1e49e..73dc1a735ae 100644 --- a/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.h +++ b/src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.h @@ -40,7 +40,7 @@ public: explicit QmakeAndroidRunConfigurationFactory(QObject *parent = nullptr); QList - availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const; + availableCreators(ProjectExplorer::Target *parent) const; }; } // namespace Internal diff --git a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp index 7d09f187312..0fc08737854 100644 --- a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp @@ -444,10 +444,10 @@ bool DesktopQmakeRunConfigurationFactory::canCreateHelper(Target *parent, const } QList -DesktopQmakeRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const +DesktopQmakeRunConfigurationFactory::availableCreators(Target *parent) const { QmakeProject *project = static_cast(parent->project()); - return Utils::transform(project->buildTargets(mode), [this](const BuildTargetInfo &ti) { return convert(ti); }); + return project->runConfigurationCreators(this); } bool DesktopQmakeRunConfigurationFactory::hasRunConfigForProFile(RunConfiguration *rc, const Utils::FileName &n) const diff --git a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h index 70eea338357..7451d021613 100644 --- a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h +++ b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h @@ -141,7 +141,7 @@ public: bool canCreateHelper(ProjectExplorer::Target *parent, const QString &suffix) const override; QList - availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override; + availableCreators(ProjectExplorer::Target *parent) const override; bool hasRunConfigForProFile(ProjectExplorer::RunConfiguration *rc, const Utils::FileName &n) const override; }; diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index d5f741a947a..84c335b0635 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #include #include #include @@ -784,26 +785,29 @@ bool QmakeProject::hasApplicationProFile(const FileName &path) const return Utils::contains(list, Utils::equal(&QmakeProFile::filePath, path)); } -QList QmakeProject::buildTargets(IRunConfigurationFactory::CreationMode mode, - const QList &projectTypes) +QList +QmakeProject::runConfigurationCreators(const IRunConfigurationFactory *factory, + 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) { - QList filtered = Utils::filtered(files, [](const QmakeProFile *f) { - return f->isQtcRunnable(); - }); - temp = filtered.isEmpty() ? files : filtered; - } + const QList files = allProFiles(realTypes); + const auto isQtcRunnable = [](const QmakeProFile *f) { return f->isQtcRunnable(); }; + const bool hasAnyQtcRunnable = Utils::anyOf(files, isQtcRunnable); - return Utils::transform(temp, [](QmakeProFile *f) { - BuildTargetInfo bti; - bti.targetName = f->filePath().toString(); - return bti; + return Utils::transform(files, [&](QmakeProFile *f) { + const QString targetName = f->filePath().toString(); + return RunConfigurationCreationInfo { + factory, + factory->runConfigurationBaseId(), + targetName, + QFileInfo(targetName).completeBaseName(), + (hasAnyQtcRunnable && !f->isQtcRunnable()) + ? RunConfigurationCreationInfo::ManualCreationOnly + : RunConfigurationCreationInfo::AlwaysCreate + }; }); } diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.h b/src/plugins/qmakeprojectmanager/qmakeproject.h index 3e745193e83..acb45f1161f 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.h +++ b/src/plugins/qmakeprojectmanager/qmakeproject.h @@ -73,9 +73,9 @@ public: QList applicationProFiles(Parsing parse = ExactParse) const; bool hasApplicationProFile(const Utils::FileName &path) const; - QList - buildTargets(ProjectExplorer::IRunConfigurationFactory::CreationMode mode, - const QList &projectTypes = {}); + QList runConfigurationCreators + (const ProjectExplorer::IRunConfigurationFactory *factory, + const QList &projectTypes = {}); static void notifyChanged(const Utils::FileName &name); diff --git a/src/plugins/qnx/qnxrunconfigurationfactory.cpp b/src/plugins/qnx/qnxrunconfigurationfactory.cpp index 05f9abfe8eb..9a8ac138d61 100644 --- a/src/plugins/qnx/qnxrunconfigurationfactory.cpp +++ b/src/plugins/qnx/qnxrunconfigurationfactory.cpp @@ -46,9 +46,8 @@ QnxRunConfigurationFactory::QnxRunConfigurationFactory(QObject *parent) : setSupportedTargetDeviceTypes({Constants::QNX_QNX_OS_TYPE}); } -QList QnxRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const +QList QnxRunConfigurationFactory::availableCreators(Target *parent) const { - Q_UNUSED(mode); return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &bti) { return convert(tr("%1 on QNX Device").arg(QFileInfo(bti.targetName).completeBaseName()), bti.targetName); }); diff --git a/src/plugins/qnx/qnxrunconfigurationfactory.h b/src/plugins/qnx/qnxrunconfigurationfactory.h index 4558ab3d9f4..6e557da32d2 100644 --- a/src/plugins/qnx/qnxrunconfigurationfactory.h +++ b/src/plugins/qnx/qnxrunconfigurationfactory.h @@ -27,8 +27,6 @@ #include -namespace QmakeProjectManager { class QmakeProFileNode; } - namespace Qnx { namespace Internal { @@ -39,7 +37,7 @@ public: explicit QnxRunConfigurationFactory(QObject *parent = nullptr); QList - availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override; + availableCreators(ProjectExplorer::Target *parent) const override; }; } // namespace Internal diff --git a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp index 3b191162a41..af9ba0cbb3e 100644 --- a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp +++ b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.cpp @@ -51,9 +51,8 @@ RemoteLinuxRunConfigurationFactory::RemoteLinuxRunConfigurationFactory(QObject * } QList - RemoteLinuxRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode) const + RemoteLinuxRunConfigurationFactory::availableCreators(Target *parent) const { - Q_UNUSED(mode); return Utils::transform(parent->applicationTargets().list, [this](const BuildTargetInfo &bti) { return convert(tr("%1 (on Remote Generic Linux Host)").arg(bti.targetName), QFileInfo(bti.targetName).completeBaseName()); diff --git a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h index fd6a9682a10..9ce9d1a9799 100644 --- a/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h +++ b/src/plugins/remotelinux/remotelinuxrunconfigurationfactory.h @@ -38,7 +38,7 @@ public: explicit RemoteLinuxRunConfigurationFactory(QObject *parent = nullptr); QList - availableCreators(ProjectExplorer::Target *parent, CreationMode mode) const override; + availableCreators(ProjectExplorer::Target *parent) const override; }; class RemoteLinuxCustomRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory diff --git a/src/plugins/winrt/winrtrunfactories.cpp b/src/plugins/winrt/winrtrunfactories.cpp index 98b3917d93e..465de83012a 100644 --- a/src/plugins/winrt/winrtrunfactories.cpp +++ b/src/plugins/winrt/winrtrunfactories.cpp @@ -50,12 +50,13 @@ WinRtRunConfigurationFactory::WinRtRunConfigurationFactory() Constants::WINRT_DEVICE_TYPE_EMULATOR}); } -QList WinRtRunConfigurationFactory::availableCreators(Target *parent, IRunConfigurationFactory::CreationMode mode) const +QList WinRtRunConfigurationFactory::availableCreators(Target *parent) const { QmakeProject *project = static_cast(parent->project()); - const QList buildTargets = project->buildTargets(mode); - return Utils::transform(project->buildTargets(mode), [this](const BuildTargetInfo &bti) { - return convert(tr("Run App Package"), bti.targetName); + const QList list = project->runConfigurationCreators(this); + return Utils::transform(list, [this](RunConfigurationCreationInfo rci) { + rci.displayName = tr("Run App Package"); + return rci; }); } diff --git a/src/plugins/winrt/winrtrunfactories.h b/src/plugins/winrt/winrtrunfactories.h index 6de8c948e51..705e4159467 100644 --- a/src/plugins/winrt/winrtrunfactories.h +++ b/src/plugins/winrt/winrtrunfactories.h @@ -39,7 +39,7 @@ public: WinRtRunConfigurationFactory(); QList - availableCreators(ProjectExplorer::Target *parent, CreationMode mode = UserCreate) const override; + availableCreators(ProjectExplorer::Target *parent) const override; }; } // namespace Internal