Wizard Logic added

TODO_REFACTs fixed
This commit is contained in:
pokamest 2021-09-06 11:44:03 +03:00
parent ace304914e
commit d90211ef48
7 changed files with 267 additions and 233 deletions

View file

@ -112,19 +112,19 @@ int main(int argc, char *argv[])
UiLogic *uiLogic = new UiLogic; UiLogic *uiLogic = new UiLogic;
AppSettingsLogic *appSettingsLogic = new AppSettingsLogic(uiLogic); // AppSettingsLogic *appSettingsLogic = new AppSettingsLogic(uiLogic);
GeneralSettingsLogic *generalSettingsLogic = new GeneralSettingsLogic(uiLogic); // GeneralSettingsLogic *generalSettingsLogic = new GeneralSettingsLogic(uiLogic);
NetworkSettingsLogic *networkSettingsLogic = new NetworkSettingsLogic(uiLogic); // NetworkSettingsLogic *networkSettingsLogic = new NetworkSettingsLogic(uiLogic);
NewServerLogic *newServerLogic = new NewServerLogic(uiLogic); // NewServerLogic *newServerLogic = new NewServerLogic(uiLogic);
ProtocolSettingsLogic *protocolSettingsLogic = new ProtocolSettingsLogic(uiLogic); // ProtocolSettingsLogic *protocolSettingsLogic = new ProtocolSettingsLogic(uiLogic);
ServerListLogic *serverListLogic = new ServerListLogic(uiLogic); // ServerListLogic *serverListLogic = new ServerListLogic(uiLogic);
ServerSettingsLogic *serverSettingsLogic = new ServerSettingsLogic(uiLogic); // ServerSettingsLogic *serverSettingsLogic = new ServerSettingsLogic(uiLogic);
ServerVpnProtocolsLogic *serverVpnProtocolsLogic = new ServerVpnProtocolsLogic(uiLogic); // ServerVpnProtocolsLogic *serverVpnProtocolsLogic = new ServerVpnProtocolsLogic(uiLogic);
ShareConnectionLogic *shareConnectionLogic = new ShareConnectionLogic(uiLogic); // ShareConnectionLogic *shareConnectionLogic = new ShareConnectionLogic(uiLogic);
SitesLogic *sitesLogic = new SitesLogic(uiLogic); // SitesLogic *sitesLogic = new SitesLogic(uiLogic);
StartPageLogic *startPageLogic = new StartPageLogic(uiLogic); // StartPageLogic *startPageLogic = new StartPageLogic(uiLogic);
VpnLogic *vpnLogic = new VpnLogic(uiLogic); // VpnLogic *vpnLogic = new VpnLogic(uiLogic);
WizardLogic *wizardLogic = new WizardLogic(uiLogic); // WizardLogic *wizardLogic = new WizardLogic(uiLogic);
QQmlApplicationEngine engine; QQmlApplicationEngine engine;
PageEnumNS::declareQML(); PageEnumNS::declareQML();
@ -137,19 +137,19 @@ int main(int argc, char *argv[])
engine.rootContext()->setContextProperty("UiLogic", uiLogic); engine.rootContext()->setContextProperty("UiLogic", uiLogic);
engine.rootContext()->setContextProperty("AppSettingsLogic", appSettingsLogic); engine.rootContext()->setContextProperty("AppSettingsLogic", uiLogic->appSettingsLogic());
engine.rootContext()->setContextProperty("GeneralSettingsLogic", generalSettingsLogic); engine.rootContext()->setContextProperty("GeneralSettingsLogic", uiLogic->generalSettingsLogic());
engine.rootContext()->setContextProperty("NetworkSettingsLogic", networkSettingsLogic); engine.rootContext()->setContextProperty("NetworkSettingsLogic", uiLogic->networkSettingsLogic());
engine.rootContext()->setContextProperty("NewServerLogic", newServerLogic); engine.rootContext()->setContextProperty("NewServerLogic", uiLogic->newServerLogic());
engine.rootContext()->setContextProperty("ProtocolSettingsLogic", protocolSettingsLogic); engine.rootContext()->setContextProperty("ProtocolSettingsLogic", uiLogic->protocolSettingsLogic());
engine.rootContext()->setContextProperty("ServerListLogic", serverListLogic); engine.rootContext()->setContextProperty("ServerListLogic", uiLogic->serverListLogic());
engine.rootContext()->setContextProperty("ServerSettingsLogic", serverSettingsLogic); engine.rootContext()->setContextProperty("ServerSettingsLogic", uiLogic->serverSettingsLogic());
engine.rootContext()->setContextProperty("ServerVpnProtocolsLogic", serverVpnProtocolsLogic); engine.rootContext()->setContextProperty("ServerVpnProtocolsLogic", uiLogic->serverVpnProtocolsLogic());
engine.rootContext()->setContextProperty("ShareConnectionLogic", shareConnectionLogic); engine.rootContext()->setContextProperty("ShareConnectionLogic", uiLogic->shareConnectionLogic());
engine.rootContext()->setContextProperty("SitesLogic", sitesLogic); engine.rootContext()->setContextProperty("SitesLogic", uiLogic->sitesLogic());
engine.rootContext()->setContextProperty("StartPageLogic", startPageLogic); engine.rootContext()->setContextProperty("StartPageLogic", uiLogic->startPageLogic());
engine.rootContext()->setContextProperty("VpnLogic", vpnLogic); engine.rootContext()->setContextProperty("VpnLogic", uiLogic->vpnLogic());
engine.rootContext()->setContextProperty("WizardLogic", wizardLogic); engine.rootContext()->setContextProperty("WizardLogic", uiLogic->wizardLogic());
engine.load(url); engine.load(url);

