aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2018-05-14 15:30:35 +0200
committerhjk <hjk@qt.io>2018-05-15 11:25:38 +0000
commita86eda329e7b47b75222434884e40e925b599b82 (patch)
treed93eca5c5b8b4465c3bf5fe6017144425d1d3fd7 /src
parent1fce7ff4f5244dfb98a5b0a333c52ecaba7e59c4 (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.cpp4
-rw-r--r--src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h2
-rw-r--r--src/plugins/qnx/qnxplugin.cpp24
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)) {