From dcc93253c835d16c14b2356090cb9f8a995b698a Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 16 May 2022 20:07:57 +0200 Subject: [PATCH] FileTransfer: Add some static helpers Change-Id: Ie22e7ecce52b308df32316ff85d4744bd26060b0 Reviewed-by: Christian Kandeler --- src/plugins/remotelinux/filetransfer.h | 5 ++ src/plugins/remotelinux/linuxdevice.cpp | 58 ++++++++++++--------- src/plugins/remotelinux/rsyncdeploystep.cpp | 4 +- 3 files changed, 38 insertions(+), 29 deletions(-) diff --git a/src/plugins/remotelinux/filetransfer.h b/src/plugins/remotelinux/filetransfer.h index f3547d00989..5b0c8da2601 100644 --- a/src/plugins/remotelinux/filetransfer.h +++ b/src/plugins/remotelinux/filetransfer.h @@ -71,10 +71,15 @@ public: void setFilesToTransfer(const FilesToTransfer &files); void setRsyncFlags(const QString &flags); + FileTransferMethod transferMethod() const; + void test(); void start(); void stop(); + static QString transferMethodName(FileTransferMethod method); + static QString defaultRsyncFlags(); + signals: void progress(const QString &progressMessage); void done(const Utils::ProcessResultData &resultData); diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 3fb2fc9db1a..2c64e988fc9 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -1459,16 +1459,6 @@ static QByteArray transferCommand(const TransferDirection transferDirection, boo return {}; } -static QString methodName(FileTransferMethod method) -{ - switch (method) { - case FileTransferMethod::Sftp: return FileTransfer::tr("sftp"); break; - case FileTransferMethod::Rsync: return FileTransfer::tr("rsync"); break; - } - QTC_CHECK(false); - return {}; -} - class FileTransferInterface : public QObject { Q_OBJECT @@ -1508,9 +1498,10 @@ protected: ProcessResultData resultData = m_process.resultData(); if (resultData.m_error == QProcess::FailedToStart) { resultData.m_errorString = tr("\"%1\" failed to start: %2") - .arg(methodName(m_method), resultData.m_errorString); + .arg(FileTransfer::transferMethodName(m_method), resultData.m_errorString); } else if (resultData.m_exitStatus != QProcess::NormalExit) { - resultData.m_errorString = tr("\"%1\" crashed.").arg(methodName(m_method)); + resultData.m_errorString = tr("\"%1\" crashed.") + .arg(FileTransfer::transferMethodName(m_method)); } else if (resultData.m_exitCode != 0) { resultData.m_errorString = QString::fromLocal8Bit(m_process.readAllStandardError()); } else { @@ -1705,15 +1696,15 @@ class FileTransferPrivate : public QObject Q_OBJECT public: - void setDevice(const ProjectExplorer::IDeviceConstPtr &device) { m_device = device; } - void setTransferMethod(FileTransferMethod method) { m_method = method; } - void setFilesToTransfer(const FilesToTransfer &files) { m_files = files; } - void setRsyncFlags(const QString &flags) { m_rsyncFlags = flags; } - void test() { run(TestRun); } void start() { run(NormalRun); } void stop() { m_transfer.reset(); } + FileTransferMethod m_method = FileTransferMethod::Default; + IDevice::ConstPtr m_device; + FilesToTransfer m_files; + QString m_rsyncFlags = FileTransfer::defaultRsyncFlags(); + signals: void progress(const QString &progressMessage); void done(const Utils::ProcessResultData &resultData); @@ -1727,11 +1718,6 @@ private: void startFailed(const QString &errorString); void run(RunMode mode); - FileTransferMethod m_method = FileTransferMethod::Default; - IDevice::ConstPtr m_device; - FilesToTransfer m_files; - QString m_rsyncFlags = {"-av"}; // TODO: see RsyncDeployStep::defaultFlags(), reuse it - std::unique_ptr m_transfer; }; @@ -1792,22 +1778,22 @@ FileTransfer::~FileTransfer() void FileTransfer::setDevice(const ProjectExplorer::IDeviceConstPtr &device) { - d->setDevice(device); + d->m_device = device; } void FileTransfer::setTransferMethod(FileTransferMethod method) { - d->setTransferMethod(method); + d->m_method = method; } void FileTransfer::setFilesToTransfer(const FilesToTransfer &files) { - d->setFilesToTransfer(files); + d->m_files = files; } void FileTransfer::setRsyncFlags(const QString &flags) { - d->setRsyncFlags(flags); + d->m_rsyncFlags = flags; } void FileTransfer::test() @@ -1815,6 +1801,11 @@ void FileTransfer::test() d->test(); } +FileTransferMethod FileTransfer::transferMethod() const +{ + return d->m_method; +} + void FileTransfer::start() { d->start(); @@ -1825,6 +1816,21 @@ void FileTransfer::stop() d->stop(); } +QString FileTransfer::transferMethodName(FileTransferMethod method) +{ + switch (method) { + case FileTransferMethod::Sftp: return FileTransfer::tr("sftp"); + case FileTransferMethod::Rsync: return FileTransfer::tr("rsync"); + } + QTC_CHECK(false); + return {}; +} + +QString FileTransfer::defaultRsyncFlags() +{ + return "-av"; +} + namespace Internal { // Factory diff --git a/src/plugins/remotelinux/rsyncdeploystep.cpp b/src/plugins/remotelinux/rsyncdeploystep.cpp index 67ddfdb5fef..cde0ec258db 100644 --- a/src/plugins/remotelinux/rsyncdeploystep.cpp +++ b/src/plugins/remotelinux/rsyncdeploystep.cpp @@ -155,8 +155,6 @@ void RsyncDeployService::setFinished() } // namespace Internal -static const char s_defaultFlags[] = "-av"; - RsyncDeployStep::RsyncDeployStep(BuildStepList *bsl, Utils::Id id) : AbstractRemoteLinuxDeployStep(bsl, id) { @@ -166,7 +164,7 @@ RsyncDeployStep::RsyncDeployStep(BuildStepList *bsl, Utils::Id id) flags->setDisplayStyle(StringAspect::LineEditDisplay); flags->setSettingsKey("RemoteLinux.RsyncDeployStep.Flags"); flags->setLabelText(tr("Flags:")); - flags->setValue(s_defaultFlags); + flags->setValue(FileTransfer::defaultRsyncFlags()); auto ignoreMissingFiles = addAspect(); ignoreMissingFiles->setSettingsKey("RemoteLinux.RsyncDeployStep.IgnoreMissingFiles");