diff --git a/sources/gui/src/bridgewidget.cpp b/sources/gui/src/bridgewidget.cpp index a62b7b4..a4934a6 100644 --- a/sources/gui/src/bridgewidget.cpp +++ b/sources/gui/src/bridgewidget.cpp @@ -47,9 +47,9 @@ QHash BridgeWidget::getSettings() if (isOk() == 0) { if (ui->checkBox_skip->checkState() == Qt::Checked) bridgeSettings[QString("SkipForwardingDelay")] = QString("yes"); + clear(); } - clear(); return bridgeSettings; } diff --git a/sources/gui/src/ethernetwidget.cpp b/sources/gui/src/ethernetwidget.cpp index fed7ab1..265ce5f 100644 --- a/sources/gui/src/ethernetwidget.cpp +++ b/sources/gui/src/ethernetwidget.cpp @@ -111,9 +111,9 @@ QHash EthernetWidget::getSettings() ethernetSettings[QString("TimeoutCarrier")] = QString(ui->spinBox_timeoutCarrier->value()); if (ui->spinBox_timeoutWpa->value() != 15) ethernetSettings[QString("TimeoutWPA")] = QString(ui->spinBox_timeoutWpa->value()); + clear(); } - clear(); return ethernetSettings; } diff --git a/sources/gui/src/generalwidget.cpp b/sources/gui/src/generalwidget.cpp index afbfdda..c1f831e 100644 --- a/sources/gui/src/generalwidget.cpp +++ b/sources/gui/src/generalwidget.cpp @@ -134,9 +134,9 @@ QHash GeneralWidget::getSettings() generalSettings[QString("ExecDownPre")] = ui->lineEdit_execDownPre->text(); if (ui->checkBox_forceConnect->checkState() == Qt::Checked) generalSettings[QString("ForceConnect")] = QString("yes"); + clear(); } - clear(); return generalSettings; } diff --git a/sources/gui/src/ipwidget.cpp b/sources/gui/src/ipwidget.cpp index 96da002..7b9028b 100644 --- a/sources/gui/src/ipwidget.cpp +++ b/sources/gui/src/ipwidget.cpp @@ -454,9 +454,9 @@ QHash IpWidget::getSettings() dnsOpt.append(QString("'") + ui->listWidget_dnsOptions->item(i)->text() + QString("'")); ipSettings[QString("DNS")] = dnsOpt.join(QString(" ")); } + clear(); } - clear(); return ipSettings; } diff --git a/sources/gui/src/mobilewidget.cpp b/sources/gui/src/mobilewidget.cpp index 257b2fd..bf2d34b 100644 --- a/sources/gui/src/mobilewidget.cpp +++ b/sources/gui/src/mobilewidget.cpp @@ -111,9 +111,9 @@ QHash MobileWidget::getSettings() mobileSettings[QString("UsePeerDNS")] = QString("false"); if (!ui->lineEdit_options->text().isEmpty()) mobileSettings[QString("OptionsFile")] = ui->lineEdit_options->text(); + clear(); } - clear(); return mobileSettings; } diff --git a/sources/gui/src/pppoewidget.cpp b/sources/gui/src/pppoewidget.cpp index cab9627..742bf07 100644 --- a/sources/gui/src/pppoewidget.cpp +++ b/sources/gui/src/pppoewidget.cpp @@ -152,9 +152,9 @@ QHash PppoeWidget::getSettings() pppoeSettings[QString("PPPoEMAC")] = QString("'") + ui->lineEdit_mac->text() + QString("'"); if (ui->checkBox_ipv6->checkState() == Qt::Checked) pppoeSettings[QString("PPPoEIP6")] = QString("yes"); + clear(); } - clear(); return pppoeSettings; } diff --git a/sources/gui/src/sleepthread.h b/sources/gui/src/sleepthread.h index 9e8a3a5..e24dcd4 100644 --- a/sources/gui/src/sleepthread.h +++ b/sources/gui/src/sleepthread.h @@ -33,10 +33,12 @@ public : { QThread::usleep(iSleepTime); } + static void sleep(long iSleepTime) { QThread::sleep(iSleepTime); } + static void msleep(long iSleepTime) { QThread::msleep(iSleepTime); diff --git a/sources/gui/src/tunnelwidget.cpp b/sources/gui/src/tunnelwidget.cpp index c303e57..c08e510 100644 --- a/sources/gui/src/tunnelwidget.cpp +++ b/sources/gui/src/tunnelwidget.cpp @@ -24,6 +24,8 @@ TunnelWidget::TunnelWidget(QWidget *parent) ui(new Ui::TunnelWidget) { ui->setupUi(this); + createFilter(); + clear(); } @@ -31,3 +33,66 @@ TunnelWidget::~TunnelWidget() { delete ui; } + + +void TunnelWidget::clear() +{ + ui->comboBox_mode->setCurrentIndex(0); + ui->lineEdit_local->clear(); + ui->lineEdit_remote->clear(); +} + + +void TunnelWidget::createFilter() +{ + // using input mask because validators is not comfortable + // ipv4 + ui->lineEdit_local->setInputMask(QString("999.999.999.999")); + ui->lineEdit_remote->setInputMask(QString("999.999.999.999")); +} + + +QString TunnelWidget::getIp(QString rawIp) +{ + QStringList ip = rawIp.split(QString(".")); + + // fix empty fields + if (ip[0].isEmpty()) + ip[0] = QString("127"); + if (ip[1].isEmpty()) + ip[1] = QString("0"); + if (ip[2].isEmpty()) + ip[2] = QString("0"); + if (ip[3].isEmpty()) + ip[3] = QString("1"); + // fix numbers + for (int i=0; i<4; i++) + if (ip[i].toInt() > 255) + ip[i] = QString("255"); + + return ip.join(QString(".")); +} + + +QHash TunnelWidget::getSettings() +{ + QHash tunnelSettings; + + if (isOk() == 0) { + tunnelSettings[QString("Mode")] = QString("'") + ui->comboBox_mode->currentText() + QString("'"); + if (!ui->lineEdit_local->text().split(QString(".")).join(QString("")).remove(QString(" ")).isEmpty()) + tunnelSettings[QString("Local")] = QString("'") + getIp(ui->lineEdit_local->text().remove(QString(" "))) + QString("'"); + if (!ui->lineEdit_remote->text().split(QString(".")).join(QString("")).remove(QString(" ")).isEmpty()) + tunnelSettings[QString("Remote")] = QString("'") + getIp(ui->lineEdit_remote->text().remove(QString(" "))) + QString("'"); + clear(); + } + + return tunnelSettings; +} + + +int TunnelWidget::isOk() +{ + // all fine + return 0; +} diff --git a/sources/gui/src/tunnelwidget.h b/sources/gui/src/tunnelwidget.h index 3b6977c..b01b6ca 100644 --- a/sources/gui/src/tunnelwidget.h +++ b/sources/gui/src/tunnelwidget.h @@ -32,9 +32,16 @@ class TunnelWidget : public QWidget public: explicit TunnelWidget(QWidget *parent = 0); ~TunnelWidget(); + QHash getSettings(); + int isOk(); + +public slots: + void clear(); private: Ui::TunnelWidget *ui; + void createFilter(); + QString getIp(QString rawIp); }; diff --git a/sources/gui/src/tuntapwidget.cpp b/sources/gui/src/tuntapwidget.cpp index 3ad3ffd..ca7bae7 100644 --- a/sources/gui/src/tuntapwidget.cpp +++ b/sources/gui/src/tuntapwidget.cpp @@ -24,6 +24,7 @@ TuntapWidget::TuntapWidget(QWidget *parent) ui(new Ui::TuntapWidget) { ui->setupUi(this); + clear(); } @@ -31,3 +32,39 @@ TuntapWidget::~TuntapWidget() { delete ui; } + + +void TuntapWidget::clear() +{ + ui->comboBox_mode->setCurrentIndex(0); + ui->lineEdit_user->setText(QString("nobody")); + ui->lineEdit_group->setText(QString("nobody")); +} + + +QHash TuntapWidget::getSettings() +{ + QHash tuntapSettings; + + if (isOk() == 0) { + tuntapSettings[QString("Mode")] = QString("'") + ui->comboBox_mode->currentText() + QString("'"); + tuntapSettings[QString("User")] = QString("'") + ui->lineEdit_user->text() + QString("'"); + tuntapSettings[QString("Group")] = QString("'") + ui->lineEdit_group->text() + QString("'"); + clear(); + } + + return tuntapSettings; +} + + +int TuntapWidget::isOk() +{ + // empty username + if (ui->lineEdit_user->text().isEmpty()) + return 1; + // empty group name + if (ui->lineEdit_group->text().isEmpty()) + return 2; + // all fine + return 0; +} diff --git a/sources/gui/src/tuntapwidget.h b/sources/gui/src/tuntapwidget.h index d0ee18f..bee5a46 100644 --- a/sources/gui/src/tuntapwidget.h +++ b/sources/gui/src/tuntapwidget.h @@ -32,6 +32,11 @@ class TuntapWidget : public QWidget public: explicit TuntapWidget(QWidget *parent = 0); ~TuntapWidget(); + QHash getSettings(); + int isOk(); + +public slots: + void clear(); private: Ui::TuntapWidget *ui; diff --git a/sources/gui/src/vlanwidget.cpp b/sources/gui/src/vlanwidget.cpp index c5a922d..4d82ca5 100644 --- a/sources/gui/src/vlanwidget.cpp +++ b/sources/gui/src/vlanwidget.cpp @@ -24,6 +24,7 @@ VlanWidget::VlanWidget(QWidget *parent) ui(new Ui::VlanWidget) { ui->setupUi(this); + clear(); } @@ -31,3 +32,29 @@ VlanWidget::~VlanWidget() { delete ui; } + + +void VlanWidget::clear() +{ + ui->spinBox_vlan->setValue(55); +} + + +QHash VlanWidget::getSettings() +{ + QHash vlanSettings; + + if (isOk() == 0) { + vlanSettings[QString("VLANID")] = QString(ui->spinBox_vlan->value()); + clear(); + } + + return vlanSettings; +} + + +int VlanWidget::isOk() +{ + // all fine + return 0; +} diff --git a/sources/gui/src/vlanwidget.h b/sources/gui/src/vlanwidget.h index 2ccf995..4d3cf02 100644 --- a/sources/gui/src/vlanwidget.h +++ b/sources/gui/src/vlanwidget.h @@ -32,6 +32,11 @@ class VlanWidget : public QWidget public: explicit VlanWidget(QWidget *parent = 0); ~VlanWidget(); + QHash getSettings(); + int isOk(); + +public slots: + void clear(); private: Ui::VlanWidget *ui;