Files
avivpn/entry.h

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;
};