aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/remotelinux
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/remotelinux')
-rw-r--r--src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp40
-rw-r--r--src/plugins/remotelinux/abstractremotelinuxdeploystep.h13
-rw-r--r--src/plugins/remotelinux/abstractuploadandinstallpackageservice.cpp5
-rw-r--r--src/plugins/remotelinux/abstractuploadandinstallpackageservice.h2
-rw-r--r--src/plugins/remotelinux/genericdirectuploadstep.cpp39
-rw-r--r--src/plugins/remotelinux/genericdirectuploadstep.h8
-rw-r--r--src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp37
-rw-r--r--src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.h8
-rw-r--r--src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.cpp27
-rw-r--r--src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.h7
-rw-r--r--src/plugins/remotelinux/remotelinuxkillappservice.cpp5
-rw-r--r--src/plugins/remotelinux/remotelinuxkillappservice.h2
-rw-r--r--src/plugins/remotelinux/remotelinuxkillappstep.cpp15
-rw-r--r--src/plugins/remotelinux/remotelinuxkillappstep.h6
-rw-r--r--src/plugins/remotelinux/rsyncdeploystep.cpp36
-rw-r--r--src/plugins/remotelinux/rsyncdeploystep.h7
-rw-r--r--src/plugins/remotelinux/uploadandinstalltarpackagestep.cpp14
-rw-r--r--src/plugins/remotelinux/uploadandinstalltarpackagestep.h7
18 files changed, 94 insertions, 184 deletions
diff --git a/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp b/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp
index 526f99ed189..a1a497d171c 100644
--- a/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp
+++ b/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp
@@ -41,6 +41,8 @@ class AbstractRemoteLinuxDeployStepPrivate
public:
bool hasError;
std::function<CheckResult()> internalInit;
+ std::function<void()> runPreparer;
+ AbstractRemoteLinuxDeployService *deployService = nullptr;
};
} // namespace Internal
@@ -55,8 +57,19 @@ void AbstractRemoteLinuxDeployStep::setInternalInitializer(const std::function<C
d->internalInit = init;
}
+void AbstractRemoteLinuxDeployStep::setRunPreparer(const std::function<void ()> &prep)
+{
+ d->runPreparer = prep;
+}
+
+void AbstractRemoteLinuxDeployStep::setDeployService(AbstractRemoteLinuxDeployService *service)
+{
+ d->deployService = service;
+}
+
AbstractRemoteLinuxDeployStep::~AbstractRemoteLinuxDeployStep()
{
+ delete d->deployService;
delete d;
}
@@ -64,18 +77,18 @@ bool AbstractRemoteLinuxDeployStep::fromMap(const QVariantMap &map)
{
if (!BuildStep::fromMap(map))
return false;
- deployService()->importDeployTimes(map);
+ d->deployService->importDeployTimes(map);
return true;
}
QVariantMap AbstractRemoteLinuxDeployStep::toMap() const
{
- return BuildStep::toMap().unite(deployService()->exportDeployTimes());
+ return BuildStep::toMap().unite(d->deployService->exportDeployTimes());
}
bool AbstractRemoteLinuxDeployStep::init()
{
- deployService()->setTarget(target());
+ d->deployService->setTarget(target());
QTC_ASSERT(d->internalInit, return false);
const CheckResult canDeploy = d->internalInit();
@@ -88,21 +101,24 @@ bool AbstractRemoteLinuxDeployStep::init()
void AbstractRemoteLinuxDeployStep::doRun()
{
- connect(deployService(), &AbstractRemoteLinuxDeployService::errorMessage,
+ if (d->runPreparer)
+ d->runPreparer();
+
+ connect(d->deployService, &AbstractRemoteLinuxDeployService::errorMessage,
this, &AbstractRemoteLinuxDeployStep::handleErrorMessage);
- connect(deployService(), &AbstractRemoteLinuxDeployService::progressMessage,
+ connect(d->deployService, &AbstractRemoteLinuxDeployService::progressMessage,
this, &AbstractRemoteLinuxDeployStep::handleProgressMessage);
- connect(deployService(), &AbstractRemoteLinuxDeployService::warningMessage,
+ connect(d->deployService, &AbstractRemoteLinuxDeployService::warningMessage,
this, &AbstractRemoteLinuxDeployStep::handleWarningMessage);
- connect(deployService(), &AbstractRemoteLinuxDeployService::stdOutData,
+ connect(d->deployService, &AbstractRemoteLinuxDeployService::stdOutData,
this, &AbstractRemoteLinuxDeployStep::handleStdOutData);
- connect(deployService(), &AbstractRemoteLinuxDeployService::stdErrData,
+ connect(d->deployService, &AbstractRemoteLinuxDeployService::stdErrData,
this, &AbstractRemoteLinuxDeployStep::handleStdErrData);
- connect(deployService(), &AbstractRemoteLinuxDeployService::finished,
+ connect(d->deployService, &AbstractRemoteLinuxDeployService::finished,
this, &AbstractRemoteLinuxDeployStep::handleFinished);
d->hasError = false;
- deployService()->start();
+ d->deployService->start();
}
void AbstractRemoteLinuxDeployStep::doCancel()
@@ -113,7 +129,7 @@ void AbstractRemoteLinuxDeployStep::doCancel()
emit addOutput(tr("User requests deployment to stop; cleaning up."),
OutputFormat::NormalMessage);
d->hasError = true;
- deployService()->stop();
+ d->deployService->stop();
}
void AbstractRemoteLinuxDeployStep::handleProgressMessage(const QString &message)
@@ -144,7 +160,7 @@ void AbstractRemoteLinuxDeployStep::handleFinished()
emit addOutput(tr("Deploy step failed."), OutputFormat::ErrorMessage);
else
emit addOutput(tr("Deploy step finished."), OutputFormat::NormalMessage);
- disconnect(deployService(), nullptr, this, nullptr);
+ disconnect(d->deployService, nullptr, this, nullptr);
emit finished(!d->hasError);
}
diff --git a/src/plugins/remotelinux/abstractremotelinuxdeploystep.h b/src/plugins/remotelinux/abstractremotelinuxdeploystep.h
index 6adbebf1aa2..e15cef37065 100644
--- a/src/plugins/remotelinux/abstractremotelinuxdeploystep.h
+++ b/src/plugins/remotelinux/abstractremotelinuxdeploystep.h
@@ -41,20 +41,29 @@ class REMOTELINUX_EXPORT AbstractRemoteLinuxDeployStep : public ProjectExplorer:
public:
~AbstractRemoteLinuxDeployStep() override;
- virtual AbstractRemoteLinuxDeployService *deployService() const = 0;
protected:
bool fromMap(const QVariantMap &map) override;
QVariantMap toMap() const override;
bool init() override;
- void doRun() override;
+ void doRun() final;
void doCancel() override;
explicit AbstractRemoteLinuxDeployStep(ProjectExplorer::BuildStepList *bsl, Core::Id id);
void setInternalInitializer(const std::function<CheckResult()> &init);
+ void setRunPreparer(const std::function<void()> &prep);
+
+ template <class T>
+ T *createDeployService()
+ {
+ T *service = new T;
+ setDeployService(service);
+ return service;
+ }
private:
+ void setDeployService(AbstractRemoteLinuxDeployService *service);
void handleProgressMessage(const QString &message);
void handleErrorMessage(const QString &message);
void handleWarningMessage(const QString &message);
diff --git a/src/plugins/remotelinux/abstractuploadandinstallpackageservice.cpp b/src/plugins/remotelinux/abstractuploadandinstallpackageservice.cpp
index 18ac23f496e..d94270eaebe 100644
--- a/src/plugins/remotelinux/abstractuploadandinstallpackageservice.cpp
+++ b/src/plugins/remotelinux/abstractuploadandinstallpackageservice.cpp
@@ -60,9 +60,8 @@ public:
using namespace Internal;
-AbstractUploadAndInstallPackageService::AbstractUploadAndInstallPackageService(QObject *parent)
- : AbstractRemoteLinuxDeployService(parent),
- d(new AbstractUploadAndInstallPackageServicePrivate)
+AbstractUploadAndInstallPackageService::AbstractUploadAndInstallPackageService()
+ : d(new AbstractUploadAndInstallPackageServicePrivate)
{
}
diff --git a/src/plugins/remotelinux/abstractuploadandinstallpackageservice.h b/src/plugins/remotelinux/abstractuploadandinstallpackageservice.h
index c970e287eab..cef3ccf6b33 100644
--- a/src/plugins/remotelinux/abstractuploadandinstallpackageservice.h
+++ b/src/plugins/remotelinux/abstractuploadandinstallpackageservice.h
@@ -41,7 +41,7 @@ public:
void setPackageFilePath(const QString &filePath);
protected:
- explicit AbstractUploadAndInstallPackageService(QObject *parent);
+ AbstractUploadAndInstallPackageService();
~AbstractUploadAndInstallPackageService() override;
QString packageFilePath() const;
diff --git a/src/plugins/remotelinux/genericdirectuploadstep.cpp b/src/plugins/remotelinux/genericdirectuploadstep.cpp
index 036d07ea7b8..2a07c5d94a3 100644
--- a/src/plugins/remotelinux/genericdirectuploadstep.cpp
+++ b/src/plugins/remotelinux/genericdirectuploadstep.cpp
@@ -34,20 +34,11 @@
using namespace ProjectExplorer;
namespace RemoteLinux {
-namespace Internal {
-
-class GenericDirectUploadStepPrivate
-{
-public:
- GenericDirectUploadService deployService;
-};
-
-} // namespace Internal
GenericDirectUploadStep::GenericDirectUploadStep(BuildStepList *bsl)
: AbstractRemoteLinuxDeployStep(bsl, stepId())
{
- d = new Internal::GenericDirectUploadStepPrivate;
+ auto service = createDeployService<GenericDirectUploadService>();
auto incremental = addAspect<BaseBoolAspect>();
incremental->setSettingsKey("RemoteLinux.GenericDirectUploadStep.Incremental");
@@ -60,30 +51,20 @@ GenericDirectUploadStep::GenericDirectUploadStep(BuildStepList *bsl)
ignoreMissingFiles->setLabel(tr("Ignore missing files"));
ignoreMissingFiles->setValue(false);
- setInternalInitializer([this, incremental, ignoreMissingFiles] {
- d->deployService.setIncrementalDeployment(incremental->value());
- d->deployService.setIgnoreMissingFiles(ignoreMissingFiles->value());
- return d->deployService.isDeploymentPossible();
+ setInternalInitializer([incremental, ignoreMissingFiles, service] {
+ service->setIncrementalDeployment(incremental->value());
+ service->setIgnoreMissingFiles(ignoreMissingFiles->value());
+ return service->isDeploymentPossible();
});
- setDefaultDisplayName(displayName());
-}
-
-GenericDirectUploadStep::~GenericDirectUploadStep()
-{
- delete d;
-}
+ setRunPreparer([this, service] {
+ service->setDeployableFiles(target()->deploymentData().allFiles());
+ });
-GenericDirectUploadService *GenericDirectUploadStep::deployService() const
-{
- return &d->deployService;
+ setDefaultDisplayName(displayName());
}
-void GenericDirectUploadStep::doRun()
-{
- d->deployService.setDeployableFiles(target()->deploymentData().allFiles());
- AbstractRemoteLinuxDeployStep::doRun();
-}
+GenericDirectUploadStep::~GenericDirectUploadStep() = default;
Core::Id GenericDirectUploadStep::stepId()
{
diff --git a/src/plugins/remotelinux/genericdirectuploadstep.h b/src/plugins/remotelinux/genericdirectuploadstep.h
index 257a354c2ab..0577366d9ab 100644
--- a/src/plugins/remotelinux/genericdirectuploadstep.h
+++ b/src/plugins/remotelinux/genericdirectuploadstep.h
@@ -26,11 +26,9 @@
#pragma once
#include "abstractremotelinuxdeploystep.h"
-#include "genericdirectuploadservice.h"
#include "remotelinux_export.h"
namespace RemoteLinux {
-namespace Internal { class GenericDirectUploadStepPrivate; }
class REMOTELINUX_EXPORT GenericDirectUploadStep : public AbstractRemoteLinuxDeployStep
{
@@ -42,12 +40,6 @@ public:
static Core::Id stepId();
static QString displayName();
-
-private:
- GenericDirectUploadService *deployService() const override;
- void doRun() override;
-
- Internal::GenericDirectUploadStepPrivate *d;
};
} //namespace RemoteLinux
diff --git a/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp b/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp
index b2b74490c31..0db981e1443 100644
--- a/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp
+++ b/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp
@@ -34,57 +34,36 @@
using namespace ProjectExplorer;
namespace RemoteLinux {
-namespace Internal {
-
-const char PathToCheckKey[] = "RemoteLinux.CheckForFreeDiskSpaceStep.PathToCheck";
-const char RequiredSpaceKey[] = "RemoteLinux.CheckForFreeDiskSpaceStep.RequiredSpace";
-
-class RemoteLinuxCheckForFreeDiskSpaceStepPrivate
-{
-public:
- RemoteLinuxCheckForFreeDiskSpaceService deployService;
-};
-
-} // namespace Internal
-
-using namespace Internal;
RemoteLinuxCheckForFreeDiskSpaceStep::RemoteLinuxCheckForFreeDiskSpaceStep(BuildStepList *bsl)
: AbstractRemoteLinuxDeployStep(bsl, stepId())
{
- d = new Internal::RemoteLinuxCheckForFreeDiskSpaceStepPrivate;
setDefaultDisplayName(displayName());
+ auto service = createDeployService<RemoteLinuxCheckForFreeDiskSpaceService>();
+
auto pathToCheckAspect = addAspect<BaseStringAspect>();
- pathToCheckAspect->setSettingsKey(PathToCheckKey);
+ pathToCheckAspect->setSettingsKey("RemoteLinux.CheckForFreeDiskSpaceStep.PathToCheck");
pathToCheckAspect->setDisplayStyle(BaseStringAspect::LineEditDisplay);
pathToCheckAspect->setValue("/");
pathToCheckAspect->setLabelText(tr("Remote path to check for free space:"));
auto requiredSpaceAspect = addAspect<BaseIntegerAspect>();
- requiredSpaceAspect->setSettingsKey(RequiredSpaceKey);
+ requiredSpaceAspect->setSettingsKey("RemoteLinux.CheckForFreeDiskSpaceStep.RequiredSpace");
requiredSpaceAspect->setLabel(tr("Required disk space:"));
requiredSpaceAspect->setDisplayScaleFactor(1024*1024);
requiredSpaceAspect->setValue(5*1024*1024);
requiredSpaceAspect->setSuffix(tr("MB"));
requiredSpaceAspect->setRange(1, std::numeric_limits<int>::max());
- setInternalInitializer([this, pathToCheckAspect, requiredSpaceAspect] {
- d->deployService.setPathToCheck(pathToCheckAspect->value());
- d->deployService.setRequiredSpaceInBytes(requiredSpaceAspect->value());
+ setInternalInitializer([service, pathToCheckAspect, requiredSpaceAspect] {
+ service->setPathToCheck(pathToCheckAspect->value());
+ service->setRequiredSpaceInBytes(requiredSpaceAspect->value());
return CheckResult::success();
});
}
-RemoteLinuxCheckForFreeDiskSpaceStep::~RemoteLinuxCheckForFreeDiskSpaceStep()
-{
- delete d;
-}
-
-AbstractRemoteLinuxDeployService *RemoteLinuxCheckForFreeDiskSpaceStep::deployService() const
-{
- return &d->deployService;
-}
+RemoteLinuxCheckForFreeDiskSpaceStep::~RemoteLinuxCheckForFreeDiskSpaceStep() = default;
Core::Id RemoteLinuxCheckForFreeDiskSpaceStep::stepId()
{
diff --git a/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.h b/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.h
index 97270fdb6ea..5dd2cdcc94a 100644
--- a/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.h
+++ b/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.h
@@ -28,23 +28,17 @@
#include "abstractremotelinuxdeploystep.h"
namespace RemoteLinux {
-namespace Internal { class RemoteLinuxCheckForFreeDiskSpaceStepPrivate; }
class REMOTELINUX_EXPORT RemoteLinuxCheckForFreeDiskSpaceStep : public AbstractRemoteLinuxDeployStep
{
Q_OBJECT
+
public:
explicit RemoteLinuxCheckForFreeDiskSpaceStep(ProjectExplorer::BuildStepList *bsl);
~RemoteLinuxCheckForFreeDiskSpaceStep() override;
static Core::Id stepId();
static QString displayName();
-
-protected:
- AbstractRemoteLinuxDeployService *deployService() const override;
-
-private:
- Internal::RemoteLinuxCheckForFreeDiskSpaceStepPrivate *d;
};
} // namespace RemoteLinux
diff --git a/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.cpp b/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.cpp
index 35a80e005f9..61aebbe893b 100644
--- a/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.cpp
+++ b/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.cpp
@@ -31,20 +31,11 @@
using namespace ProjectExplorer;
namespace RemoteLinux {
-namespace Internal {
-
-class RemoteLinuxCustomCommandDeploymentStepPrivate
-{
-public:
- RemoteLinuxCustomCommandDeployService service;
-};
-
-} // namespace Internal
RemoteLinuxCustomCommandDeploymentStep::RemoteLinuxCustomCommandDeploymentStep(BuildStepList *bsl)
: AbstractRemoteLinuxDeployStep(bsl, stepId())
{
- d = new Internal::RemoteLinuxCustomCommandDeploymentStepPrivate;
+ auto service = createDeployService<RemoteLinuxCustomCommandDeployService>();
auto commandLine = addAspect<BaseStringAspect>();
commandLine->setSettingsKey("RemoteLinuxCustomCommandDeploymentStep.CommandLine");
@@ -53,21 +44,13 @@ RemoteLinuxCustomCommandDeploymentStep::RemoteLinuxCustomCommandDeploymentStep(B
setDefaultDisplayName(displayName());
- setInternalInitializer([this, commandLine] {
- d->service.setCommandLine(commandLine->value().trimmed());
- return d->service.isDeploymentPossible();
+ setInternalInitializer([service, commandLine] {
+ service->setCommandLine(commandLine->value().trimmed());
+ return service->isDeploymentPossible();
});
}
-RemoteLinuxCustomCommandDeploymentStep::~RemoteLinuxCustomCommandDeploymentStep()
-{
- delete d;
-}
-
-AbstractRemoteLinuxDeployService *RemoteLinuxCustomCommandDeploymentStep::deployService() const
-{
- return &d->service;
-}
+RemoteLinuxCustomCommandDeploymentStep::~RemoteLinuxCustomCommandDeploymentStep() = default;
Core::Id RemoteLinuxCustomCommandDeploymentStep::stepId()
{
diff --git a/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.h b/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.h
index b35332c7bfc..56f3ecac29d 100644
--- a/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.h
+++ b/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.h
@@ -28,23 +28,18 @@
#include "abstractremotelinuxdeploystep.h"
namespace RemoteLinux {
-namespace Internal { class RemoteLinuxCustomCommandDeploymentStepPrivate; }
class REMOTELINUX_EXPORT RemoteLinuxCustomCommandDeploymentStep
: public AbstractRemoteLinuxDeployStep
{
Q_OBJECT
+
public:
explicit RemoteLinuxCustomCommandDeploymentStep(ProjectExplorer::BuildStepList *bsl);
~RemoteLinuxCustomCommandDeploymentStep() override;
static Core::Id stepId();
static QString displayName();
-
-private:
- AbstractRemoteLinuxDeployService *deployService() const override;
-
- Internal::RemoteLinuxCustomCommandDeploymentStepPrivate *d;
};
} // namespace RemoteLinux
diff --git a/src/plugins/remotelinux/remotelinuxkillappservice.cpp b/src/plugins/remotelinux/remotelinuxkillappservice.cpp
index f0336354449..c3ce06c2548 100644
--- a/src/plugins/remotelinux/remotelinuxkillappservice.cpp
+++ b/src/plugins/remotelinux/remotelinuxkillappservice.cpp
@@ -35,9 +35,8 @@ public:
};
} // namespace Internal
-RemoteLinuxKillAppService::RemoteLinuxKillAppService(QObject *parent)
- : AbstractRemoteLinuxDeployService(parent),
- d(new Internal::RemoteLinuxKillAppServicePrivate)
+RemoteLinuxKillAppService::RemoteLinuxKillAppService()
+ : d(new Internal::RemoteLinuxKillAppServicePrivate)
{
}
diff --git a/src/plugins/remotelinux/remotelinuxkillappservice.h b/src/plugins/remotelinux/remotelinuxkillappservice.h
index 16dd33908ee..c3ff4f5e0e4 100644
--- a/src/plugins/remotelinux/remotelinuxkillappservice.h
+++ b/src/plugins/remotelinux/remotelinuxkillappservice.h
@@ -34,7 +34,7 @@ class REMOTELINUX_EXPORT RemoteLinuxKillAppService : public AbstractRemoteLinuxD
{
Q_OBJECT
public:
- RemoteLinuxKillAppService(QObject *parent = nullptr);
+ RemoteLinuxKillAppService();
~RemoteLinuxKillAppService() override;
void setRemoteExecutable(const QString &filePath);
diff --git a/src/plugins/remotelinux/remotelinuxkillappstep.cpp b/src/plugins/remotelinux/remotelinuxkillappstep.cpp
index f708f9b8646..ad07acaa501 100644
--- a/src/plugins/remotelinux/remotelinuxkillappstep.cpp
+++ b/src/plugins/remotelinux/remotelinuxkillappstep.cpp
@@ -31,33 +31,28 @@
#include <projectexplorer/target.h>
#include <utils/qtcassert.h>
-#include <QString>
-
using namespace ProjectExplorer;
namespace RemoteLinux {
RemoteLinuxKillAppStep::RemoteLinuxKillAppStep(BuildStepList *bsl, Core::Id id)
- : AbstractRemoteLinuxDeployStep(bsl, id), m_service(new RemoteLinuxKillAppService(this))
+ : AbstractRemoteLinuxDeployStep(bsl, id)
{
+ auto service = createDeployService<RemoteLinuxKillAppService>();
+
setDefaultDisplayName(displayName());
setWidgetExpandedByDefault(false);
- setInternalInitializer([this] {
+ setInternalInitializer([this, service] {
Target * const theTarget = target();
QTC_ASSERT(theTarget, return CheckResult::failure());
RunConfiguration * const rc = theTarget->activeRunConfiguration();
const QString remoteExe = rc ? rc->runnable().executable : QString();
- m_service->setRemoteExecutable(remoteExe);
+ service->setRemoteExecutable(remoteExe);
return CheckResult::success();
});
}
-AbstractRemoteLinuxDeployService *RemoteLinuxKillAppStep::deployService() const
-{
- return m_service;
-}
-
Core::Id RemoteLinuxKillAppStep::stepId()
{
return "RemoteLinux.KillAppStep";
diff --git a/src/plugins/remotelinux/remotelinuxkillappstep.h b/src/plugins/remotelinux/remotelinuxkillappstep.h
index e7fa0a48eee..7aec59acd97 100644
--- a/src/plugins/remotelinux/remotelinuxkillappstep.h
+++ b/src/plugins/remotelinux/remotelinuxkillappstep.h
@@ -28,7 +28,6 @@
#include "abstractremotelinuxdeploystep.h"
namespace RemoteLinux {
-class RemoteLinuxKillAppService;
class REMOTELINUX_EXPORT RemoteLinuxKillAppStep : public AbstractRemoteLinuxDeployStep
{
@@ -39,11 +38,6 @@ public:
static Core::Id stepId();
static QString displayName();
-
-private:
- AbstractRemoteLinuxDeployService *deployService() const override;
-
- RemoteLinuxKillAppService * const m_service;
};
} // namespace RemoteLinux
diff --git a/src/plugins/remotelinux/rsyncdeploystep.cpp b/src/plugins/remotelinux/rsyncdeploystep.cpp
index b26da0dd958..19429e7778e 100644
--- a/src/plugins/remotelinux/rsyncdeploystep.cpp
+++ b/src/plugins/remotelinux/rsyncdeploystep.cpp
@@ -177,15 +177,11 @@ void RsyncDeployService::setFinished()
} // namespace Internal
-class RsyncDeployStep::RsyncDeployStepPrivate
-{
-public:
- Internal::RsyncDeployService deployService;
-};
-
RsyncDeployStep::RsyncDeployStep(BuildStepList *bsl)
- : AbstractRemoteLinuxDeployStep(bsl, stepId()), d(new RsyncDeployStepPrivate)
+ : AbstractRemoteLinuxDeployStep(bsl, stepId())
{
+ auto service = createDeployService<Internal::RsyncDeployService>();
+
auto flags = addAspect<BaseStringAspect>();
flags->setDisplayStyle(BaseStringAspect::LineEditDisplay);
flags->setSettingsKey("RemoteLinux.RsyncDeployStep.Flags");
@@ -199,28 +195,18 @@ RsyncDeployStep::RsyncDeployStep(BuildStepList *bsl)
setDefaultDisplayName(displayName());
- setInternalInitializer([this, flags, ignoreMissingFiles] {
- d->deployService.setIgnoreMissingFiles(ignoreMissingFiles->value());
- d->deployService.setFlags(flags->value());
- return d->deployService.isDeploymentPossible();
+ setInternalInitializer([service, flags, ignoreMissingFiles] {
+ service->setIgnoreMissingFiles(ignoreMissingFiles->value());
+ service->setFlags(flags->value());
+ return service->isDeploymentPossible();
});
-}
-RsyncDeployStep::~RsyncDeployStep()
-{
- delete d;
-}
-
-AbstractRemoteLinuxDeployService *RsyncDeployStep::deployService() const
-{
- return &d->deployService;
+ setRunPreparer([this, service] {
+ service->setDeployableFiles(target()->deploymentData().allFiles());
+ });
}
-void RsyncDeployStep::doRun()
-{
- d->deployService.setDeployableFiles(target()->deploymentData().allFiles());
- AbstractRemoteLinuxDeployStep::doRun();
-}
+RsyncDeployStep::~RsyncDeployStep() = default;
Core::Id RsyncDeployStep::stepId()
{
diff --git a/src/plugins/remotelinux/rsyncdeploystep.h b/src/plugins/remotelinux/rsyncdeploystep.h
index 943fd349a72..746715d5e33 100644
--- a/src/plugins/remotelinux/rsyncdeploystep.h
+++ b/src/plugins/remotelinux/rsyncdeploystep.h
@@ -54,13 +54,6 @@ public:
static QString defaultFlags();
static RsyncCommandLine rsyncCommand(const QSsh::SshConnection &sshConnection,
const QString &flags);
-
-private:
- AbstractRemoteLinuxDeployService *deployService() const override;
- void doRun() override;
-
- class RsyncDeployStepPrivate;
- RsyncDeployStepPrivate * const d;
};
} // namespace RemoteLinux
diff --git a/src/plugins/remotelinux/uploadandinstalltarpackagestep.cpp b/src/plugins/remotelinux/uploadandinstalltarpackagestep.cpp
index 505ecaa9af8..585f28da592 100644
--- a/src/plugins/remotelinux/uploadandinstalltarpackagestep.cpp
+++ b/src/plugins/remotelinux/uploadandinstalltarpackagestep.cpp
@@ -44,9 +44,8 @@ public:
using namespace Internal;
-UploadAndInstallTarPackageService::UploadAndInstallTarPackageService(QObject *parent)
- : AbstractUploadAndInstallPackageService(parent),
- d(new UploadAndInstallTarPackageServicePrivate)
+UploadAndInstallTarPackageService::UploadAndInstallTarPackageService()
+ : d(new UploadAndInstallTarPackageServicePrivate)
{
}
@@ -64,11 +63,12 @@ AbstractRemoteLinuxPackageInstaller *UploadAndInstallTarPackageService::packageI
UploadAndInstallTarPackageStep::UploadAndInstallTarPackageStep(BuildStepList *bsl)
: AbstractRemoteLinuxDeployStep(bsl, stepId())
{
- m_deployService = new UploadAndInstallTarPackageService(this);
+ auto service = createDeployService<UploadAndInstallTarPackageService>();
+
setDefaultDisplayName(displayName());
setWidgetExpandedByDefault(false);
- setInternalInitializer([this] {
+ setInternalInitializer([this, service] {
const TarPackageCreationStep *pStep = nullptr;
for (BuildStep *step : deployConfiguration()->stepList()->steps()) {
@@ -80,8 +80,8 @@ UploadAndInstallTarPackageStep::UploadAndInstallTarPackageStep(BuildStepList *bs
if (!pStep)
return CheckResult::failure(tr("No tarball creation step found."));
- m_deployService->setPackageFilePath(pStep->packageFilePath());
- return m_deployService->isDeploymentPossible();
+ service->setPackageFilePath(pStep->packageFilePath());
+ return service->isDeploymentPossible();
});
}
diff --git a/src/plugins/remotelinux/uploadandinstalltarpackagestep.h b/src/plugins/remotelinux/uploadandinstalltarpackagestep.h
index 9503bcb000e..d4566470ee8 100644
--- a/src/plugins/remotelinux/uploadandinstalltarpackagestep.h
+++ b/src/plugins/remotelinux/uploadandinstalltarpackagestep.h
@@ -38,7 +38,7 @@ class REMOTELINUX_EXPORT UploadAndInstallTarPackageService : public AbstractUplo
Q_OBJECT
public:
- explicit UploadAndInstallTarPackageService(QObject *parent);
+ UploadAndInstallTarPackageService();
~UploadAndInstallTarPackageService() override;
private:
@@ -57,11 +57,6 @@ public:
static Core::Id stepId();
static QString displayName();
-
-private:
- AbstractRemoteLinuxDeployService *deployService() const override { return m_deployService; }
-
- UploadAndInstallTarPackageService *m_deployService;
};
} //namespace RemoteLinux