diff options
author | Weblate <noreply@weblate.org> | 2017-01-04 22:40:09 +0000 |
---|---|---|
committer | Weblate <noreply@weblate.org> | 2017-01-04 22:40:09 +0000 |
commit | d1f1993901e630eefed4a2cfb7772079a5dc84c5 (patch) | |
tree | 1fc0a5f83096a0d3f0a23e177902f604007fd265 /src-qt5/core/libLumina | |
parent | Translated using Weblate (lumina_DESKTOP@lt (generated)) (diff) | |
parent | Merge branch 'master' of github.com:trueos/lumina (diff) | |
download | lumina-d1f1993901e630eefed4a2cfb7772079a5dc84c5.tar.gz lumina-d1f1993901e630eefed4a2cfb7772079a5dc84c5.tar.bz2 lumina-d1f1993901e630eefed4a2cfb7772079a5dc84c5.zip |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'src-qt5/core/libLumina')
-rw-r--r-- | src-qt5/core/libLumina/ExternalProcess.h | 45 | ||||
-rw-r--r-- | src-qt5/core/libLumina/ExternalProcess.pri | 6 |
2 files changed, 51 insertions, 0 deletions
diff --git a/src-qt5/core/libLumina/ExternalProcess.h b/src-qt5/core/libLumina/ExternalProcess.h new file mode 100644 index 00000000..2106f296 --- /dev/null +++ b/src-qt5/core/libLumina/ExternalProcess.h @@ -0,0 +1,45 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This is a simple class for launching/managing an external process in a non-interactive manner +// This object will clean itself up when finished and log all output to a particular file if designated +// otherwise it will suppress all output from the process +//=========================================== +#ifndef _LUMINA_EXTERNAL_PROCESS_H +#define _LUMINA_EXTERNAL_PROCESS_H + +#include <QProcess> +#include <QString> + +class ExternalProcess : public QProcess{ + Q_OBJECT +private slots: + void processFinished(){ + //Clean up this object + this->deleteLater(); + } +public: + ExternalProcess(QString logfile = "") : QProcess(){ + this->setProcessChannelMode(QProcess::MergedChannels); + if(logfile.isEmpty()){ + this->setStandardOutputFile(QProcess::nullDevice()); + }else{ + this->setStandardOutputFile(logfile); + } + //Setup the connection for automatic cleanup + connect(this, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(processFinished()) ); + } + ~ExternalProcess(){ + } + + static void launch(QString program, QStringList args = QStringList()){ + //Quick launch of a process with logging disabled and automatic cleanup + ExternalProcess *tmp = new ExternalProcess(); + if(args.isEmpty()){ tmp->start(program); } + else{ tmp->start(program, args); } + } +}; +#endif diff --git a/src-qt5/core/libLumina/ExternalProcess.pri b/src-qt5/core/libLumina/ExternalProcess.pri new file mode 100644 index 00000000..0af4388c --- /dev/null +++ b/src-qt5/core/libLumina/ExternalProcess.pri @@ -0,0 +1,6 @@ +HEADERS *= $${PWD}/ExternalProcess.h + +INCLUDEPATH *= ${PWD} + +#Now the other dependendies of it +#include(LUtils.pri) |