View file

@ -1,25 +1,6 @@
//#include <QApplication>
//#include <QClipboard>
//#include <QDebug>
//#include <QDesktopServices>
//#include <QFileDialog>
//#include <QHBoxLayout>
//#include <QHostInfo>
//#include <QItemSelectionModel>
//#include <QJsonDocument>
//#include <QJsonObject>
//#include <QKeyEvent>
//#include <QMenu>
//#include <QMessageBox>
//#include <QMetaEnum>
//#include <QSysInfo>
//#include <QThread>
//#include <QTimer>
//#include <QRegularExpression>
//#include <QSaveFile>
#include "GeneralSettingsLogic.h" #include "GeneralSettingsLogic.h"
#include "../uilogic.h" #include "../uilogic.h"
#include "ShareConnectionLogic.h"
using namespace amnezia; using namespace amnezia;
using namespace PageEnumNS; using namespace PageEnumNS;
@ -61,7 +42,6 @@ void GeneralSettingsLogic::onPushButtonGeneralSettingsShareConnectionClicked()
m_uiLogic->selectedServerIndex = m_settings.defaultServerIndex(); m_uiLogic->selectedServerIndex = m_settings.defaultServerIndex();
m_uiLogic->selectedDockerContainer = m_settings.defaultContainer(m_uiLogic->selectedServerIndex); m_uiLogic->selectedDockerContainer = m_settings.defaultContainer(m_uiLogic->selectedServerIndex);
// TODO_REFACT m_uiLogic->shareConnectionLogic()->updateSharingPage(m_uiLogic->selectedServerIndex, m_settings.serverCredentials(m_uiLogic->selectedServerIndex), m_uiLogic->selectedDockerContainer);
//m_uiLogic->updateSharingPage(m_uiLogic->selectedServerIndex, m_settings.serverCredentials(m_uiLogic->selectedServerIndex), m_uiLogic->selectedDockerContainer);
m_uiLogic->goToPage(Page::ShareConnection); m_uiLogic->goToPage(Page::ShareConnection);
} }

View file

