added logic to the connect to vpn button

This commit is contained in:
vladimir.kuznetsov 2023-05-14 21:11:19 +08:00
parent 35d4222c7a
commit 116fa6777b
27 changed files with 293 additions and 125 deletions

View file

@ -11,13 +11,18 @@ ConnectionController::ConnectionController(const QSharedPointer<ServersModel> &s
bool ConnectionController::onConnectionButtonClicked()
{
if (!isConnected) {
if (!isConnected()) {
openVpnConnection();
} else {
closeVpnConnection();
}
}
bool ConnectionController::isConnected()
{
return m_isConnected;
}
bool ConnectionController::openVpnConnection()
{
int serverIndex = m_serversModel->getDefaultServerIndex();
@ -33,7 +38,7 @@ bool ConnectionController::openVpnConnection()
//todo error handling
qApp->processEvents();
emit connectToVpn(serverIndex, credentials, container, containerConfig);
isConnected = true;
m_isConnected = true;
// int serverIndex = m_settings->defaultServerIndex();
@ -67,5 +72,6 @@ bool ConnectionController::openVpnConnection()
bool ConnectionController::closeVpnConnection()
{
emit disconnectFromVpn();
m_isConnected = false;
}

View file

@ -3,6 +3,7 @@
#include "ui/models/servers_model.h"
#include "ui/models/containers_model.h"
#include "protocols/vpnprotocol.h"
class ConnectionController : public QObject
{
@ -16,9 +17,12 @@ public:
public slots:
bool onConnectionButtonClicked();
bool isConnected();
signals:
void connectToVpn(int serverIndex, const ServerCredentials &credentials, DockerContainer container, const QJsonObject &containerConfig);
void disconnectFromVpn();
void connectionStateChanged(Vpn::ConnectionState state);
private:
bool openVpnConnection();
@ -27,7 +31,7 @@ private:
QSharedPointer<ServersModel> m_serversModel;
QSharedPointer<ContainersModel> m_containersModel;
bool isConnected = false;
bool m_isConnected = false;
};
#endif // CONNECTIONCONTROLLER_H