57 lines
1.9 KiB
C++
57 lines
1.9 KiB
C++
#ifndef VPN_LOGIC_H
|
|
#define VPN_LOGIC_H
|
|
|
|
#include "PageLogicBase.h"
|
|
#include "protocols/vpnprotocol.h"
|
|
|
|
class UiLogic;
|
|
|
|
class VpnLogic : public PageLogicBase
|
|
{
|
|
Q_OBJECT
|
|
|
|
AUTO_PROPERTY(bool, pushButtonConnectChecked)
|
|
AUTO_PROPERTY(QString, labelSpeedReceivedText)
|
|
AUTO_PROPERTY(QString, labelSpeedSentText)
|
|
AUTO_PROPERTY(QString, labelStateText)
|
|
AUTO_PROPERTY(bool, pushButtonConnectEnabled)
|
|
AUTO_PROPERTY(bool, widgetVpnModeEnabled)
|
|
AUTO_PROPERTY(QString, labelErrorText)
|
|
AUTO_PROPERTY(bool, pushButtonVpnAddSiteEnabled)
|
|
|
|
AUTO_PROPERTY(bool, radioButtonVpnModeAllSitesChecked)
|
|
AUTO_PROPERTY(bool, radioButtonVpnModeForwardSitesChecked)
|
|
AUTO_PROPERTY(bool, radioButtonVpnModeExceptSitesChecked)
|
|
|
|
public:
|
|
Q_INVOKABLE void onUpdatePage() override;
|
|
|
|
Q_INVOKABLE void onRadioButtonVpnModeAllSitesToggled(bool checked);
|
|
Q_INVOKABLE void onRadioButtonVpnModeForwardSitesToggled(bool checked);
|
|
Q_INVOKABLE void onRadioButtonVpnModeExceptSitesToggled(bool checked);
|
|
|
|
Q_INVOKABLE void onPushButtonConnectClicked(bool checked);
|
|
|
|
public:
|
|
explicit VpnLogic(UiLogic *uiLogic, QObject *parent = nullptr);
|
|
~VpnLogic() = default;
|
|
|
|
bool getPushButtonConnectChecked() const;
|
|
void setPushButtonConnectChecked(bool pushButtonConnectChecked);
|
|
|
|
public slots:
|
|
void onConnect();
|
|
void onConnectWorker(int serverIndex, const ServerCredentials &credentials, DockerContainer container, const QJsonObject &containerConfig);
|
|
void onDisconnect();
|
|
|
|
void onBytesChanged(quint64 receivedBytes, quint64 sentBytes);
|
|
void onConnectionStateChanged(VpnProtocol::ConnectionState state);
|
|
void onVpnProtocolError(amnezia::ErrorCode errorCode);
|
|
|
|
signals:
|
|
void connectToVpn(int serverIndex,
|
|
const ServerCredentials &credentials, DockerContainer container, const QJsonObject &containerConfig);
|
|
|
|
void disconnectFromVpn();
|
|
};
|
|
#endif // VPN_LOGIC_H
|