ProjectExplorer: Introduce DeviceProcessSignalOperation.

Every device can now return a DeviceProcessSignalOperation,
which allows to kill or interrupt processes running on the
device.

Change-Id: Idaa04ebc767e09ca167fa033ed93860b9b81479e
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: David Kaspar <dkaspar@blackberry.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
David Schulz
2013-09-16 15:30:30 +02:00
parent ca15d0aa95
commit a06af35631
32 changed files with 703 additions and 216 deletions

View File

@@ -295,13 +295,11 @@ void SshDeviceProcess::SshDeviceProcessPrivate::doSignal(QSsh::SshRemoteProcess:
if (serverSupportsSignals) {
process->sendSignal(signal);
} else {
const DeviceProcessSupport::Ptr processSupport = q->device()->processSupport();
QString signalCommandLine = signal == QSsh::SshRemoteProcess::IntSignal
? processSupport->interruptProcessByNameCommandLine(executable)
: processSupport->killProcessByNameCommandLine(executable);
const QSsh::SshRemoteProcess::Ptr signalProcess
= connection->createRemoteProcess(signalCommandLine.toUtf8());
signalProcess->start();
DeviceProcessSignalOperation::Ptr signalOperation = q->device()->signalOperation();
if (signal == QSsh::SshRemoteProcess::IntSignal)
signalOperation->interruptProcess(executable);
else
signalOperation->killProcess(executable);
}
break;
}