From df551b881237f1eb98cc46a5c0e1f0f93087f34c Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Fri, 4 Sep 2015 21:37:54 +0200 Subject: [PATCH] Expose session signal sending to QML As QTermWidget's `Session` class already offers support for sending signals to the contained process it makes sense to expose this functionality to it's QML version. Otherwise one would have to resort to fiddling around with process ids and system calls or further external applications inside QML to send signals to processes launched using the widget. Adding a `stopShellProgram` method to `KSession` complementing `startShellProgram` was also considered but exposing `sendSignal` offers a more general interface. --- src/ksession.cpp | 9 +++++++++ src/ksession.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/ksession.cpp b/src/ksession.cpp index d77b585..0a26509 100644 --- a/src/ksession.cpp +++ b/src/ksession.cpp @@ -131,6 +131,15 @@ void KSession::startShellProgram() m_session->run(); } +bool KSession::sendSignal(int signal) +{ + if ( !m_session->isRunning() ) { + return false; + } + + return m_session->sendSignal(signal); +} + int KSession::getShellPID() { return m_session->processId(); diff --git a/src/ksession.h b/src/ksession.h index d1cf794..9ed58be 100644 --- a/src/ksession.h +++ b/src/ksession.h @@ -118,6 +118,8 @@ public slots: void startShellProgram(); + bool sendSignal(int signal); + // Shell program, default is /bin/bash void setShellProgram(const QString & progname);