FileTransfer: Add some static helpers

Change-Id: Ie22e7ecce52b308df32316ff85d4744bd26060b0
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Jarek Kobus
2022-05-16 20:07:57 +02:00
parent c311b8e0fa
commit dcc93253c8
3 changed files with 38 additions and 29 deletions

View File

@@ -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);

View File

@@ -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<FileTransferInterface> 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

View File

@@ -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<BoolAspect>();
ignoreMissingFiles->setSettingsKey("RemoteLinux.RsyncDeployStep.IgnoreMissingFiles");