49 lines
994 B
C++
49 lines
994 B
C++
#pragma once
|
|
|
|
#include <QObject>
|
|
#include <QProcess>
|
|
|
|
class Entry : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
Entry(const QString &name, const QString &tunnel, bool sudo, QObject *parent = nullptr);
|
|
~Entry() override;
|
|
|
|
const QString &name() const { return m_name; }
|
|
const QString &tunnel() const { return m_tunnel; }
|
|
bool sudo() const { return m_sudo; }
|
|
|
|
const QString &logOutput() const { return m_logOutput; }
|
|
|
|
Qt::CheckState state() const;
|
|
|
|
void toggle();
|
|
void start();
|
|
void stop();
|
|
|
|
QString binaryName() const;
|
|
QStringList arguments() const;
|
|
|
|
signals:
|
|
void dataChanged();
|
|
|
|
private slots:
|
|
void errorOccurred(QProcess::ProcessError error);
|
|
void stateChanged(QProcess::ProcessState state);
|
|
void readyReadStandardOutput();
|
|
void readyReadStandardError();
|
|
|
|
private:
|
|
const QString m_name;
|
|
const QString m_tunnel;
|
|
const bool m_sudo;
|
|
|
|
bool m_readyReceived{false};
|
|
|
|
QProcess m_process;
|
|
|
|
QString m_logOutput;
|
|
};
|