import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import org.kde.plasma.core 2.1 as PlasmaCore PlasmaCore.DataSource { id: executable engine: "executable" connectedSources: [] onNewData: { var exitCode = data["exit code"] var exitStatus = data["exit status"] var stdout = data["stdout"] var stderr = data["stderr"] exited(sourceName, exitCode, exitStatus, stdout, stderr) disconnectSource(sourceName) } onSourceConnected: { connected(source) } // execute the given cmd function exec(cmd: string) { if (cmd) connectSource(cmd) } signal connected(string source) signal exited(string cmd, int exitCode, int exitStatus, string stdout, string stderr) }