diff options
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/ssh/sshremoteprocess.cpp | 9 | ||||
-rw-r--r-- | src/libs/ssh/sshremoteprocess.h | 1 | ||||
-rw-r--r-- | src/libs/ssh/sshremoteprocessrunner.cpp | 10 | ||||
-rw-r--r-- | src/libs/utils/qtcprocess.cpp | 17 | ||||
-rw-r--r-- | src/libs/utils/qtcprocess.h | 3 |
5 files changed, 20 insertions, 20 deletions
diff --git a/src/libs/ssh/sshremoteprocess.cpp b/src/libs/ssh/sshremoteprocess.cpp index 088c8f868bd..97ca54dcc85 100644 --- a/src/libs/ssh/sshremoteprocess.cpp +++ b/src/libs/ssh/sshremoteprocess.cpp @@ -62,14 +62,7 @@ void SshRemoteProcess::emitFinished() { if (exitStatus() == QProcess::CrashExit) m_errorString = tr("The ssh process crashed: %1").arg(errorString()); - emit finished(); -} - -void SshRemoteProcess::emitErrorOccurred(QProcess::ProcessError error) -{ - if (error == QProcess::FailedToStart) - emit finished(); - emit errorOccurred(error); + QtcProcess::emitFinished(); } void SshRemoteProcess::start() diff --git a/src/libs/ssh/sshremoteprocess.h b/src/libs/ssh/sshremoteprocess.h index 99aa01a1cec..8f80ac1a5a4 100644 --- a/src/libs/ssh/sshremoteprocess.h +++ b/src/libs/ssh/sshremoteprocess.h @@ -50,7 +50,6 @@ public: protected: void emitFinished() override; - void emitErrorOccurred(QProcess::ProcessError error) override; private: QString m_remoteCommand; diff --git a/src/libs/ssh/sshremoteprocessrunner.cpp b/src/libs/ssh/sshremoteprocessrunner.cpp index c1259f4d9e1..617ffc000c4 100644 --- a/src/libs/ssh/sshremoteprocessrunner.cpp +++ b/src/libs/ssh/sshremoteprocessrunner.cpp @@ -36,6 +36,8 @@ running a remote process over an SSH connection. */ +using namespace Utils; + namespace QSsh { namespace Internal { namespace { @@ -109,13 +111,13 @@ void SshRemoteProcessRunner::handleConnected() setState(Connected); d->m_process = d->m_connection->createRemoteProcess(d->m_command); - connect(d->m_process.get(), &SshRemoteProcess::started, + connect(d->m_process.get(), &QtcProcess::started, this, &SshRemoteProcessRunner::handleProcessStarted); - connect(d->m_process.get(), &SshRemoteProcess::finished, + connect(d->m_process.get(), &QtcProcess::done, this, &SshRemoteProcessRunner::handleProcessFinished); - connect(d->m_process.get(), &SshRemoteProcess::readyReadStandardOutput, + connect(d->m_process.get(), &QtcProcess::readyReadStandardOutput, this, &SshRemoteProcessRunner::readyReadStandardOutput); - connect(d->m_process.get(), &SshRemoteProcess::readyReadStandardError, + connect(d->m_process.get(), &QtcProcess::readyReadStandardError, this, &SshRemoteProcessRunner::readyReadStandardError); d->m_process->start(); } diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index 7bd20d76b38..fee06952f46 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -590,6 +590,8 @@ public: void handleError(QProcess::ProcessError error); void clearForRun(); + void emitErrorOccurred(QProcess::ProcessError error); + ProcessResult interpretExitCode(int exitCode); QTextCodec *m_codec = QTextCodec::codecForLocale(); @@ -701,11 +703,7 @@ void QtcProcess::emitStarted() void QtcProcess::emitFinished() { emit finished(); -} - -void QtcProcess::emitErrorOccurred(QProcess::ProcessError error) -{ - emit errorOccurred(error); + emit done(); } void QtcProcess::setProcessInterface(ProcessInterface *interface) @@ -1647,7 +1645,14 @@ void QtcProcessPrivate::handleError(QProcess::ProcessError error) if (m_eventLoop) m_eventLoop->quit(); - q->emitErrorOccurred(error); + emitErrorOccurred(error); +} + +void QtcProcessPrivate::emitErrorOccurred(QProcess::ProcessError error) +{ + emit q->errorOccurred(error); + if (error == QProcess::FailedToStart) + emit q->done(); } } // namespace Utils diff --git a/src/libs/utils/qtcprocess.h b/src/libs/utils/qtcprocess.h index 1e73b0176f3..d7a2dcb7fd3 100644 --- a/src/libs/utils/qtcprocess.h +++ b/src/libs/utils/qtcprocess.h @@ -189,6 +189,8 @@ public: signals: void started(); void finished(); + void done(); // The same as finished() with the addition it's being also emitted after + // FailedToStart error occurred. void errorOccurred(QProcess::ProcessError error); void readyReadStandardOutput(); void readyReadStandardError(); @@ -197,7 +199,6 @@ protected: // TODO: remove these methods on QtcProcess de-virtualization virtual void emitStarted(); virtual void emitFinished(); - virtual void emitErrorOccurred(QProcess::ProcessError error); private: void setProcessInterface(ProcessInterface *interface); |