diff options
author | hjk <hjk@qt.io> | 2018-05-14 15:30:35 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2018-05-15 11:25:38 +0000 |
commit | a86eda329e7b47b75222434884e40e925b599b82 (patch) | |
tree | d93eca5c5b8b4465c3bf5fe6017144425d1d3fd7 /src | |
parent | 1fce7ff4f5244dfb98a5b0a333c52ecaba7e59c4 (diff) |
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 <christian.kandeler@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp | 4 | ||||
-rw-r--r-- | src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h | 2 | ||||
-rw-r--r-- | src/plugins/qnx/qnxplugin.cpp | 24 |
3 files changed, 27 insertions, 3 deletions
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<const BuildStep *> &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 <coreplugin/icontext.h> #include <coreplugin/icore.h> +#include <projectexplorer/devicesupport/devicecheckbuildstep.h> #include <projectexplorer/kitinformation.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> @@ -57,6 +58,9 @@ #include <projectexplorer/target.h> #include <projectexplorer/toolchain.h> +#include <remotelinux/genericdirectuploadstep.h> +#include <remotelinux/remotelinuxcheckforfreediskspacestep.h> + #include <qtsupport/qtkitinformation.h> #include <QAction> @@ -67,6 +71,19 @@ using namespace ProjectExplorer; namespace Qnx { namespace Internal { +template <class Step> +class GenericQnxDeployStepFactory : public BuildStepFactory +{ +public: + GenericQnxDeployStepFactory() + { + registerStep<Step>(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 + <RemoteLinux::GenericDirectUploadStep>); + addAutoReleasedObject(new GenericQnxDeployStepFactory + <RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep>); + addAutoReleasedObject(new GenericQnxDeployStepFactory + <DeviceCheckBuildStep>); + auto constraint = [](RunConfiguration *runConfig) { if (!runConfig->isEnabled() || !runConfig->id().name().startsWith(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX)) { |