Files
amnezia-client/client/ui/pages_logic/WizardLogic.cpp
T

71 lines
2.0 KiB
C++
Raw Normal View History

2021-09-03 20:17:13 +03:00
#include "WizardLogic.h"
2021-09-06 11:44:03 +03:00
#include "../uilogic.h"
2021-09-03 20:17:13 +03:00
2021-09-07 21:01:56 +03:00
WizardLogic::WizardLogic(UiLogic *logic, QObject *parent):
PageLogicBase(logic, parent),
2021-09-08 14:23:02 +03:00
m_radioButtonHighChecked{false},
m_radioButtonMediumChecked{true},
m_radioButtonLowChecked{false},
m_lineEditHighWebsiteMaskingText{},
m_checkBoxVpnModeChecked{false}
2021-09-03 20:17:13 +03:00
{
}
2021-09-06 11:44:03 +03:00
void WizardLogic::onUpdatePage()
2021-09-06 11:44:03 +03:00
{
2021-09-08 14:23:02 +03:00
set_lineEditHighWebsiteMaskingText(protocols::cloak::defaultRedirSite);
2021-11-06 13:47:52 +03:00
set_radioButtonMediumChecked(true);
2021-09-06 11:44:03 +03:00
}
QPair<DockerContainer, QJsonObject> WizardLogic::getInstallConfigsFromWizardPage() const
2021-09-06 11:44:03 +03:00
{
QJsonObject cloakConfig {
2021-09-20 21:51:28 +03:00
{ config_key::container, ContainerProps::containerToString(DockerContainer::Cloak) },
{ ProtocolProps::protoToString(Proto::Cloak), QJsonObject {
2021-09-08 14:23:02 +03:00
{ config_key::site, lineEditHighWebsiteMaskingText() }}
2021-09-06 11:44:03 +03:00
}
};
QJsonObject ssConfig {
2021-09-20 21:51:28 +03:00
{ config_key::container, ContainerProps::containerToString(DockerContainer::ShadowSocks) }
2021-09-06 11:44:03 +03:00
};
QJsonObject openVpnConfig {
2021-09-20 21:51:28 +03:00
{ config_key::container, ContainerProps::containerToString(DockerContainer::OpenVpn) }
2021-09-06 11:44:03 +03:00
};
QPair<DockerContainer, QJsonObject> container;
DockerContainer dockerContainer;
2021-09-06 11:44:03 +03:00
2021-09-08 14:23:02 +03:00
if (radioButtonHighChecked()) {
container = {DockerContainer::Cloak, cloakConfig};
2021-09-06 11:44:03 +03:00
}
2021-09-08 14:23:02 +03:00
if (radioButtonMediumChecked()) {
container = {DockerContainer::ShadowSocks, ssConfig};
2021-09-06 11:44:03 +03:00
}
2021-09-08 14:23:02 +03:00
if (radioButtonLowChecked()) {
container = {DockerContainer::OpenVpn, openVpnConfig};
2021-09-06 11:44:03 +03:00
}
return container;
2021-09-06 11:44:03 +03:00
}
2021-09-08 14:23:02 +03:00
void WizardLogic::onPushButtonVpnModeFinishClicked()
2021-09-06 11:44:03 +03:00
{
auto container = getInstallConfigsFromWizardPage();
uiLogic()->installServer(container);
2021-09-08 14:23:02 +03:00
if (checkBoxVpnModeChecked()) {
2022-08-25 12:47:02 +03:00
m_settings->setRouteMode(Settings::VpnOnlyForwardSites);
2021-09-06 11:44:03 +03:00
} else {
2022-08-25 12:47:02 +03:00
m_settings->setRouteMode(Settings::VpnAllSites);
2021-09-06 11:44:03 +03:00
}
}
2021-09-08 14:23:02 +03:00
void WizardLogic::onPushButtonLowFinishClicked()
2021-09-06 11:44:03 +03:00
{
auto container = getInstallConfigsFromWizardPage();
uiLogic()->installServer(container);
2021-09-06 11:44:03 +03:00
}