diff --git a/src/plugins/boot2qt/qdbdevice.cpp b/src/plugins/boot2qt/qdbdevice.cpp index 9c55aa35176..c7f59337ec2 100644 --- a/src/plugins/boot2qt/qdbdevice.cpp +++ b/src/plugins/boot2qt/qdbdevice.cpp @@ -36,6 +36,7 @@ #include #include +#include #include @@ -49,6 +50,7 @@ #include using namespace ProjectExplorer; +using namespace RemoteLinux; using namespace Utils; namespace Qdb { @@ -74,6 +76,20 @@ public: } }; +class QdbProcessImpl : public LinuxProcessInterface +{ +public: + QdbProcessImpl(const LinuxDevice *linuxDevice) + : LinuxProcessInterface(linuxDevice) {} + ~QdbProcessImpl() { killIfRunning(); } +private: + void sendControlSignal(ControlSignal controlSignal) final + { + QTC_ASSERT(controlSignal != ControlSignal::Interrupt, return); + QTC_ASSERT(controlSignal != ControlSignal::KickOff, return); + runInShell({Constants::AppcontrollerFilepath, {"--stop"}}); + } +}; class DeviceApplicationObserver : public ApplicationLauncher { @@ -172,6 +188,11 @@ QtcProcess *QdbDevice::createProcess(QObject *parent) const return new QdbDeviceProcess(sharedFromThis(), parent); } +ProcessInterface *QdbDevice::createProcessInterface() const +{ + return new QdbProcessImpl(this); +} + void QdbDevice::setSerialNumber(const QString &serial) { m_serialNumber = serial; diff --git a/src/plugins/boot2qt/qdbdevice.h b/src/plugins/boot2qt/qdbdevice.h index 3148cf6fe8a..1e55799614e 100644 --- a/src/plugins/boot2qt/qdbdevice.h +++ b/src/plugins/boot2qt/qdbdevice.h @@ -45,6 +45,7 @@ public: ProjectExplorer::IDeviceWidget *createWidget() final; Utils::QtcProcess *createProcess(QObject *parent) const final; + Utils::ProcessInterface *createProcessInterface() const override; void setSerialNumber(const QString &serial); QString serialNumber() const;