diff --git a/client/core/servercontroller.cpp b/client/core/servercontroller.cpp index 9ab8e3c7..c6e2cd35 100644 --- a/client/core/servercontroller.cpp +++ b/client/core/servercontroller.cpp @@ -478,8 +478,10 @@ QJsonObject ServerController::createContainerInitialConfig(DockerContainer conta bool ServerController::isReinstallContainerRequred(DockerContainer container, const QJsonObject &oldConfig, const QJsonObject &newConfig) { - const QJsonObject &oldProtoConfig = oldConfig[ContainerProps::containerToString(container)].toObject(); - const QJsonObject &newProtoConfig = newConfig[ContainerProps::containerToString(container)].toObject(); + Proto mainProto = ContainerProps::defaultProtocol(container); + + const QJsonObject &oldProtoConfig = oldConfig.value(ProtocolProps::protoToString(mainProto)).toObject(); + const QJsonObject &newProtoConfig = newConfig.value(ProtocolProps::protoToString(mainProto)).toObject(); if (container == DockerContainer::OpenVpn) { if (oldProtoConfig.value(config_key::transport_proto).toString(protocols::openvpn::defaultTransportProto) != diff --git a/client/ui/pages_logic/NetworkSettingsLogic.cpp b/client/ui/pages_logic/NetworkSettingsLogic.cpp index a8171a9c..668007e6 100644 --- a/client/ui/pages_logic/NetworkSettingsLogic.cpp +++ b/client/ui/pages_logic/NetworkSettingsLogic.cpp @@ -5,7 +5,7 @@ NetworkSettingsLogic::NetworkSettingsLogic(UiLogic *logic, QObject *parent): PageLogicBase(logic, parent), - m_ipAddressValidatorRegex{Utils::ipAddressRegExp().pattern()} + m_ipAddressRegex{Utils::ipAddressRegExp()} { } @@ -18,16 +18,14 @@ void NetworkSettingsLogic::onUpdatePage() void NetworkSettingsLogic::onLineEditDns1EditFinished(const QString &text) { - QRegExp reg{getIpAddressValidatorRegex()}; - if (reg.exactMatch(text)) { + if (ipAddressRegex().exactMatch(text)) { m_settings.setPrimaryDns(text); } } void NetworkSettingsLogic::onLineEditDns2EditFinished(const QString &text) { - QRegExp reg{getIpAddressValidatorRegex()}; - if (reg.exactMatch(text)) { + if (ipAddressRegex().exactMatch(text)) { m_settings.setSecondaryDns(text); } } @@ -43,8 +41,3 @@ void NetworkSettingsLogic::onPushButtonResetDns2Clicked() m_settings.setSecondaryDns(m_settings.cloudFlareNs2); onUpdatePage(); } - -QString NetworkSettingsLogic::getIpAddressValidatorRegex() const -{ - return m_ipAddressValidatorRegex; -} diff --git a/client/ui/pages_logic/NetworkSettingsLogic.h b/client/ui/pages_logic/NetworkSettingsLogic.h index 089d3868..336f5aea 100644 --- a/client/ui/pages_logic/NetworkSettingsLogic.h +++ b/client/ui/pages_logic/NetworkSettingsLogic.h @@ -11,7 +11,7 @@ class NetworkSettingsLogic : public PageLogicBase AUTO_PROPERTY(QString, lineEditDns1Text) AUTO_PROPERTY(QString, lineEditDns2Text) - READONLY_PROPERTY(QString, ipAddressValidatorRegex) + READONLY_PROPERTY(QRegExp, ipAddressRegex) public: Q_INVOKABLE void onUpdatePage() override; @@ -25,6 +25,5 @@ public: explicit NetworkSettingsLogic(UiLogic *uiLogic, QObject *parent = nullptr); ~NetworkSettingsLogic() = default; - QString getIpAddressValidatorRegex() const; }; #endif // NETWORK_SETTINGS_LOGIC_H diff --git a/client/ui/pages_logic/StartPageLogic.cpp b/client/ui/pages_logic/StartPageLogic.cpp index 0540afd1..e8b3f269 100644 --- a/client/ui/pages_logic/StartPageLogic.cpp +++ b/client/ui/pages_logic/StartPageLogic.cpp @@ -2,6 +2,7 @@ #include "core/errorstrings.h" #include "configurators/ssh_configurator.h" #include "../uilogic.h" +#include "utils.h" #include #include @@ -23,7 +24,8 @@ StartPageLogic::StartPageLogic(UiLogic *logic, QObject *parent): m_labelWaitInfoVisible{true}, m_labelWaitInfoText{}, m_pushButtonBackFromStartVisible{true}, - m_pushButtonConnectVisible{true} + m_pushButtonConnectVisible{true}, + m_ipAddressPortRegex{Utils::ipAddressPortRegExp()} { } diff --git a/client/ui/pages_logic/StartPageLogic.h b/client/ui/pages_logic/StartPageLogic.h index 7c33f5dc..f5f132f8 100644 --- a/client/ui/pages_logic/StartPageLogic.h +++ b/client/ui/pages_logic/StartPageLogic.h @@ -22,6 +22,7 @@ class StartPageLogic : public PageLogicBase AUTO_PROPERTY(bool, pushButtonBackFromStartVisible) AUTO_PROPERTY(bool, pushButtonConnectVisible) + READONLY_PROPERTY(QRegExp, ipAddressPortRegex) public: Q_INVOKABLE void onUpdatePage() override; diff --git a/client/ui/qml/Pages/PageNetworkSetting.qml b/client/ui/qml/Pages/PageNetworkSetting.qml index 7de7ca5f..ef23c200 100644 --- a/client/ui/qml/Pages/PageNetworkSetting.qml +++ b/client/ui/qml/Pages/PageNetworkSetting.qml @@ -37,7 +37,7 @@ PageBase { NetworkSettingsLogic.onLineEditDns1EditFinished(text) } validator: RegExpValidator { - regExp: NetworkSettingsLogic.ipAddressValidatorRegex + regExp: NetworkSettingsLogic.ipAddressRegex } } ImageButtonType { @@ -74,7 +74,7 @@ PageBase { NetworkSettingsLogic.onLineEditDns2EditFinished(text) } validator: RegExpValidator { - regExp: NetworkSettingsLogic.ipAddressValidatorRegex + regExp: NetworkSettingsLogic.ipAddressRegex } } ImageButtonType { diff --git a/client/ui/qml/Pages/PageStart.qml b/client/ui/qml/Pages/PageStart.qml index 1f01b917..b8aceab3 100644 --- a/client/ui/qml/Pages/PageStart.qml +++ b/client/ui/qml/Pages/PageStart.qml @@ -186,7 +186,7 @@ PageBase { id: label_server_ip x: 40 anchors.top: new_sever_get_info.bottom - text: qsTr("Server IP address") + text: qsTr("Server IP address [:port]") } TextFieldType { id: new_server_ip @@ -196,6 +196,10 @@ PageBase { onEditingFinished: { StartPageLogic.lineEditIpText = text } + + validator: RegExpValidator { + regExp: StartPageLogic.ipAddressPortRegex + } } LabelType {