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)
|
2022-02-15 17:08:55 +03:00
|
|
|
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
|
|
|
|
2022-12-28 06:50:46 +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);
|
2021-11-30 16:56:24 +04:00
|
|
|
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
|