RegExp validators fix

This commit is contained in:
pokamest 2021-12-25 23:01:53 +03:00
parent 68a51c9c63
commit 9943e081d9
7 changed files with 19 additions and 18 deletions

View file

@ -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) !=

View file

@ -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;
}

View file

@ -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

View file

@ -2,6 +2,7 @@
#include "core/errorstrings.h"
#include "configurators/ssh_configurator.h"
#include "../uilogic.h"
#include "utils.h"
#include <QFileDialog>
#include <QStandardPaths>
@ -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()}
{
}

View file

@ -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;

View file

@ -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 {

View file

@ -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 {