@ -1,31 +1,9 @@
//#include <QApplication>
//#include <QClipboard>
//#include <QDebug>
//#include <QDesktopServices>
//#include <QFileDialog>
//#include <QHBoxLayout>
//#include <QHostInfo>
//#include <QItemSelectionModel>
//#include <QJsonDocument>
//#include <QJsonObject>
//#include <QKeyEvent>
//#include <QMenu>
//#include <QMessageBox>
//#include <QMetaEnum>
//#include <QSysInfo>
//#include <QThread>
//#include <QTimer>
//#include <QRegularExpression>
//#include <QSaveFile>
#include "defines.h"
#include "ServerSettingsLogic.h" #include "ServerSettingsLogic.h"
#include "utils.h"
#include "vpnconnection.h" #include "vpnconnection.h"
#include <functional>
#include "../uilogic.h" #include "../uilogic.h"
#include "ServerListLogic.h"
#include "ShareConnectionLogic.h"
#include "core/errorstrings.h" #include "core/errorstrings.h"
#include <core/servercontroller.h> #include <core/servercontroller.h>
@ -132,7 +110,7 @@ void ServerSettingsLogic::onPushButtonServerSettingsForgetServer()
m_uiLogic->selectedServerIndex = -1; m_uiLogic->selectedServerIndex = -1;
// TODO_REFACT updateServersListPage(); m_uiLogic->serverListLogic()->updateServersListPage();
if (m_settings.serversCount() == 0) { if (m_settings.serversCount() == 0) {
m_uiLogic->setStartPage(Page::Start); m_uiLogic->setStartPage(Page::Start);
@ -281,7 +259,7 @@ void ServerSettingsLogic::onLineEditServerSettingsDescriptionEditingFinished()
QJsonObject server = m_settings.server(m_uiLogic->selectedServerIndex); QJsonObject server = m_settings.server(m_uiLogic->selectedServerIndex);
server.insert(config_key::description, newText); server.insert(config_key::description, newText);
m_settings.editServer(m_uiLogic->selectedServerIndex, server); m_settings.editServer(m_uiLogic->selectedServerIndex, server);
// TODO_REFACT updateServersListPage(); m_uiLogic->serverListLogic()->updateServersListPage();
} }
QString ServerSettingsLogic::getPushButtonServerSettingsClearClientCacheText() const QString ServerSettingsLogic::getPushButtonServerSettingsClearClientCacheText() const
@ -299,7 +277,6 @@ void ServerSettingsLogic::setPushButtonServerSettingsClearClientCacheText(const
void ServerSettingsLogic::onPushButtonServerSettingsShareFullClicked() void ServerSettingsLogic::onPushButtonServerSettingsShareFullClicked()
{ {
// TODO_REFACT m_uiLogic->shareConnectionLogic()->updateSharingPage(m_uiLogic->selectedServerIndex, m_settings.serverCredentials(m_uiLogic->selectedServerIndex), DockerContainer::None);
// m_uiLogic->updateSharingPage(m_uiLogic->selectedServerIndex, m_settings.serverCredentials(m_uiLogic->selectedServerIndex), DockerContainer::None);
m_uiLogic->goToPage(Page::ShareConnection); m_uiLogic->goToPage(Page::ShareConnection);
} }

View file

@ -1,4 +1,4 @@
#include <QApplication> #include <QApplication>
#include <QClipboard> #include <QClipboard>
#include <QDebug> #include <QDebug>
#include <QDesktopServices> #include <QDesktopServices>
@ -31,16 +31,14 @@
//#include "protocols/protocols_defs.h" //#include "protocols/protocols_defs.h"
//#include "protocols/shadowsocksvpnprotocol.h" //#include "protocols/shadowsocksvpnprotocol.h"
#include "debug.h" //#include "debug.h"
#include "defines.h" //#include "defines.h"
#include "WizardLogic.h" #include "WizardLogic.h"
#include "utils.h" //#include "utils.h"
#include "vpnconnection.h" //#include "vpnconnection.h"
#include <functional> //#include <functional>
#if defined Q_OS_MAC || defined Q_OS_LINUX #include "../uilogic.h"
#include "ui/macos_util.h"
#endif
using namespace amnezia; using namespace amnezia;
using namespace PageEnumNS; using namespace PageEnumNS;
@ -48,7 +46,129 @@ using namespace PageEnumNS;
WizardLogic::WizardLogic(UiLogic *uiLogic, QObject *parent): WizardLogic::WizardLogic(UiLogic *uiLogic, QObject *parent):
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<DockerContainer, QJsonObject> 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<DockerContainer, QJsonObject> 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());
}

