From 77e8e1707c7223fc4905058f531e83e6788ad845 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 13 Jun 2019 17:03:56 +0200 Subject: RemoteLinux: Move deployservice ownership to AbstractRemoteLinuxDeployStep Change-Id: I12cfa0d2cdb171d381e6fde6b0e71fc0c098d746 Reviewed-by: Christian Kandeler --- src/plugins/boot2qt/qdbmakedefaultappstep.cpp | 34 +++++------------- src/plugins/boot2qt/qdbmakedefaultappstep.h | 6 +--- src/plugins/boot2qt/qdbstopapplicationstep.cpp | 20 ++--------- src/plugins/boot2qt/qdbstopapplicationstep.h | 9 ----- .../remotelinux/abstractremotelinuxdeploystep.cpp | 40 +++++++++++++++------- .../remotelinux/abstractremotelinuxdeploystep.h | 13 +++++-- .../abstractuploadandinstallpackageservice.cpp | 5 ++- .../abstractuploadandinstallpackageservice.h | 2 +- .../remotelinux/genericdirectuploadstep.cpp | 39 ++++++--------------- src/plugins/remotelinux/genericdirectuploadstep.h | 8 ----- .../remotelinuxcheckforfreediskspacestep.cpp | 37 +++++--------------- .../remotelinuxcheckforfreediskspacestep.h | 8 +---- .../remotelinuxcustomcommanddeploymentstep.cpp | 27 +++------------ .../remotelinuxcustomcommanddeploymentstep.h | 7 +--- .../remotelinux/remotelinuxkillappservice.cpp | 5 ++- .../remotelinux/remotelinuxkillappservice.h | 2 +- src/plugins/remotelinux/remotelinuxkillappstep.cpp | 15 +++----- src/plugins/remotelinux/remotelinuxkillappstep.h | 6 ---- src/plugins/remotelinux/rsyncdeploystep.cpp | 36 ++++++------------- src/plugins/remotelinux/rsyncdeploystep.h | 7 ---- .../remotelinux/uploadandinstalltarpackagestep.cpp | 14 ++++---- .../remotelinux/uploadandinstalltarpackagestep.h | 7 +--- 22 files changed, 107 insertions(+), 240 deletions(-) diff --git a/src/plugins/boot2qt/qdbmakedefaultappstep.cpp b/src/plugins/boot2qt/qdbmakedefaultappstep.cpp index e30f68e36f..8ff39732ff 100644 --- a/src/plugins/boot2qt/qdbmakedefaultappstep.cpp +++ b/src/plugins/boot2qt/qdbmakedefaultappstep.cpp @@ -33,13 +33,6 @@ namespace Qdb { namespace Internal { -class QdbMakeDefaultAppStepPrivate -{ -public: - QdbMakeDefaultAppService deployService; - bool makeDefault; -}; - class QdbConfigWidget : public ProjectExplorer::BuildStepConfigWidget { public: @@ -78,18 +71,14 @@ private: QdbMakeDefaultAppStep::QdbMakeDefaultAppStep(ProjectExplorer::BuildStepList *bsl) : AbstractRemoteLinuxDeployStep(bsl, stepId()) { - d = new QdbMakeDefaultAppStepPrivate; setDefaultDisplayName(stepDisplayName()); - setInternalInitializer([this] { - d->deployService.setMakeDefault(d->makeDefault); - return deployService()->isDeploymentPossible(); - }); -} + auto service = createDeployService(); -QdbMakeDefaultAppStep::~QdbMakeDefaultAppStep() -{ - delete d; + setInternalInitializer([this, service] { + service->setMakeDefault(m_makeDefault); + return service->isDeploymentPossible(); + }); } Core::Id QdbMakeDefaultAppStep::stepId() @@ -97,11 +86,6 @@ Core::Id QdbMakeDefaultAppStep::stepId() return "Qdb.MakeDefaultAppStep"; } -RemoteLinux::AbstractRemoteLinuxDeployService *QdbMakeDefaultAppStep::deployService() const -{ - return &d->deployService; -} - ProjectExplorer::BuildStepConfigWidget *QdbMakeDefaultAppStep::createConfigWidget() { return new QdbConfigWidget(this); @@ -114,12 +98,12 @@ QString QdbMakeDefaultAppStep::stepDisplayName() void QdbMakeDefaultAppStep::setMakeDefault(bool makeDefault) { - d->makeDefault = makeDefault; + m_makeDefault = makeDefault; } bool QdbMakeDefaultAppStep::makeDefault() const { - return d->makeDefault; + return m_makeDefault; } static QString makeDefaultKey() @@ -131,14 +115,14 @@ bool QdbMakeDefaultAppStep::fromMap(const QVariantMap &map) { if (!AbstractRemoteLinuxDeployStep::fromMap(map)) return false; - d->makeDefault = map.value(makeDefaultKey()).toBool(); + m_makeDefault = map.value(makeDefaultKey()).toBool(); return true; } QVariantMap QdbMakeDefaultAppStep::toMap() const { QVariantMap map = AbstractRemoteLinuxDeployStep::toMap(); - map.insert(makeDefaultKey(), d->makeDefault); + map.insert(makeDefaultKey(), m_makeDefault); return map; } diff --git a/src/plugins/boot2qt/qdbmakedefaultappstep.h b/src/plugins/boot2qt/qdbmakedefaultappstep.h index bceb588793..e5f2be8389 100644 --- a/src/plugins/boot2qt/qdbmakedefaultappstep.h +++ b/src/plugins/boot2qt/qdbmakedefaultappstep.h @@ -30,8 +30,6 @@ namespace Qdb { namespace Internal { -class QdbMakeDefaultAppStepPrivate; - class QdbMakeDefaultAppStep : public RemoteLinux::AbstractRemoteLinuxDeployStep { Q_OBJECT @@ -39,7 +37,6 @@ class QdbMakeDefaultAppStep : public RemoteLinux::AbstractRemoteLinuxDeployStep public: explicit QdbMakeDefaultAppStep(ProjectExplorer::BuildStepList *bsl); - ~QdbMakeDefaultAppStep() override; static Core::Id stepId(); static QString stepDisplayName(); @@ -47,13 +44,12 @@ public: bool makeDefault() const; protected: - RemoteLinux::AbstractRemoteLinuxDeployService *deployService() const override; ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override; bool fromMap(const QVariantMap &map) override; QVariantMap toMap() const override; private: - QdbMakeDefaultAppStepPrivate *d; + bool m_makeDefault = false; }; } // namespace Internal diff --git a/src/plugins/boot2qt/qdbstopapplicationstep.cpp b/src/plugins/boot2qt/qdbstopapplicationstep.cpp index 2ed8e68db8..0005a01712 100644 --- a/src/plugins/boot2qt/qdbstopapplicationstep.cpp +++ b/src/plugins/boot2qt/qdbstopapplicationstep.cpp @@ -30,24 +30,15 @@ namespace Qdb { namespace Internal { -class QdbStopApplicationStepPrivate -{ -public: - QdbStopApplicationService deployService; -}; - QdbStopApplicationStep::QdbStopApplicationStep(ProjectExplorer::BuildStepList *bsl) : AbstractRemoteLinuxDeployStep(bsl, stepId()) { - d = new QdbStopApplicationStepPrivate; + auto service = createDeployService(); + setDefaultDisplayName(stepDisplayName()); setWidgetExpandedByDefault(false); - setInternalInitializer([this] { return deployService()->isDeploymentPossible(); }); -} -QdbStopApplicationStep::~QdbStopApplicationStep() -{ - delete d; + setInternalInitializer([service] { return service->isDeploymentPossible(); }); } Core::Id QdbStopApplicationStep::stepId() @@ -55,11 +46,6 @@ Core::Id QdbStopApplicationStep::stepId() return "Qdb.StopApplicationStep"; } -RemoteLinux::AbstractRemoteLinuxDeployService *QdbStopApplicationStep::deployService() const -{ - return &d->deployService; -} - QString QdbStopApplicationStep::stepDisplayName() { return tr("Stop already running application"); diff --git a/src/plugins/boot2qt/qdbstopapplicationstep.h b/src/plugins/boot2qt/qdbstopapplicationstep.h index dcb4e06276..2d1fcf69c9 100644 --- a/src/plugins/boot2qt/qdbstopapplicationstep.h +++ b/src/plugins/boot2qt/qdbstopapplicationstep.h @@ -30,23 +30,14 @@ namespace Qdb { namespace Internal { -class QdbStopApplicationStepPrivate; - class QdbStopApplicationStep : public RemoteLinux::AbstractRemoteLinuxDeployStep { Q_OBJECT public: explicit QdbStopApplicationStep(ProjectExplorer::BuildStepList *bsl); - ~QdbStopApplicationStep() final; static Core::Id stepId(); static QString stepDisplayName(); - -protected: - RemoteLinux::AbstractRemoteLinuxDeployService *deployService() const final; - -private: - QdbStopApplicationStepPrivate *d; }; } // namespace Internal diff --git a/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp b/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp index 526f99ed18..a1a497d171 100644 --- a/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp +++ b/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp @@ -41,6 +41,8 @@ class AbstractRemoteLinuxDeployStepPrivate public: bool hasError; std::function internalInit; + std::function runPreparer; + AbstractRemoteLinuxDeployService *deployService = nullptr; }; } // namespace Internal @@ -55,8 +57,19 @@ void AbstractRemoteLinuxDeployStep::setInternalInitializer(const std::functioninternalInit = init; } +void AbstractRemoteLinuxDeployStep::setRunPreparer(const std::function &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 6adbebf1aa..e15cef3706 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 &init); + void setRunPreparer(const std::function &prep); + + template + 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 18ac23f496..d94270eaeb 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 c970e287ea..cef3ccf6b3 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 036d07ea7b..2a07c5d94a 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(); auto incremental = addAspect(); 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 257a354c2a..0577366d9a 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 b2b74490c3..0db981e144 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(); + auto pathToCheckAspect = addAspect(); - 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(); - 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::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 97270fdb6e..5dd2cdcc94 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 35a80e005f..61aebbe893 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(); auto commandLine = addAspect(); 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 b35332c7bf..56f3ecac29 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 f033635444..c3ce06c254 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 16dd33908e..c3ff4f5e0e 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 f708f9b864..ad07acaa50 100644 --- a/src/plugins/remotelinux/remotelinuxkillappstep.cpp +++ b/src/plugins/remotelinux/remotelinuxkillappstep.cpp @@ -31,33 +31,28 @@ #include #include -#include - 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(); + 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 e7fa0a48ee..7aec59acd9 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 b26da0dd95..19429e7778 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(); + auto flags = addAspect(); 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 943fd349a7..746715d5e3 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 505ecaa9af..585f28da59 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(); + 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 9503bcb000..d4566470ee 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 -- cgit v1.2.3