From d90211ef4846be3fed326c894936d424fa3154c4 Mon Sep 17 00:00:00 2001 From: pokamest Date: Mon, 6 Sep 2021 11:44:03 +0300 Subject: [PATCH] Wizard Logic added TODO_REFACTs fixed --- client/main.cpp | 52 +++--- .../ui/pages_logic/GeneralSettingsLogic.cpp | 24 +-- client/ui/pages_logic/ServerSettingsLogic.cpp | 33 +--- client/ui/pages_logic/WizardLogic.cpp | 140 ++++++++++++++-- client/ui/pages_logic/WizardLogic.h | 37 ++++- client/ui/uilogic.cpp | 150 ++++-------------- client/ui/uilogic.h | 64 ++++---- 7 files changed, 267 insertions(+), 233 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index 31e45395..39302e64 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -112,19 +112,19 @@ int main(int argc, char *argv[]) UiLogic *uiLogic = new UiLogic; - AppSettingsLogic *appSettingsLogic = new AppSettingsLogic(uiLogic); - GeneralSettingsLogic *generalSettingsLogic = new GeneralSettingsLogic(uiLogic); - NetworkSettingsLogic *networkSettingsLogic = new NetworkSettingsLogic(uiLogic); - NewServerLogic *newServerLogic = new NewServerLogic(uiLogic); - ProtocolSettingsLogic *protocolSettingsLogic = new ProtocolSettingsLogic(uiLogic); - ServerListLogic *serverListLogic = new ServerListLogic(uiLogic); - ServerSettingsLogic *serverSettingsLogic = new ServerSettingsLogic(uiLogic); - ServerVpnProtocolsLogic *serverVpnProtocolsLogic = new ServerVpnProtocolsLogic(uiLogic); - ShareConnectionLogic *shareConnectionLogic = new ShareConnectionLogic(uiLogic); - SitesLogic *sitesLogic = new SitesLogic(uiLogic); - StartPageLogic *startPageLogic = new StartPageLogic(uiLogic); - VpnLogic *vpnLogic = new VpnLogic(uiLogic); - WizardLogic *wizardLogic = new WizardLogic(uiLogic); +// AppSettingsLogic *appSettingsLogic = new AppSettingsLogic(uiLogic); +// GeneralSettingsLogic *generalSettingsLogic = new GeneralSettingsLogic(uiLogic); +// NetworkSettingsLogic *networkSettingsLogic = new NetworkSettingsLogic(uiLogic); +// NewServerLogic *newServerLogic = new NewServerLogic(uiLogic); +// ProtocolSettingsLogic *protocolSettingsLogic = new ProtocolSettingsLogic(uiLogic); +// ServerListLogic *serverListLogic = new ServerListLogic(uiLogic); +// ServerSettingsLogic *serverSettingsLogic = new ServerSettingsLogic(uiLogic); +// ServerVpnProtocolsLogic *serverVpnProtocolsLogic = new ServerVpnProtocolsLogic(uiLogic); +// ShareConnectionLogic *shareConnectionLogic = new ShareConnectionLogic(uiLogic); +// SitesLogic *sitesLogic = new SitesLogic(uiLogic); +// StartPageLogic *startPageLogic = new StartPageLogic(uiLogic); +// VpnLogic *vpnLogic = new VpnLogic(uiLogic); +// WizardLogic *wizardLogic = new WizardLogic(uiLogic); QQmlApplicationEngine engine; PageEnumNS::declareQML(); @@ -137,19 +137,19 @@ int main(int argc, char *argv[]) engine.rootContext()->setContextProperty("UiLogic", uiLogic); - engine.rootContext()->setContextProperty("AppSettingsLogic", appSettingsLogic); - engine.rootContext()->setContextProperty("GeneralSettingsLogic", generalSettingsLogic); - engine.rootContext()->setContextProperty("NetworkSettingsLogic", networkSettingsLogic); - engine.rootContext()->setContextProperty("NewServerLogic", newServerLogic); - engine.rootContext()->setContextProperty("ProtocolSettingsLogic", protocolSettingsLogic); - engine.rootContext()->setContextProperty("ServerListLogic", serverListLogic); - engine.rootContext()->setContextProperty("ServerSettingsLogic", serverSettingsLogic); - engine.rootContext()->setContextProperty("ServerVpnProtocolsLogic", serverVpnProtocolsLogic); - engine.rootContext()->setContextProperty("ShareConnectionLogic", shareConnectionLogic); - engine.rootContext()->setContextProperty("SitesLogic", sitesLogic); - engine.rootContext()->setContextProperty("StartPageLogic", startPageLogic); - engine.rootContext()->setContextProperty("VpnLogic", vpnLogic); - engine.rootContext()->setContextProperty("WizardLogic", wizardLogic); + engine.rootContext()->setContextProperty("AppSettingsLogic", uiLogic->appSettingsLogic()); + engine.rootContext()->setContextProperty("GeneralSettingsLogic", uiLogic->generalSettingsLogic()); + engine.rootContext()->setContextProperty("NetworkSettingsLogic", uiLogic->networkSettingsLogic()); + engine.rootContext()->setContextProperty("NewServerLogic", uiLogic->newServerLogic()); + engine.rootContext()->setContextProperty("ProtocolSettingsLogic", uiLogic->protocolSettingsLogic()); + engine.rootContext()->setContextProperty("ServerListLogic", uiLogic->serverListLogic()); + engine.rootContext()->setContextProperty("ServerSettingsLogic", uiLogic->serverSettingsLogic()); + engine.rootContext()->setContextProperty("ServerVpnProtocolsLogic", uiLogic->serverVpnProtocolsLogic()); + engine.rootContext()->setContextProperty("ShareConnectionLogic", uiLogic->shareConnectionLogic()); + engine.rootContext()->setContextProperty("SitesLogic", uiLogic->sitesLogic()); + engine.rootContext()->setContextProperty("StartPageLogic", uiLogic->startPageLogic()); + engine.rootContext()->setContextProperty("VpnLogic", uiLogic->vpnLogic()); + engine.rootContext()->setContextProperty("WizardLogic", uiLogic->wizardLogic()); engine.load(url); diff --git a/client/ui/pages_logic/GeneralSettingsLogic.cpp b/client/ui/pages_logic/GeneralSettingsLogic.cpp index e122cd23..bde225f1 100644 --- a/client/ui/pages_logic/GeneralSettingsLogic.cpp +++ b/client/ui/pages_logic/GeneralSettingsLogic.cpp @@ -1,25 +1,6 @@ -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include - #include "GeneralSettingsLogic.h" #include "../uilogic.h" +#include "ShareConnectionLogic.h" using namespace amnezia; using namespace PageEnumNS; @@ -61,7 +42,6 @@ void GeneralSettingsLogic::onPushButtonGeneralSettingsShareConnectionClicked() m_uiLogic->selectedServerIndex = m_settings.defaultServerIndex(); m_uiLogic->selectedDockerContainer = m_settings.defaultContainer(m_uiLogic->selectedServerIndex); - // TODO_REFACT - //m_uiLogic->updateSharingPage(m_uiLogic->selectedServerIndex, m_settings.serverCredentials(m_uiLogic->selectedServerIndex), m_uiLogic->selectedDockerContainer); + m_uiLogic->shareConnectionLogic()->updateSharingPage(m_uiLogic->selectedServerIndex, m_settings.serverCredentials(m_uiLogic->selectedServerIndex), m_uiLogic->selectedDockerContainer); m_uiLogic->goToPage(Page::ShareConnection); } diff --git a/client/ui/pages_logic/ServerSettingsLogic.cpp b/client/ui/pages_logic/ServerSettingsLogic.cpp index ee421838..d2106323 100644 --- a/client/ui/pages_logic/ServerSettingsLogic.cpp +++ b/client/ui/pages_logic/ServerSettingsLogic.cpp @@ -1,31 +1,9 @@ -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include - - -#include "defines.h" #include "ServerSettingsLogic.h" -#include "utils.h" #include "vpnconnection.h" -#include #include "../uilogic.h" +#include "ServerListLogic.h" +#include "ShareConnectionLogic.h" #include "core/errorstrings.h" #include @@ -132,7 +110,7 @@ void ServerSettingsLogic::onPushButtonServerSettingsForgetServer() m_uiLogic->selectedServerIndex = -1; - // TODO_REFACT updateServersListPage(); + m_uiLogic->serverListLogic()->updateServersListPage(); if (m_settings.serversCount() == 0) { m_uiLogic->setStartPage(Page::Start); @@ -281,7 +259,7 @@ void ServerSettingsLogic::onLineEditServerSettingsDescriptionEditingFinished() QJsonObject server = m_settings.server(m_uiLogic->selectedServerIndex); server.insert(config_key::description, newText); m_settings.editServer(m_uiLogic->selectedServerIndex, server); - // TODO_REFACT updateServersListPage(); + m_uiLogic->serverListLogic()->updateServersListPage(); } QString ServerSettingsLogic::getPushButtonServerSettingsClearClientCacheText() const @@ -299,7 +277,6 @@ void ServerSettingsLogic::setPushButtonServerSettingsClearClientCacheText(const void ServerSettingsLogic::onPushButtonServerSettingsShareFullClicked() { - // TODO_REFACT - // m_uiLogic->updateSharingPage(m_uiLogic->selectedServerIndex, m_settings.serverCredentials(m_uiLogic->selectedServerIndex), DockerContainer::None); + m_uiLogic->shareConnectionLogic()->updateSharingPage(m_uiLogic->selectedServerIndex, m_settings.serverCredentials(m_uiLogic->selectedServerIndex), DockerContainer::None); m_uiLogic->goToPage(Page::ShareConnection); } diff --git a/client/ui/pages_logic/WizardLogic.cpp b/client/ui/pages_logic/WizardLogic.cpp index 6383f094..6f7e405f 100644 --- a/client/ui/pages_logic/WizardLogic.cpp +++ b/client/ui/pages_logic/WizardLogic.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include #include @@ -31,16 +31,14 @@ //#include "protocols/protocols_defs.h" //#include "protocols/shadowsocksvpnprotocol.h" -#include "debug.h" -#include "defines.h" +//#include "debug.h" +//#include "defines.h" #include "WizardLogic.h" -#include "utils.h" -#include "vpnconnection.h" -#include +//#include "utils.h" +//#include "vpnconnection.h" +//#include -#if defined Q_OS_MAC || defined Q_OS_LINUX -#include "ui/macos_util.h" -#endif +#include "../uilogic.h" using namespace amnezia; using namespace PageEnumNS; @@ -48,7 +46,129 @@ using namespace PageEnumNS; WizardLogic::WizardLogic(UiLogic *uiLogic, QObject *parent): QObject(parent), - m_uiLogic(uiLogic) + m_uiLogic(uiLogic), + m_radioButtonSetupWizardHighChecked{false}, + m_radioButtonSetupWizardMediumChecked{true}, + m_radioButtonSetupWizardLowChecked{false}, + m_lineEditSetupWizardHighWebsiteMaskingText{}, + m_checkBoxSetupWizardVpnModeChecked{false} { } + +bool WizardLogic::getRadioButtonSetupWizardMediumChecked() const +{ + return m_radioButtonSetupWizardMediumChecked; +} + +void WizardLogic::setRadioButtonSetupWizardMediumChecked(bool radioButtonSetupWizardMediumChecked) +{ + if (m_radioButtonSetupWizardMediumChecked != radioButtonSetupWizardMediumChecked) { + m_radioButtonSetupWizardMediumChecked = radioButtonSetupWizardMediumChecked; + emit radioButtonSetupWizardMediumCheckedChanged(); + } +} + +void WizardLogic::updateWizardHighPage() +{ + setLineEditSetupWizardHighWebsiteMaskingText(protocols::cloak::defaultRedirSite); +} + +QString WizardLogic::getLineEditSetupWizardHighWebsiteMaskingText() const +{ + return m_lineEditSetupWizardHighWebsiteMaskingText; +} + +void WizardLogic::setLineEditSetupWizardHighWebsiteMaskingText(const QString &lineEditSetupWizardHighWebsiteMaskingText) +{ + if (m_lineEditSetupWizardHighWebsiteMaskingText != lineEditSetupWizardHighWebsiteMaskingText) { + m_lineEditSetupWizardHighWebsiteMaskingText = lineEditSetupWizardHighWebsiteMaskingText; + emit lineEditSetupWizardHighWebsiteMaskingTextChanged(); + } +} + +bool WizardLogic::getRadioButtonSetupWizardHighChecked() const +{ + return m_radioButtonSetupWizardHighChecked; +} + +void WizardLogic::setRadioButtonSetupWizardHighChecked(bool radioButtonSetupWizardHighChecked) +{ + if (m_radioButtonSetupWizardHighChecked != radioButtonSetupWizardHighChecked) { + m_radioButtonSetupWizardHighChecked = radioButtonSetupWizardHighChecked; + emit radioButtonSetupWizardHighCheckedChanged(); + } +} + +bool WizardLogic::getRadioButtonSetupWizardLowChecked() const +{ + return m_radioButtonSetupWizardLowChecked; +} + +void WizardLogic::setRadioButtonSetupWizardLowChecked(bool radioButtonSetupWizardLowChecked) +{ + if (m_radioButtonSetupWizardLowChecked != radioButtonSetupWizardLowChecked) { + m_radioButtonSetupWizardLowChecked = radioButtonSetupWizardLowChecked; + emit radioButtonSetupWizardLowCheckedChanged(); + } +} + +bool WizardLogic::getCheckBoxSetupWizardVpnModeChecked() const +{ + return m_checkBoxSetupWizardVpnModeChecked; +} + +void WizardLogic::setCheckBoxSetupWizardVpnModeChecked(bool checkBoxSetupWizardVpnModeChecked) +{ + if (m_checkBoxSetupWizardVpnModeChecked != checkBoxSetupWizardVpnModeChecked) { + m_checkBoxSetupWizardVpnModeChecked = checkBoxSetupWizardVpnModeChecked; + emit checkBoxSetupWizardVpnModeCheckedChanged(); + } +} + +QMap WizardLogic::getInstallConfigsFromWizardPage() const +{ + QJsonObject cloakConfig { + { config_key::container, amnezia::containerToString(DockerContainer::OpenVpnOverCloak) }, + { config_key::cloak, QJsonObject { + { config_key::site, getLineEditSetupWizardHighWebsiteMaskingText() }} + } + }; + QJsonObject ssConfig { + { config_key::container, amnezia::containerToString(DockerContainer::OpenVpnOverShadowSocks) } + }; + QJsonObject openVpnConfig { + { config_key::container, amnezia::containerToString(DockerContainer::OpenVpn) } + }; + + QMap containers; + + if (getRadioButtonSetupWizardHighChecked()) { + containers.insert(DockerContainer::OpenVpnOverCloak, cloakConfig); + } + + if (getRadioButtonSetupWizardMediumChecked()) { + containers.insert(DockerContainer::OpenVpnOverShadowSocks, ssConfig); + } + + if (getRadioButtonSetupWizardLowChecked()) { + containers.insert(DockerContainer::OpenVpn, openVpnConfig); + } + + return containers; +} + +void WizardLogic::onPushButtonSetupWizardVpnModeFinishClicked() +{ + m_uiLogic->installServer(getInstallConfigsFromWizardPage()); + if (getCheckBoxSetupWizardVpnModeChecked()) { + m_settings.setRouteMode(Settings::VpnOnlyForwardSites); + } else { + m_settings.setRouteMode(Settings::VpnAllSites); + } +} + +void WizardLogic::onPushButtonSetupWizardLowFinishClicked() +{ + m_uiLogic->installServer(getInstallConfigsFromWizardPage()); +} diff --git a/client/ui/pages_logic/WizardLogic.h b/client/ui/pages_logic/WizardLogic.h index c939bfcb..e0d82cbe 100644 --- a/client/ui/pages_logic/WizardLogic.h +++ b/client/ui/pages_logic/WizardLogic.h @@ -10,13 +10,42 @@ class WizardLogic : public QObject { Q_OBJECT +public: + Q_INVOKABLE void updateWizardHighPage(); + + Q_PROPERTY(bool radioButtonSetupWizardHighChecked READ getRadioButtonSetupWizardHighChecked WRITE setRadioButtonSetupWizardHighChecked NOTIFY radioButtonSetupWizardHighCheckedChanged) + Q_PROPERTY(bool radioButtonSetupWizardMediumChecked READ getRadioButtonSetupWizardMediumChecked WRITE setRadioButtonSetupWizardMediumChecked NOTIFY radioButtonSetupWizardMediumCheckedChanged) + Q_PROPERTY(bool radioButtonSetupWizardLowChecked READ getRadioButtonSetupWizardLowChecked WRITE setRadioButtonSetupWizardLowChecked NOTIFY radioButtonSetupWizardLowCheckedChanged) + Q_PROPERTY(bool checkBoxSetupWizardVpnModeChecked READ getCheckBoxSetupWizardVpnModeChecked WRITE setCheckBoxSetupWizardVpnModeChecked NOTIFY checkBoxSetupWizardVpnModeCheckedChanged) + Q_PROPERTY(QString lineEditSetupWizardHighWebsiteMaskingText READ getLineEditSetupWizardHighWebsiteMaskingText WRITE setLineEditSetupWizardHighWebsiteMaskingText NOTIFY lineEditSetupWizardHighWebsiteMaskingTextChanged) + + Q_INVOKABLE void onPushButtonSetupWizardVpnModeFinishClicked(); + Q_INVOKABLE void onPushButtonSetupWizardLowFinishClicked(); + public: explicit WizardLogic(UiLogic *uiLogic, QObject *parent = nullptr); ~WizardLogic() = default; + bool getRadioButtonSetupWizardMediumChecked() const; + void setRadioButtonSetupWizardMediumChecked(bool radioButtonSetupWizardMediumChecked); + QString getLineEditSetupWizardHighWebsiteMaskingText() const; + void setLineEditSetupWizardHighWebsiteMaskingText(const QString &lineEditSetupWizardHighWebsiteMaskingText); + + bool getRadioButtonSetupWizardHighChecked() const; + void setRadioButtonSetupWizardHighChecked(bool radioButtonSetupWizardHighChecked); + bool getRadioButtonSetupWizardLowChecked() const; + void setRadioButtonSetupWizardLowChecked(bool radioButtonSetupWizardLowChecked); + bool getCheckBoxSetupWizardVpnModeChecked() const; + void setCheckBoxSetupWizardVpnModeChecked(bool checkBoxSetupWizardVpnModeChecked); + + QMap getInstallConfigsFromWizardPage() const; signals: - + void lineEditSetupWizardHighWebsiteMaskingTextChanged(); + void radioButtonSetupWizardHighCheckedChanged(); + void radioButtonSetupWizardMediumCheckedChanged(); + void radioButtonSetupWizardLowCheckedChanged(); + void checkBoxSetupWizardVpnModeCheckedChanged(); private: @@ -29,7 +58,11 @@ private: Settings m_settings; UiLogic *m_uiLogic; - + bool m_radioButtonSetupWizardHighChecked; + bool m_radioButtonSetupWizardMediumChecked; + bool m_radioButtonSetupWizardLowChecked; + QString m_lineEditSetupWizardHighWebsiteMaskingText; + bool m_checkBoxSetupWizardVpnModeChecked; }; #endif // WIZARD_LOGIC_H diff --git a/client/ui/uilogic.cpp b/client/ui/uilogic.cpp index c1a9d578..cb85616a 100644 --- a/client/ui/uilogic.cpp +++ b/client/ui/uilogic.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include #include @@ -44,6 +44,20 @@ #include "ui/macos_util.h" #endif +#include "pages_logic/AppSettingsLogic.h" +#include "pages_logic/GeneralSettingsLogic.h" +#include "pages_logic/NetworkSettingsLogic.h" +#include "pages_logic/NewServerLogic.h" +#include "pages_logic/ProtocolSettingsLogic.h" +#include "pages_logic/ServerListLogic.h" +#include "pages_logic/ServerSettingsLogic.h" +#include "pages_logic/ServerVpnProtocolsLogic.h" +#include "pages_logic/ShareConnectionLogic.h" +#include "pages_logic/SitesLogic.h" +#include "pages_logic/StartPageLogic.h" +#include "pages_logic/VpnLogic.h" +#include "pages_logic/WizardLogic.h" + using namespace amnezia; using namespace PageEnumNS; @@ -52,8 +66,7 @@ UiLogic::UiLogic(QObject *parent) : m_frameWireguardSettingsVisible{false}, m_frameWireguardVisible{false}, m_frameNewServerSettingsParentWireguardVisible{false}, - m_radioButtonSetupWizardMediumChecked{true}, - m_lineEditSetupWizardHighWebsiteMaskingText{}, + m_progressBarNewServerConfiguringValue{0}, m_pushButtonNewServerSettingsCloakChecked{false}, m_pushButtonNewServerSettingsSsChecked{false}, @@ -91,9 +104,7 @@ UiLogic::UiLogic(QObject *parent) : m_checkBoxProtoOpenvpnBlockDnsChecked{false}, m_lineEditProtoOpenvpnPortText{}, m_checkBoxProtoOpenvpnTlsAuthChecked{false}, - m_radioButtonSetupWizardHighChecked{false}, - m_radioButtonSetupWizardLowChecked{false}, - m_checkBoxSetupWizardVpnModeChecked{false}, + m_pushButtonConnectChecked{false}, m_widgetProtoCloakEnabled{false}, @@ -172,6 +183,22 @@ UiLogic::UiLogic(QObject *parent) : m_vpnConnection(nullptr) { m_vpnConnection = new VpnConnection(this); + + m_appSettingsLogic = new AppSettingsLogic(this); + m_generalSettingsLogic = new GeneralSettingsLogic(this); + m_networkSettingsLogic = new NetworkSettingsLogic(this); + m_newServerLogic = new NewServerLogic(this); + m_protocolSettingsLogic = new ProtocolSettingsLogic(this); + m_serverListLogic = new ServerListLogic(this); + m_serverSettingsLogic = new ServerSettingsLogic(this); + m_serverVpnProtocolsLogic = new ServerVpnProtocolsLogic(this); + m_shareConnectionLogic = new ShareConnectionLogic(this); + m_sitesLogic = new SitesLogic(this); + m_startPageLogic = new StartPageLogic(this); + m_vpnLogic = new VpnLogic(this); + m_wizardLogic = new WizardLogic(this); + + connect(m_vpnConnection, SIGNAL(bytesChanged(quint64, quint64)), this, SLOT(onBytesChanged(quint64, quint64))); connect(m_vpnConnection, SIGNAL(connectionStateChanged(VpnProtocol::ConnectionState)), this, SLOT(onConnectionStateChanged(VpnProtocol::ConnectionState))); connect(m_vpnConnection, SIGNAL(vpnProtocolError(amnezia::ErrorCode)), this, SLOT(onVpnProtocolError(amnezia::ErrorCode))); @@ -288,23 +315,7 @@ void UiLogic::setFrameNewServerSettingsParentWireguardVisible(bool frameNewServe } } -bool UiLogic::getRadioButtonSetupWizardMediumChecked() const -{ - return m_radioButtonSetupWizardMediumChecked; -} -void UiLogic::setRadioButtonSetupWizardMediumChecked(bool radioButtonSetupWizardMediumChecked) -{ - if (m_radioButtonSetupWizardMediumChecked != radioButtonSetupWizardMediumChecked) { - m_radioButtonSetupWizardMediumChecked = radioButtonSetupWizardMediumChecked; - emit radioButtonSetupWizardMediumCheckedChanged(); - } -} - -void UiLogic::updateWizardHighPage() -{ - setLineEditSetupWizardHighWebsiteMaskingText(protocols::cloak::defaultRedirSite); -} void UiLogic::updateNewServerProtocolsPage() { @@ -452,18 +463,7 @@ void UiLogic::setProgressBarNewServerConfiguringValue(double progressBarNewServe } } -QString UiLogic::getLineEditSetupWizardHighWebsiteMaskingText() const -{ - return m_lineEditSetupWizardHighWebsiteMaskingText; -} -void UiLogic::setLineEditSetupWizardHighWebsiteMaskingText(const QString &lineEditSetupWizardHighWebsiteMaskingText) -{ - if (m_lineEditSetupWizardHighWebsiteMaskingText != lineEditSetupWizardHighWebsiteMaskingText) { - m_lineEditSetupWizardHighWebsiteMaskingText = lineEditSetupWizardHighWebsiteMaskingText; - emit lineEditSetupWizardHighWebsiteMaskingTextChanged(); - } -} @@ -774,44 +774,7 @@ void UiLogic::setCheckBoxProtoOpenvpnTlsAuthChecked(bool checkBoxProtoOpenvpnTls } } -bool UiLogic::getRadioButtonSetupWizardHighChecked() const -{ - return m_radioButtonSetupWizardHighChecked; -} -void UiLogic::setRadioButtonSetupWizardHighChecked(bool radioButtonSetupWizardHighChecked) -{ - if (m_radioButtonSetupWizardHighChecked != radioButtonSetupWizardHighChecked) { - m_radioButtonSetupWizardHighChecked = radioButtonSetupWizardHighChecked; - emit radioButtonSetupWizardHighCheckedChanged(); - } -} - -bool UiLogic::getRadioButtonSetupWizardLowChecked() const -{ - return m_radioButtonSetupWizardLowChecked; -} - -void UiLogic::setRadioButtonSetupWizardLowChecked(bool radioButtonSetupWizardLowChecked) -{ - if (m_radioButtonSetupWizardLowChecked != radioButtonSetupWizardLowChecked) { - m_radioButtonSetupWizardLowChecked = radioButtonSetupWizardLowChecked; - emit radioButtonSetupWizardLowCheckedChanged(); - } -} - -bool UiLogic::getCheckBoxSetupWizardVpnModeChecked() const -{ - return m_checkBoxSetupWizardVpnModeChecked; -} - -void UiLogic::setCheckBoxSetupWizardVpnModeChecked(bool checkBoxSetupWizardVpnModeChecked) -{ - if (m_checkBoxSetupWizardVpnModeChecked != checkBoxSetupWizardVpnModeChecked) { - m_checkBoxSetupWizardVpnModeChecked = checkBoxSetupWizardVpnModeChecked; - emit checkBoxSetupWizardVpnModeCheckedChanged(); - } -} @@ -1959,37 +1922,6 @@ QMap UiLogic::getInstallConfigsFromProtocolsPage() return containers; } -QMap UiLogic::getInstallConfigsFromWizardPage() const -{ - QJsonObject cloakConfig { - { config_key::container, amnezia::containerToString(DockerContainer::OpenVpnOverCloak) }, - { config_key::cloak, QJsonObject { - { config_key::site, getLineEditSetupWizardHighWebsiteMaskingText() }} - } - }; - QJsonObject ssConfig { - { config_key::container, amnezia::containerToString(DockerContainer::OpenVpnOverShadowSocks) } - }; - QJsonObject openVpnConfig { - { config_key::container, amnezia::containerToString(DockerContainer::OpenVpn) } - }; - - QMap containers; - - if (getRadioButtonSetupWizardHighChecked()) { - containers.insert(DockerContainer::OpenVpnOverCloak, cloakConfig); - } - - if (getRadioButtonSetupWizardMediumChecked()) { - containers.insert(DockerContainer::OpenVpnOverShadowSocks, ssConfig); - } - - if (getRadioButtonSetupWizardLowChecked()) { - containers.insert(DockerContainer::OpenVpn, openVpnConfig); - } - - return containers; -} void UiLogic::installServer(const QMap &containers) { @@ -2454,8 +2386,7 @@ void UiLogic::setupProtocolsPageConnections() DockerContainer container = containers.at(i); connect(this, buttonClickedFunc, [this, container](bool){ - // TODO_REFACT - //updateSharingPage(selectedServerIndex, m_settings.serverCredentials(selectedServerIndex), container); + shareConnectionLogic()->updateSharingPage(selectedServerIndex, m_settings.serverCredentials(selectedServerIndex), container); goToPage(Page::ShareConnection); }); } @@ -2784,20 +2715,7 @@ void UiLogic::updateVpnPage() -void UiLogic::onPushButtonSetupWizardVpnModeFinishClicked() -{ - installServer(getInstallConfigsFromWizardPage()); - if (getCheckBoxSetupWizardVpnModeChecked()) { - m_settings.setRouteMode(Settings::VpnOnlyForwardSites); - } else { - m_settings.setRouteMode(Settings::VpnAllSites); - } -} -void UiLogic::onPushButtonSetupWizardLowFinishClicked() -{ - installServer(getInstallConfigsFromWizardPage()); -} void UiLogic::onRadioButtonVpnModeAllSitesToggled(bool checked) { diff --git a/client/ui/uilogic.h b/client/ui/uilogic.h index f9e8423c..dbb4771e 100644 --- a/client/ui/uilogic.h +++ b/client/ui/uilogic.h @@ -34,8 +34,6 @@ class UiLogic : public QObject Q_PROPERTY(bool frameWireguardSettingsVisible READ getFrameWireguardSettingsVisible WRITE setFrameWireguardSettingsVisible NOTIFY frameWireguardSettingsVisibleChanged) Q_PROPERTY(bool frameWireguardVisible READ getFrameWireguardVisible WRITE setFrameWireguardVisible NOTIFY frameWireguardVisibleChanged) Q_PROPERTY(bool frameNewServerSettingsParentWireguardVisible READ getFrameNewServerSettingsParentWireguardVisible WRITE setFrameNewServerSettingsParentWireguardVisible NOTIFY frameNewServerSettingsParentWireguardVisibleChanged) - Q_PROPERTY(bool radioButtonSetupWizardMediumChecked READ getRadioButtonSetupWizardMediumChecked WRITE setRadioButtonSetupWizardMediumChecked NOTIFY radioButtonSetupWizardMediumCheckedChanged) - Q_PROPERTY(QString lineEditSetupWizardHighWebsiteMaskingText READ getLineEditSetupWizardHighWebsiteMaskingText WRITE setLineEditSetupWizardHighWebsiteMaskingText NOTIFY lineEditSetupWizardHighWebsiteMaskingTextChanged) Q_PROPERTY(double progressBarNewServerConfiguringValue READ getProgressBarNewServerConfiguringValue WRITE setProgressBarNewServerConfiguringValue NOTIFY progressBarNewServerConfiguringValueChanged) Q_PROPERTY(bool pushButtonNewServerSettingsCloakChecked READ getPushButtonNewServerSettingsCloakChecked WRITE setPushButtonNewServerSettingsCloakChecked NOTIFY pushButtonNewServerSettingsCloakCheckedChanged) Q_PROPERTY(bool pushButtonNewServerSettingsSsChecked READ getPushButtonNewServerSettingsSsChecked WRITE setPushButtonNewServerSettingsSsChecked NOTIFY pushButtonNewServerSettingsSsCheckedChanged) @@ -68,9 +66,6 @@ class UiLogic : public QObject Q_PROPERTY(bool checkBoxProtoOpenvpnBlockDnsChecked READ getCheckBoxProtoOpenvpnBlockDnsChecked WRITE setCheckBoxProtoOpenvpnBlockDnsChecked NOTIFY checkBoxProtoOpenvpnBlockDnsCheckedChanged) Q_PROPERTY(QString lineEditProtoOpenvpnPortText READ getLineEditProtoOpenvpnPortText WRITE setLineEditProtoOpenvpnPortText NOTIFY lineEditProtoOpenvpnPortTextChanged) Q_PROPERTY(bool checkBoxProtoOpenvpnTlsAuthChecked READ getCheckBoxProtoOpenvpnTlsAuthChecked WRITE setCheckBoxProtoOpenvpnTlsAuthChecked NOTIFY checkBoxProtoOpenvpnTlsAuthCheckedChanged) - Q_PROPERTY(bool radioButtonSetupWizardHighChecked READ getRadioButtonSetupWizardHighChecked WRITE setRadioButtonSetupWizardHighChecked NOTIFY radioButtonSetupWizardHighCheckedChanged) - Q_PROPERTY(bool radioButtonSetupWizardLowChecked READ getRadioButtonSetupWizardLowChecked WRITE setRadioButtonSetupWizardLowChecked NOTIFY radioButtonSetupWizardLowCheckedChanged) - Q_PROPERTY(bool checkBoxSetupWizardVpnModeChecked READ getCheckBoxSetupWizardVpnModeChecked WRITE setCheckBoxSetupWizardVpnModeChecked NOTIFY checkBoxSetupWizardVpnModeCheckedChanged) Q_PROPERTY(bool pushButtonConnectChecked READ getPushButtonConnectChecked WRITE setPushButtonConnectChecked NOTIFY pushButtonConnectCheckedChanged) Q_PROPERTY(bool widgetProtoCloakEnabled READ getWidgetProtoCloakEnabled WRITE setWidgetProtoCloakEnabled NOTIFY widgetProtoCloakEnabledChanged) @@ -182,10 +177,6 @@ public: void setFrameWireguardVisible(bool frameWireguardVisible); bool getFrameNewServerSettingsParentWireguardVisible() const; void setFrameNewServerSettingsParentWireguardVisible(bool frameNewServerSettingsParentWireguardVisible); - bool getRadioButtonSetupWizardMediumChecked() const; - void setRadioButtonSetupWizardMediumChecked(bool radioButtonSetupWizardMediumChecked); - QString getLineEditSetupWizardHighWebsiteMaskingText() const; - void setLineEditSetupWizardHighWebsiteMaskingText(const QString &lineEditSetupWizardHighWebsiteMaskingText); double getProgressBarNewServerConfiguringValue() const; void setProgressBarNewServerConfiguringValue(double progressBarNewServerConfiguringValue); bool getPushButtonNewServerSettingsCloakChecked() const; @@ -250,12 +241,6 @@ public: void setLineEditProtoOpenvpnPortText(const QString &lineEditProtoOpenvpnPortText); bool getCheckBoxProtoOpenvpnTlsAuthChecked() const; void setCheckBoxProtoOpenvpnTlsAuthChecked(bool checkBoxProtoOpenvpnTlsAuthChecked); - bool getRadioButtonSetupWizardHighChecked() const; - void setRadioButtonSetupWizardHighChecked(bool radioButtonSetupWizardHighChecked); - bool getRadioButtonSetupWizardLowChecked() const; - void setRadioButtonSetupWizardLowChecked(bool radioButtonSetupWizardLowChecked); - bool getCheckBoxSetupWizardVpnModeChecked() const; - void setCheckBoxSetupWizardVpnModeChecked(bool checkBoxSetupWizardVpnModeChecked); bool getPushButtonConnectChecked() const; void setPushButtonConnectChecked(bool pushButtonConnectChecked); @@ -421,13 +406,11 @@ public: bool getPushButtonVpnAddSiteEnabled() const; void setPushButtonVpnAddSiteEnabled(bool pushButtonVpnAddSiteEnabled); - Q_INVOKABLE void updateWizardHighPage(); Q_INVOKABLE void updateNewServerProtocolsPage(); Q_INVOKABLE void updateVpnPage(); - Q_INVOKABLE void onPushButtonSetupWizardVpnModeFinishClicked(); - Q_INVOKABLE void onPushButtonSetupWizardLowFinishClicked(); + Q_INVOKABLE void onRadioButtonVpnModeAllSitesToggled(bool checked); Q_INVOKABLE void onRadioButtonVpnModeForwardSitesToggled(bool checked); Q_INVOKABLE void onRadioButtonVpnModeExceptSitesToggled(bool checked); @@ -460,8 +443,7 @@ signals: void frameWireguardSettingsVisibleChanged(); void frameWireguardVisibleChanged(); void frameNewServerSettingsParentWireguardVisibleChanged(); - void radioButtonSetupWizardMediumCheckedChanged(); - void lineEditSetupWizardHighWebsiteMaskingTextChanged(); + void progressBarNewServerConfiguringValueChanged(); void pushButtonNewServerSettingsCloakCheckedChanged(); void pushButtonNewServerSettingsSsCheckedChanged(); @@ -501,9 +483,8 @@ signals: void checkBoxProtoOpenvpnBlockDnsCheckedChanged(); void lineEditProtoOpenvpnPortTextChanged(); void checkBoxProtoOpenvpnTlsAuthCheckedChanged(); - void radioButtonSetupWizardHighCheckedChanged(); - void radioButtonSetupWizardLowCheckedChanged(); - void checkBoxSetupWizardVpnModeCheckedChanged(); + + void pushButtonConnectCheckedChanged(); void widgetProtoCloakEnabledChanged(); @@ -607,8 +588,7 @@ private: bool m_frameWireguardSettingsVisible; bool m_frameWireguardVisible; bool m_frameNewServerSettingsParentWireguardVisible; - bool m_radioButtonSetupWizardMediumChecked; - QString m_lineEditSetupWizardHighWebsiteMaskingText; + double m_progressBarNewServerConfiguringValue; bool m_pushButtonNewServerSettingsCloakChecked; bool m_pushButtonNewServerSettingsSsChecked; @@ -649,9 +629,7 @@ private: bool m_checkBoxProtoOpenvpnBlockDnsChecked; QString m_lineEditProtoOpenvpnPortText; bool m_checkBoxProtoOpenvpnTlsAuthChecked; - bool m_radioButtonSetupWizardHighChecked; - bool m_radioButtonSetupWizardLowChecked; - bool m_checkBoxSetupWizardVpnModeChecked; + bool m_pushButtonConnectChecked; @@ -794,9 +772,37 @@ private: QJsonObject getCloakConfigFromPage(QJsonObject oldConfig); QMap getInstallConfigsFromProtocolsPage() const; - QMap getInstallConfigsFromWizardPage() const; + +public: + AppSettingsLogic *appSettingsLogic() { return m_appSettingsLogic;} + GeneralSettingsLogic *generalSettingsLogic() { return m_generalSettingsLogic;} + NetworkSettingsLogic *networkSettingsLogic() { return m_networkSettingsLogic;} + NewServerLogic *newServerLogic() { return m_newServerLogic;} + ProtocolSettingsLogic *protocolSettingsLogic() { return m_protocolSettingsLogic;} + ServerListLogic *serverListLogic() { return m_serverListLogic;} + ServerSettingsLogic *serverSettingsLogic() { return m_serverSettingsLogic;} + ServerVpnProtocolsLogic *serverVpnProtocolsLogic() { return m_serverVpnProtocolsLogic;} + ShareConnectionLogic *shareConnectionLogic() { return m_shareConnectionLogic;} + SitesLogic *sitesLogic() { return m_sitesLogic;} + StartPageLogic *startPageLogic() { return m_startPageLogic;} + VpnLogic *vpnLogic() { return m_vpnLogic;} + WizardLogic *wizardLogic() { return m_wizardLogic;} private: + AppSettingsLogic *m_appSettingsLogic; + GeneralSettingsLogic *m_generalSettingsLogic; + NetworkSettingsLogic *m_networkSettingsLogic; + NewServerLogic *m_newServerLogic; + ProtocolSettingsLogic *m_protocolSettingsLogic; + ServerListLogic *m_serverListLogic; + ServerSettingsLogic *m_serverSettingsLogic; + ServerVpnProtocolsLogic *m_serverVpnProtocolsLogic; + ShareConnectionLogic *m_shareConnectionLogic; + SitesLogic *m_sitesLogic; + StartPageLogic *m_startPageLogic; + VpnLogic *m_vpnLogic; + WizardLogic *m_wizardLogic; + VpnConnection* m_vpnConnection; Settings m_settings;