View file

@ -10,13 +10,42 @@ class WizardLogic : public QObject
{ {
Q_OBJECT 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: public:
explicit WizardLogic(UiLogic *uiLogic, QObject *parent = nullptr); explicit WizardLogic(UiLogic *uiLogic, QObject *parent = nullptr);
~WizardLogic() = default; ~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<DockerContainer, QJsonObject> getInstallConfigsFromWizardPage() const;
signals: signals:
void lineEditSetupWizardHighWebsiteMaskingTextChanged();
void radioButtonSetupWizardHighCheckedChanged();
void radioButtonSetupWizardMediumCheckedChanged();
void radioButtonSetupWizardLowCheckedChanged();
void checkBoxSetupWizardVpnModeCheckedChanged();
private: private:
@ -29,7 +58,11 @@ private:
Settings m_settings; Settings m_settings;
UiLogic *m_uiLogic; UiLogic *m_uiLogic;
bool m_radioButtonSetupWizardHighChecked;
bool m_radioButtonSetupWizardMediumChecked;
bool m_radioButtonSetupWizardLowChecked;
QString m_lineEditSetupWizardHighWebsiteMaskingText;
bool m_checkBoxSetupWizardVpnModeChecked;
}; };
#endif // WIZARD_LOGIC_H #endif // WIZARD_LOGIC_H

View file

