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()
{
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();
}
@@ -75,6 +75,7 @@ void SshRemoteProcess::emitErrorOccurred(QProcess::ProcessError error)
void SshRemoteProcess::start()
{
QTC_ASSERT(!isRunning(), return);
m_errorString.clear();
const CommandLine cmd = fullLocalCommandLine();
if (!m_displayName.isEmpty()) {
Environment env = environment();
@@ -86,6 +87,13 @@ void SshRemoteProcess::start()
QtcProcess::start();
}
QString SshRemoteProcess::errorString() const
{
if (!m_errorString.isEmpty())
return m_errorString;
return QtcProcess::errorString();
}
void SshRemoteProcess::requestX11Forwarding(const QString &displayName)
{
m_displayName = displayName;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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