Files
GUI/src/network/GetRouteDialog.cpp

75 lines
2.0 KiB
C++
Raw Normal View History

2022-06-08 09:53:33 +08:00
//
// Created by Krad on 2021/11/11.
//
#include "GetRouteDialog.h"
2023-08-21 14:22:41 +08:00
#include <QRegularExpressionValidator>
2022-06-08 09:53:33 +08:00
#include <QFormLayout>
#include <QLabel>
#include "components/ULineEdit.h"
2022-06-08 09:53:33 +08:00
#include "device/networkmanager.h"
GetRouteDialog::GetRouteDialog(QWidget* parent, Qt::WindowFlags f)
: GUIFormBaseDialog(parent, f)
, mDestination(new ULineEdit(this))
, mNetmask(new ULineEdit(this))
, mGateway(new ULineEdit(this))
2022-06-08 09:53:33 +08:00
, mLabelError(new QLabel(this))
{
setWindowModality(Qt::WindowModal);
2022-06-13 11:21:44 +08:00
QFormLayout* formLayout = new QFormLayout(mFormWidget);
2022-06-08 09:53:33 +08:00
formLayout->addRow(QString(tr("Destination")), mDestination);
formLayout->addRow(QString(tr("Netmask")), mNetmask);
formLayout->addRow(QString(tr("Gateway")), mGateway);
mLabelError->setObjectName("warn");
formLayout->addRow("", mLabelError);
2023-08-21 14:22:41 +08:00
//set ip input restrictions
QRegularExpression regex("^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)$");
QRegularExpressionValidator* validator = new QRegularExpressionValidator(regex, this);
mDestination->setValidator(validator);
mNetmask->setValidator(validator);
mGateway->setValidator(validator);
2022-06-08 09:53:33 +08:00
}
GetRouteDialog::~GetRouteDialog()
{
}
QStringList GetRouteDialog::getList()const
{
return QStringList() << mDestination->text() << mNetmask->text() << mGateway->text();;
}
void GetRouteDialog::setList(const QStringList& list)
{
if (!list.empty())
{
mDestination->setText(list[0]);
mNetmask->setText(list[1]);
mGateway->setText(list[2]);
}
}
bool GetRouteDialog::updateReferenceData()
{
if (!NetworkManager::validate(mDestination->text()))
{
mLabelError->setText(tr("Wrong Destination!"));
return false;
}
if (!NetworkManager::validate(mNetmask->text()))
{
mLabelError->setText(tr("Wrong Netmask!"));
return false;
}
if (!NetworkManager::validate(mGateway->text()))
{
mLabelError->setText(tr("Wrong Gateway!"));
return false;
}
return true;
2023-08-21 14:22:41 +08:00
}