@ -1,4 +1,4 @@
#include <QApplication> #include <QApplication>
#include <QClipboard> #include <QClipboard>
#include <QDebug> #include <QDebug>
#include <QDesktopServices> #include <QDesktopServices>
@ -44,6 +44,20 @@
#include "ui/macos_util.h" #include "ui/macos_util.h"
#endif #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 amnezia;
using namespace PageEnumNS; using namespace PageEnumNS;
@ -52,8 +66,7 @@ UiLogic::UiLogic(QObject *parent) :
m_frameWireguardSettingsVisible{false}, m_frameWireguardSettingsVisible{false},
m_frameWireguardVisible{false}, m_frameWireguardVisible{false},
m_frameNewServerSettingsParentWireguardVisible{false}, m_frameNewServerSettingsParentWireguardVisible{false},
m_radioButtonSetupWizardMediumChecked{true},
m_lineEditSetupWizardHighWebsiteMaskingText{},
m_progressBarNewServerConfiguringValue{0}, m_progressBarNewServerConfiguringValue{0},
m_pushButtonNewServerSettingsCloakChecked{false}, m_pushButtonNewServerSettingsCloakChecked{false},
m_pushButtonNewServerSettingsSsChecked{false}, m_pushButtonNewServerSettingsSsChecked{false},
@ -91,9 +104,7 @@ UiLogic::UiLogic(QObject *parent) :
m_checkBoxProtoOpenvpnBlockDnsChecked{false}, m_checkBoxProtoOpenvpnBlockDnsChecked{false},
m_lineEditProtoOpenvpnPortText{}, m_lineEditProtoOpenvpnPortText{},
m_checkBoxProtoOpenvpnTlsAuthChecked{false}, m_checkBoxProtoOpenvpnTlsAuthChecked{false},
m_radioButtonSetupWizardHighChecked{false},
m_radioButtonSetupWizardLowChecked{false},
m_checkBoxSetupWizardVpnModeChecked{false},
m_pushButtonConnectChecked{false}, m_pushButtonConnectChecked{false},
m_widgetProtoCloakEnabled{false}, m_widgetProtoCloakEnabled{false},
@ -172,6 +183,22 @@ UiLogic::UiLogic(QObject *parent) :
m_vpnConnection(nullptr) m_vpnConnection(nullptr)
{ {
m_vpnConnection = new VpnConnection(this); 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(bytesChanged(quint64, quint64)), this, SLOT(onBytesChanged(quint64, quint64)));
connect(m_vpnConnection, SIGNAL(connectionStateChanged(VpnProtocol::ConnectionState)), this, SLOT(onConnectionStateChanged(VpnProtocol::ConnectionState))); connect(m_vpnConnection, SIGNAL(connectionStateChanged(VpnProtocol::ConnectionState)), this, SLOT(onConnectionStateChanged(VpnProtocol::ConnectionState)));
connect(m_vpnConnection, SIGNAL(vpnProtocolError(amnezia::ErrorCode)), this, SLOT(onVpnProtocolError(amnezia::ErrorCode))); 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() 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<DockerContainer, QJsonObject> UiLogic::getInstallConfigsFromProtocolsPage()
return containers; return containers;
} }
QMap<DockerContainer, QJsonObject> 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<DockerContainer, QJsonObject> 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<DockerContainer, QJsonObject> &containers) void UiLogic::installServer(const QMap<DockerContainer, QJsonObject> &containers)
{ {
@ -2454,8 +2386,7 @@ void UiLogic::setupProtocolsPageConnections()
DockerContainer container = containers.at(i); DockerContainer container = containers.at(i);
connect(this, buttonClickedFunc, [this, container](bool){ connect(this, buttonClickedFunc, [this, container](bool){
// TODO_REFACT shareConnectionLogic()->updateSharingPage(selectedServerIndex, m_settings.serverCredentials(selectedServerIndex), container);
//updateSharingPage(selectedServerIndex, m_settings.serverCredentials(selectedServerIndex), container);
goToPage(Page::ShareConnection); 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) void UiLogic::onRadioButtonVpnModeAllSitesToggled(bool checked)
{ {

View file

@ -34,8 +34,6 @@ class UiLogic : public QObject
Q_PROPERTY(bool frameWireguardSettingsVisible READ getFrameWireguardSettingsVisible WRITE setFrameWireguardSettingsVisible NOTIFY frameWireguardSettingsVisibleChanged) Q_PROPERTY(bool frameWireguardSettingsVisible READ getFrameWireguardSettingsVisible WRITE setFrameWireguardSettingsVisible NOTIFY frameWireguardSettingsVisibleChanged)
Q_PROPERTY(bool frameWireguardVisible READ getFrameWireguardVisible WRITE setFrameWireguardVisible NOTIFY frameWireguardVisibleChanged) Q_PROPERTY(bool frameWireguardVisible READ getFrameWireguardVisible WRITE setFrameWireguardVisible NOTIFY frameWireguardVisibleChanged)
Q_PROPERTY(bool frameNewServerSettingsParentWireguardVisible READ getFrameNewServerSettingsParentWireguardVisible WRITE setFrameNewServerSettingsParentWireguardVisible NOTIFY frameNewServerSettingsParentWireguardVisibleChanged) 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(double progressBarNewServerConfiguringValue READ getProgressBarNewServerConfiguringValue WRITE setProgressBarNewServerConfiguringValue NOTIFY progressBarNewServerConfiguringValueChanged)
Q_PROPERTY(bool pushButtonNewServerSettingsCloakChecked READ getPushButtonNewServerSettingsCloakChecked WRITE setPushButtonNewServerSettingsCloakChecked NOTIFY pushButtonNewServerSettingsCloakCheckedChanged) Q_PROPERTY(bool pushButtonNewServerSettingsCloakChecked READ getPushButtonNewServerSettingsCloakChecked WRITE setPushButtonNewServerSettingsCloakChecked NOTIFY pushButtonNewServerSettingsCloakCheckedChanged)
Q_PROPERTY(bool pushButtonNewServerSettingsSsChecked READ getPushButtonNewServerSettingsSsChecked WRITE setPushButtonNewServerSettingsSsChecked NOTIFY pushButtonNewServerSettingsSsCheckedChanged) 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(bool checkBoxProtoOpenvpnBlockDnsChecked READ getCheckBoxProtoOpenvpnBlockDnsChecked WRITE setCheckBoxProtoOpenvpnBlockDnsChecked NOTIFY checkBoxProtoOpenvpnBlockDnsCheckedChanged)
Q_PROPERTY(QString lineEditProtoOpenvpnPortText READ getLineEditProtoOpenvpnPortText WRITE setLineEditProtoOpenvpnPortText NOTIFY lineEditProtoOpenvpnPortTextChanged) Q_PROPERTY(QString lineEditProtoOpenvpnPortText READ getLineEditProtoOpenvpnPortText WRITE setLineEditProtoOpenvpnPortText NOTIFY lineEditProtoOpenvpnPortTextChanged)
Q_PROPERTY(bool checkBoxProtoOpenvpnTlsAuthChecked READ getCheckBoxProtoOpenvpnTlsAuthChecked WRITE setCheckBoxProtoOpenvpnTlsAuthChecked NOTIFY checkBoxProtoOpenvpnTlsAuthCheckedChanged) 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 pushButtonConnectChecked READ getPushButtonConnectChecked WRITE setPushButtonConnectChecked NOTIFY pushButtonConnectCheckedChanged)
Q_PROPERTY(bool widgetProtoCloakEnabled READ getWidgetProtoCloakEnabled WRITE setWidgetProtoCloakEnabled NOTIFY widgetProtoCloakEnabledChanged) Q_PROPERTY(bool widgetProtoCloakEnabled READ getWidgetProtoCloakEnabled WRITE setWidgetProtoCloakEnabled NOTIFY widgetProtoCloakEnabledChanged)
@ -182,10 +177,6 @@ public:
void setFrameWireguardVisible(bool frameWireguardVisible); void setFrameWireguardVisible(bool frameWireguardVisible);
bool getFrameNewServerSettingsParentWireguardVisible() const; bool getFrameNewServerSettingsParentWireguardVisible() const;
void setFrameNewServerSettingsParentWireguardVisible(bool frameNewServerSettingsParentWireguardVisible); void setFrameNewServerSettingsParentWireguardVisible(bool frameNewServerSettingsParentWireguardVisible);
bool getRadioButtonSetupWizardMediumChecked() const;
void setRadioButtonSetupWizardMediumChecked(bool radioButtonSetupWizardMediumChecked);
QString getLineEditSetupWizardHighWebsiteMaskingText() const;
void setLineEditSetupWizardHighWebsiteMaskingText(const QString &lineEditSetupWizardHighWebsiteMaskingText);
double getProgressBarNewServerConfiguringValue() const; double getProgressBarNewServerConfiguringValue() const;
void setProgressBarNewServerConfiguringValue(double progressBarNewServerConfiguringValue); void setProgressBarNewServerConfiguringValue(double progressBarNewServerConfiguringValue);
bool getPushButtonNewServerSettingsCloakChecked() const; bool getPushButtonNewServerSettingsCloakChecked() const;
@ -250,12 +241,6 @@ public:
void setLineEditProtoOpenvpnPortText(const QString &lineEditProtoOpenvpnPortText); void setLineEditProtoOpenvpnPortText(const QString &lineEditProtoOpenvpnPortText);
bool getCheckBoxProtoOpenvpnTlsAuthChecked() const; bool getCheckBoxProtoOpenvpnTlsAuthChecked() const;
void setCheckBoxProtoOpenvpnTlsAuthChecked(bool checkBoxProtoOpenvpnTlsAuthChecked); 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; bool getPushButtonConnectChecked() const;
void setPushButtonConnectChecked(bool pushButtonConnectChecked); void setPushButtonConnectChecked(bool pushButtonConnectChecked);
@ -421,13 +406,11 @@ public:
bool getPushButtonVpnAddSiteEnabled() const; bool getPushButtonVpnAddSiteEnabled() const;
void setPushButtonVpnAddSiteEnabled(bool pushButtonVpnAddSiteEnabled); void setPushButtonVpnAddSiteEnabled(bool pushButtonVpnAddSiteEnabled);
Q_INVOKABLE void updateWizardHighPage();
Q_INVOKABLE void updateNewServerProtocolsPage(); Q_INVOKABLE void updateNewServerProtocolsPage();
Q_INVOKABLE void updateVpnPage(); Q_INVOKABLE void updateVpnPage();
Q_INVOKABLE void onPushButtonSetupWizardVpnModeFinishClicked();
Q_INVOKABLE void onPushButtonSetupWizardLowFinishClicked();
Q_INVOKABLE void onRadioButtonVpnModeAllSitesToggled(bool checked); Q_INVOKABLE void onRadioButtonVpnModeAllSitesToggled(bool checked);
Q_INVOKABLE void onRadioButtonVpnModeForwardSitesToggled(bool checked); Q_INVOKABLE void onRadioButtonVpnModeForwardSitesToggled(bool checked);
Q_INVOKABLE void onRadioButtonVpnModeExceptSitesToggled(bool checked); Q_INVOKABLE void onRadioButtonVpnModeExceptSitesToggled(bool checked);
@ -460,8 +443,7 @@ signals:
void frameWireguardSettingsVisibleChanged(); void frameWireguardSettingsVisibleChanged();
void frameWireguardVisibleChanged(); void frameWireguardVisibleChanged();
void frameNewServerSettingsParentWireguardVisibleChanged(); void frameNewServerSettingsParentWireguardVisibleChanged();
void radioButtonSetupWizardMediumCheckedChanged();
void lineEditSetupWizardHighWebsiteMaskingTextChanged();
void progressBarNewServerConfiguringValueChanged(); void progressBarNewServerConfiguringValueChanged();
void pushButtonNewServerSettingsCloakCheckedChanged(); void pushButtonNewServerSettingsCloakCheckedChanged();
void pushButtonNewServerSettingsSsCheckedChanged(); void pushButtonNewServerSettingsSsCheckedChanged();
@ -501,9 +483,8 @@ signals:
void checkBoxProtoOpenvpnBlockDnsCheckedChanged(); void checkBoxProtoOpenvpnBlockDnsCheckedChanged();
void lineEditProtoOpenvpnPortTextChanged(); void lineEditProtoOpenvpnPortTextChanged();
void checkBoxProtoOpenvpnTlsAuthCheckedChanged(); void checkBoxProtoOpenvpnTlsAuthCheckedChanged();
void radioButtonSetupWizardHighCheckedChanged();
void radioButtonSetupWizardLowCheckedChanged();
void checkBoxSetupWizardVpnModeCheckedChanged();
void pushButtonConnectCheckedChanged(); void pushButtonConnectCheckedChanged();
void widgetProtoCloakEnabledChanged(); void widgetProtoCloakEnabledChanged();
@ -607,8 +588,7 @@ private:
bool m_frameWireguardSettingsVisible; bool m_frameWireguardSettingsVisible;
bool m_frameWireguardVisible; bool m_frameWireguardVisible;
bool m_frameNewServerSettingsParentWireguardVisible; bool m_frameNewServerSettingsParentWireguardVisible;
bool m_radioButtonSetupWizardMediumChecked;
QString m_lineEditSetupWizardHighWebsiteMaskingText;
double m_progressBarNewServerConfiguringValue; double m_progressBarNewServerConfiguringValue;
bool m_pushButtonNewServerSettingsCloakChecked; bool m_pushButtonNewServerSettingsCloakChecked;
bool m_pushButtonNewServerSettingsSsChecked; bool m_pushButtonNewServerSettingsSsChecked;
@ -649,9 +629,7 @@ private:
bool m_checkBoxProtoOpenvpnBlockDnsChecked; bool m_checkBoxProtoOpenvpnBlockDnsChecked;
QString m_lineEditProtoOpenvpnPortText; QString m_lineEditProtoOpenvpnPortText;
bool m_checkBoxProtoOpenvpnTlsAuthChecked; bool m_checkBoxProtoOpenvpnTlsAuthChecked;
bool m_radioButtonSetupWizardHighChecked;
bool m_radioButtonSetupWizardLowChecked;
bool m_checkBoxSetupWizardVpnModeChecked;
bool m_pushButtonConnectChecked; bool m_pushButtonConnectChecked;
@ -794,9 +772,37 @@ private:
QJsonObject getCloakConfigFromPage(QJsonObject oldConfig); QJsonObject getCloakConfigFromPage(QJsonObject oldConfig);
QMap<DockerContainer, QJsonObject> getInstallConfigsFromProtocolsPage() const; QMap<DockerContainer, QJsonObject> getInstallConfigsFromProtocolsPage() const;
QMap<DockerContainer, QJsonObject> 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: 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; VpnConnection* m_vpnConnection;
Settings m_settings; Settings m_settings;