From a86eda329e7b47b75222434884e40e925b599b82 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 14 May 2018 15:30:35 +0200 Subject: Qnx: Fix persisting of deploy steps While the deploy steps re-used from RemoteLinux were created ok when creating a new QnxDeployConfiguration, they did not survive a restart (or rather a toMap/fromMap cycle, as the restoring insisted on having a RemoteLinuxDeployConfiguration). Since sharing DeployConfiguration*Factory*s is not yet possible, this patch here creates additional DeployConfigurationFactories creating the same steps, but insisting on a QnxDeployConfiguration parent. Task-number: QTCREATORBUG-20248 Change-Id: I70666f79993a1332cd1959ab5e3665797d2401ca Reviewed-by: Christian Kandeler Reviewed-by: Alessandro Portale Reviewed-by: Eike Ziller --- .../devicesupport/devicecheckbuildstep.cpp | 4 ++-- .../devicesupport/devicecheckbuildstep.h | 2 +- src/plugins/qnx/qnxplugin.cpp | 24 ++++++++++++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp index 2d6164c9ae..f90f9843c2 100644 --- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp @@ -38,7 +38,7 @@ using namespace ProjectExplorer; DeviceCheckBuildStep::DeviceCheckBuildStep(BuildStepList *bsl) : BuildStep(bsl, stepId()) { - setDefaultDisplayName(stepDisplayName()); + setDefaultDisplayName(displayName()); } bool DeviceCheckBuildStep::init(QList &earlierSteps) @@ -92,7 +92,7 @@ Core::Id DeviceCheckBuildStep::stepId() return "ProjectExplorer.DeviceCheckBuildStep"; } -QString DeviceCheckBuildStep::stepDisplayName() +QString DeviceCheckBuildStep::displayName() { return tr("Check for a configured device"); } diff --git a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h index 7886a9e8ab..8a114e1e6c 100644 --- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h +++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h @@ -45,7 +45,7 @@ public: BuildStepConfigWidget *createConfigWidget() override; static Core::Id stepId(); - static QString stepDisplayName(); + static QString displayName(); }; } // namespace ProjectExplorer diff --git a/src/plugins/qnx/qnxplugin.cpp b/src/plugins/qnx/qnxplugin.cpp index c5fb91e2bd..408f96b338 100644 --- a/src/plugins/qnx/qnxplugin.cpp +++ b/src/plugins/qnx/qnxplugin.cpp @@ -46,6 +46,7 @@ #include #include +#include #include #include #include @@ -57,6 +58,9 @@ #include #include +#include +#include + #include #include @@ -67,6 +71,19 @@ using namespace ProjectExplorer; namespace Qnx { namespace Internal { +template +class GenericQnxDeployStepFactory : public BuildStepFactory +{ +public: + GenericQnxDeployStepFactory() + { + registerStep(Step::stepId()); + setDisplayName(Step::displayName()); + setSupportedConfiguration(Constants::QNX_QNX_DEPLOYCONFIGURATION_ID); + setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + } +}; + bool QnxPlugin::initialize(const QStringList &arguments, QString *errorString) { Q_UNUSED(arguments) @@ -80,6 +97,13 @@ bool QnxPlugin::initialize(const QStringList &arguments, QString *errorString) addAutoReleasedObject(new QnxRunConfigurationFactory); addAutoReleasedObject(new QnxSettingsPage); + addAutoReleasedObject(new GenericQnxDeployStepFactory + ); + addAutoReleasedObject(new GenericQnxDeployStepFactory + ); + addAutoReleasedObject(new GenericQnxDeployStepFactory + ); + auto constraint = [](RunConfiguration *runConfig) { if (!runConfig->isEnabled() || !runConfig->id().name().startsWith(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX)) { -- cgit v1.2.3