Files
amnezia-client/client/ui/pages_logic/VpnLogic.h
T

71 lines
2.3 KiB
C++
Raw Normal View History

2021-09-03 20:17:13 +03:00
#ifndef VPN_LOGIC_H
#define VPN_LOGIC_H
2021-09-07 21:01:56 +03:00
#include "PageLogicBase.h"
#include "protocols/vpnprotocol.h"
2021-09-03 20:17:13 +03:00
class UiLogic;
2021-09-07 21:01:56 +03:00
class VpnLogic : public PageLogicBase
2021-09-03 20:17:13 +03:00
{
Q_OBJECT
2021-09-08 13:52:36 +03:00
AUTO_PROPERTY(bool, pushButtonConnectChecked)
AUTO_PROPERTY(QString, labelSpeedReceivedText)
AUTO_PROPERTY(QString, labelSpeedSentText)
AUTO_PROPERTY(QString, labelStateText)
2021-11-17 15:01:48 +03:00
AUTO_PROPERTY(QString, labelCurrentServer)
AUTO_PROPERTY(QString, labelCurrentService)
2022-02-05 15:52:14 +03:00
AUTO_PROPERTY(QString, labelCurrentDns)
AUTO_PROPERTY(bool, amneziaDnsEnabled)
2021-09-08 13:52:36 +03:00
AUTO_PROPERTY(bool, pushButtonConnectEnabled)
2021-11-17 15:01:48 +03:00
AUTO_PROPERTY(bool, pushButtonConnectVisible)
2021-09-08 13:52:36 +03:00
AUTO_PROPERTY(bool, widgetVpnModeEnabled)
AUTO_PROPERTY(bool, isContainerSupportedByCurrentPlatform)
AUTO_PROPERTY(bool, isContainerHaveAuthData)
2021-12-11 14:44:24 +03:00
2021-09-08 13:52:36 +03:00
AUTO_PROPERTY(QString, labelErrorText)
2021-12-14 12:50:57 +03:00
AUTO_PROPERTY(QString, labelVersionText)
2021-09-08 13:52:36 +03:00
2022-01-23 19:16:40 +03:00
AUTO_PROPERTY(bool, isCustomRoutesSupported)
2021-09-08 13:52:36 +03:00
AUTO_PROPERTY(bool, radioButtonVpnModeAllSitesChecked)
AUTO_PROPERTY(bool, radioButtonVpnModeForwardSitesChecked)
AUTO_PROPERTY(bool, radioButtonVpnModeExceptSitesChecked)
2021-09-07 21:01:56 +03:00
AUTO_PROPERTY(bool, labelLogEnabledVisible)
2021-09-07 21:01:56 +03:00
public:
2021-11-06 13:47:52 +03:00
Q_INVOKABLE void onUpdatePage() override;
2021-09-07 21:01:56 +03:00
2021-11-19 13:57:00 +03:00
Q_INVOKABLE void onRadioButtonVpnModeAllSitesClicked();
Q_INVOKABLE void onRadioButtonVpnModeForwardSitesClicked();
Q_INVOKABLE void onRadioButtonVpnModeExceptSitesClicked();
2021-09-07 21:01:56 +03:00
2021-11-19 19:02:39 +03:00
Q_INVOKABLE void onPushButtonConnectClicked();
2021-09-07 21:01:56 +03:00
2021-09-03 20:17:13 +03:00
public:
explicit VpnLogic(UiLogic *uiLogic, QObject *parent = nullptr);
~VpnLogic() = default;
2021-09-07 21:01:56 +03:00
bool getPushButtonConnectChecked() const;
void setPushButtonConnectChecked(bool pushButtonConnectChecked);
2021-09-03 20:17:13 +03:00
2021-09-07 21:01:56 +03:00
public slots:
void onConnect();
void onConnectWorker(int serverIndex, const ServerCredentials &credentials, DockerContainer container, const QJsonObject &containerConfig);
void onDisconnect();
2021-09-03 20:17:13 +03:00
2021-09-07 21:01:56 +03:00
void onBytesChanged(quint64 receivedBytes, quint64 sentBytes);
void onConnectionStateChanged(VpnProtocol::VpnConnectionState state);
2021-09-07 21:01:56 +03:00
void onVpnProtocolError(amnezia::ErrorCode errorCode);
2021-09-03 20:17:13 +03:00
2021-10-26 12:59:20 +03:00
signals:
void connectToVpn(int serverIndex,
const ServerCredentials &credentials, DockerContainer container, const QJsonObject &containerConfig);
void disconnectFromVpn();
2021-09-03 20:17:13 +03:00
};
#endif // VPN_LOGIC_H