QtcProcess: Get rid of setErrorString() method

It's internal method, not meant to be used outside.
It's only used in case of FailedToStart error.
Remove it also from ProcessInterface.
Leave it inside DefaultImpl and its subclasses only.

Remove m_errorString field from ProcessSetupData.

Change-Id: Ie605b95c2ff605ab1259045f1a5b16049207c1d3
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2022-04-04 10:24:37 +02:00
parent 1464238eb5
commit 365a05640b
8 changed files with 19 additions and 21 deletions

View File

@@ -61,7 +61,7 @@ SshRemoteProcess::SshRemoteProcess(const QString &command, const QStringList &co
void SshRemoteProcess::emitFinished() void SshRemoteProcess::emitFinished()
{ {
if (exitStatus() == QProcess::CrashExit) if (exitStatus() == QProcess::CrashExit)
setErrorString(tr("The ssh process crashed: %1").arg(errorString())); m_errorString = tr("The ssh process crashed: %1").arg(errorString());
emit finished(); emit finished();
} }
@@ -75,6 +75,7 @@ void SshRemoteProcess::emitErrorOccurred(QProcess::ProcessError error)
void SshRemoteProcess::start() void SshRemoteProcess::start()
{ {
QTC_ASSERT(!isRunning(), return); QTC_ASSERT(!isRunning(), return);
m_errorString.clear();
const CommandLine cmd = fullLocalCommandLine(); const CommandLine cmd = fullLocalCommandLine();
if (!m_displayName.isEmpty()) { if (!m_displayName.isEmpty()) {
Environment env = environment(); Environment env = environment();
@@ -86,6 +87,13 @@ void SshRemoteProcess::start()
QtcProcess::start(); QtcProcess::start();
} }
QString SshRemoteProcess::errorString() const
{
if (!m_errorString.isEmpty())
return m_errorString;
return QtcProcess::errorString();
}
void SshRemoteProcess::requestX11Forwarding(const QString &displayName) void SshRemoteProcess::requestX11Forwarding(const QString &displayName)
{ {
m_displayName = displayName; m_displayName = displayName;

View File

@@ -42,6 +42,7 @@ public:
void requestX11Forwarding(const QString &displayName); void requestX11Forwarding(const QString &displayName);
void start() override; void start() override;
QString errorString() const override;
Utils::CommandLine fullLocalCommandLine(bool inTerminal = false) const; Utils::CommandLine fullLocalCommandLine(bool inTerminal = false) const;
@@ -55,6 +56,7 @@ private:
QString m_remoteCommand; QString m_remoteCommand;
QStringList m_connectionArgs; QStringList m_connectionArgs;
QString m_displayName; QString m_displayName;
QString m_errorString;
}; };
} // namespace QSsh } // namespace QSsh

View File

@@ -205,7 +205,8 @@ void CallerHandle::handleError(const ErrorSignal *launcherSignal)
QTC_ASSERT(isCalledFromCallersThread(), return); QTC_ASSERT(isCalledFromCallersThread(), return);
m_processState = QProcess::NotRunning; m_processState = QProcess::NotRunning;
m_error = launcherSignal->error(); m_error = launcherSignal->error();
m_setup->m_errorString = launcherSignal->errorString(); if (!launcherSignal->errorString().isEmpty())
m_errorString = launcherSignal->errorString();
if (m_error == QProcess::FailedToStart) if (m_error == QProcess::FailedToStart)
m_exitCode = 255; // This code is being returned by QProcess when FailedToStart error occurred m_exitCode = 255; // This code is being returned by QProcess when FailedToStart error occurred
emit errorOccurred(m_error); emit errorOccurred(m_error);
@@ -314,7 +315,7 @@ void CallerHandle::cancel()
case QProcess::NotRunning: case QProcess::NotRunning:
break; break;
case QProcess::Starting: case QProcess::Starting:
m_setup->m_errorString = QCoreApplication::translate("Utils::LauncherHandle", m_errorString = QCoreApplication::translate("Utils::LauncherHandle",
"Process was canceled before it was started."); "Process was canceled before it was started.");
m_error = QProcess::FailedToStart; m_error = QProcess::FailedToStart;
if (LauncherInterface::isReady()) // TODO: race condition with m_processState??? if (LauncherInterface::isReady()) // TODO: race condition with m_processState???
@@ -355,13 +356,13 @@ int CallerHandle::exitCode() const
QString CallerHandle::errorString() const QString CallerHandle::errorString() const
{ {
QTC_ASSERT(isCalledFromCallersThread(), return {}); QTC_ASSERT(isCalledFromCallersThread(), return {});
return m_setup->m_errorString; return m_errorString;
} }
void CallerHandle::setErrorString(const QString &str) void CallerHandle::setErrorString(const QString &str)
{ {
QTC_ASSERT(isCalledFromCallersThread(), return); QTC_ASSERT(isCalledFromCallersThread(), return);
m_setup->m_errorString = str; m_errorString = str;
} }
void CallerHandle::start(const QString &program, const QStringList &arguments) void CallerHandle::start(const QString &program, const QStringList &arguments)

View File

@@ -164,6 +164,7 @@ private:
QByteArray m_stdout; QByteArray m_stdout;
QByteArray m_stderr; QByteArray m_stderr;
QProcess::ProcessError m_error = QProcess::UnknownError; QProcess::ProcessError m_error = QProcess::UnknownError;
QString m_errorString;
QString m_command; QString m_command;
QStringList m_arguments; QStringList m_arguments;

View File

@@ -52,7 +52,6 @@ public:
QProcess::ProcessChannelMode m_processChannelMode = QProcess::SeparateChannels; QProcess::ProcessChannelMode m_processChannelMode = QProcess::SeparateChannels;
QVariantHash m_extraData; QVariantHash m_extraData;
QString m_standardInputFile; QString m_standardInputFile;
QString m_errorString; // partial internal
QString m_nativeArguments; // internal, dependent on specific code path QString m_nativeArguments; // internal, dependent on specific code path
bool m_abortOnMetaChars = true; bool m_abortOnMetaChars = true;
@@ -89,7 +88,6 @@ public:
virtual QProcess::ProcessError error() const = 0; virtual QProcess::ProcessError error() const = 0;
virtual QString errorString() const = 0; virtual QString errorString() const = 0;
virtual void setErrorString(const QString &str) = 0;
virtual bool waitForStarted(int msecs) = 0; virtual bool waitForStarted(int msecs) = 0;
virtual bool waitForReadyRead(int msecs) = 0; virtual bool waitForReadyRead(int msecs) = 0;
@@ -147,7 +145,6 @@ public:
QProcess::ProcessError error() const override { return m_target->error(); } QProcess::ProcessError error() const override { return m_target->error(); }
QString errorString() const override { return m_target->errorString(); } QString errorString() const override { return m_target->errorString(); }
void setErrorString(const QString &str) override { m_target->setErrorString(str); }
bool waitForStarted(int msecs) override { return m_target->waitForStarted(msecs); } bool waitForStarted(int msecs) override { return m_target->waitForStarted(msecs); }
bool waitForReadyRead(int msecs) override { return m_target->waitForReadyRead(msecs); } bool waitForReadyRead(int msecs) override { return m_target->waitForReadyRead(msecs); }

View File

@@ -221,6 +221,7 @@ protected:
void defaultStart(); void defaultStart();
private: private:
virtual void setErrorString(const QString &str) = 0;
virtual void doDefaultStart(const QString &program, const QStringList &arguments) = 0; virtual void doDefaultStart(const QString &program, const QStringList &arguments) = 0;
bool dissolveCommand(QString *program, QStringList *arguments); bool dissolveCommand(QString *program, QStringList *arguments);
bool ensureProgramExists(const QString &program); bool ensureProgramExists(const QString &program);
@@ -394,7 +395,6 @@ private:
m_process->setWorkingDirectory(m_setup->m_workingDirectory.path()); m_process->setWorkingDirectory(m_setup->m_workingDirectory.path());
m_process->setStandardInputFile(m_setup->m_standardInputFile); m_process->setStandardInputFile(m_setup->m_standardInputFile);
m_process->setProcessChannelMode(m_setup->m_processChannelMode); m_process->setProcessChannelMode(m_setup->m_processChannelMode);
m_process->setErrorString(m_setup->m_errorString);
if (m_setup->m_lowPriority) if (m_setup->m_lowPriority)
m_process->setLowPriority(); m_process->setLowPriority();
if (m_setup->m_unixTerminalDisabled) if (m_setup->m_unixTerminalDisabled)
@@ -525,7 +525,6 @@ public:
void setProcessInterface(ProcessInterface *process) void setProcessInterface(ProcessInterface *process)
{ {
m_process.reset(process); m_process.reset(process);
m_setup.m_errorString.clear();
m_process->setParent(this); m_process->setParent(this);
connect(m_process.get(), &ProcessInterface::started, connect(m_process.get(), &ProcessInterface::started,
@@ -1182,15 +1181,7 @@ QString QtcProcess::errorString() const
{ {
if (d->m_process) if (d->m_process)
return d->m_process->errorString(); return d->m_process->errorString();
return d->m_setup.m_errorString; return {};
}
void QtcProcess::setErrorString(const QString &str)
{
if (d->m_process)
d->m_process->setErrorString(str);
else
d->m_setup.m_errorString = str;
} }
qint64 QtcProcess::processId() const qint64 QtcProcess::processId() const

View File

@@ -75,7 +75,6 @@ public:
QProcess::ProcessError error() const; QProcess::ProcessError error() const;
virtual QString errorString() const; virtual QString errorString() const;
void setErrorString(const QString &str);
bool waitForStarted(int msecs = 30000); bool waitForStarted(int msecs = 30000);
bool waitForReadyRead(int msecs = 30000); bool waitForReadyRead(int msecs = 30000);

View File

@@ -49,7 +49,6 @@ public:
QByteArray readAllStandardError() final { QTC_CHECK(false); return {}; } QByteArray readAllStandardError() final { QTC_CHECK(false); return {}; }
qint64 write(const QByteArray &) final { QTC_CHECK(false); return -1; } qint64 write(const QByteArray &) final { QTC_CHECK(false); return -1; }
void setErrorString(const QString &) final { QTC_CHECK(false); }
void terminate() final { stopProcess(); } void terminate() final { stopProcess(); }
void kill() final { stopProcess(); } void kill() final { stopProcess(); }