forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
@@ -45,7 +45,7 @@ public:
|
||||
BuildStepConfigWidget *createConfigWidget() override;
|
||||
|
||||
static Core::Id stepId();
|
||||
static QString stepDisplayName();
|
||||
static QString displayName();
|
||||
};
|
||||
|
||||
} // namespace ProjectExplorer
|
||||
|
@@ -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)) {
|
||||
|
Reference in New Issue
Block a user