From f3b6457a9b81ebde6b1faceae2ba4273e5e2fbd1 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Fri, 21 Feb 2014 21:26:44 +0400 Subject: [PATCH] now mobile ppp widget has been completed --- sources/gui/src/bridgewidget.cpp | 28 ++++ sources/gui/src/bridgewidget.h | 5 + sources/gui/src/ethernetwidget.cpp | 24 +++- sources/gui/src/ethernetwidget.h | 1 + sources/gui/src/ethernetwidget.ui | 8 ++ sources/gui/src/generalwidget.cpp | 4 +- sources/gui/src/ipwidget.cpp | 4 +- sources/gui/src/mainwindow.cpp | 4 +- sources/gui/src/mainwindow.h | 4 +- sources/gui/src/mainwindow.ui | 62 ++++---- sources/gui/src/mobileppp.cpp | 33 ----- sources/gui/src/mobilewidget.cpp | 132 ++++++++++++++++++ .../gui/src/{mobileppp.h => mobilewidget.h} | 26 ++-- .../gui/src/{mobileppp.ui => mobilewidget.ui} | 4 +- 14 files changed, 256 insertions(+), 83 deletions(-) delete mode 100644 sources/gui/src/mobileppp.cpp create mode 100644 sources/gui/src/mobilewidget.cpp rename sources/gui/src/{mobileppp.h => mobilewidget.h} (76%) rename sources/gui/src/{mobileppp.ui => mobilewidget.ui} (99%) diff --git a/sources/gui/src/bridgewidget.cpp b/sources/gui/src/bridgewidget.cpp index 9216655..a62b7b4 100644 --- a/sources/gui/src/bridgewidget.cpp +++ b/sources/gui/src/bridgewidget.cpp @@ -24,6 +24,7 @@ BridgeWidget::BridgeWidget(QWidget *parent) ui(new Ui::BridgeWidget) { ui->setupUi(this); + clear(); } @@ -31,3 +32,30 @@ BridgeWidget::~BridgeWidget() { delete ui; } + + +void BridgeWidget::clear() +{ + ui->checkBox_skip->setCheckState(Qt::Unchecked); +} + + +QHash BridgeWidget::getSettings() +{ + QHash bridgeSettings; + + if (isOk() == 0) { + if (ui->checkBox_skip->checkState() == Qt::Checked) + bridgeSettings[QString("SkipForwardingDelay")] = QString("yes"); + } + + clear(); + return bridgeSettings; +} + + +int BridgeWidget::isOk() +{ + // all fine + return 0; +} diff --git a/sources/gui/src/bridgewidget.h b/sources/gui/src/bridgewidget.h index a85f606..7f78ccb 100644 --- a/sources/gui/src/bridgewidget.h +++ b/sources/gui/src/bridgewidget.h @@ -32,6 +32,11 @@ class BridgeWidget : public QWidget public: explicit BridgeWidget(QWidget *parent = 0); ~BridgeWidget(); + QHash getSettings(); + int isOk(); + +public slots: + void clear(); private: Ui::BridgeWidget *ui; diff --git a/sources/gui/src/ethernetwidget.cpp b/sources/gui/src/ethernetwidget.cpp index 120bd05..fed7ab1 100644 --- a/sources/gui/src/ethernetwidget.cpp +++ b/sources/gui/src/ethernetwidget.cpp @@ -18,6 +18,8 @@ #include "ethernetwidget.h" #include "ui_ethernetwidget.h" +#include +#include #include @@ -28,7 +30,6 @@ EthernetWidget::EthernetWidget(QWidget *parent) ui->setupUi(this); createActions(); clear(); - showAdvanced(); } @@ -46,16 +47,32 @@ void EthernetWidget::clear() ui->comboBox_driver->setCurrentIndex(0); ui->spinBox_timeoutCarrier->setValue(5); ui->spinBox_timeoutWpa->setValue(15); + + ui->pushButton_ethernetAdvanced->setText(QApplication::translate("EthernetWidget", "Hide advanced")); + showAdvanced(); } void EthernetWidget::createActions() { connect(ui->pushButton_ethernetAdvanced, SIGNAL(clicked(bool)), this, SLOT(showAdvanced())); + connect(ui->pushButton_wpaConfig, SIGNAL(clicked(bool)), this, SLOT(selectWpaConfig())); connect(ui->checkBox_8021x, SIGNAL(stateChanged(int)), this, SLOT(showWpa(int))); } +void EthernetWidget::selectWpaConfig() +{ + QString filename = QFileDialog::getOpenFileName( + this, + QApplication::translate("EthernetWidget", "Select wpa configuration file"), + QDir::currentPath(), + QApplication::translate("EthernetWidget", "Configuration files (*.conf)")); + if (!filename.isEmpty()) + ui->lineEdit_wpaConfig->setText(filename); +} + + void EthernetWidget::showAdvanced() { if (ui->pushButton_ethernetAdvanced->text().indexOf(QString("Show")) > -1) { @@ -104,8 +121,9 @@ QHash EthernetWidget::getSettings() int EthernetWidget::isOk() { // file wpa_supplicant doesn't exists - if (!QFile(ui->lineEdit_wpaConfig->text()).exists()) - return 1; + if (!ui->lineEdit_wpaConfig->text().isEmpty()) + if (!QFile(ui->lineEdit_wpaConfig->text()).exists()) + return 1; // all fine return 0; } diff --git a/sources/gui/src/ethernetwidget.h b/sources/gui/src/ethernetwidget.h index 353147e..6d91453 100644 --- a/sources/gui/src/ethernetwidget.h +++ b/sources/gui/src/ethernetwidget.h @@ -40,6 +40,7 @@ public slots: void clear(); private slots: + void selectWpaConfig(); void showAdvanced(); void showWpa(int state); diff --git a/sources/gui/src/ethernetwidget.ui b/sources/gui/src/ethernetwidget.ui index 9d4cabf..6c6fc90 100644 --- a/sources/gui/src/ethernetwidget.ui +++ b/sources/gui/src/ethernetwidget.ui @@ -99,6 +99,13 @@ + + + + Browse + + + @@ -217,6 +224,7 @@ checkBox_skip checkBox_8021x lineEdit_wpaConfig + pushButton_wpaConfig comboBox_driver spinBox_timeoutCarrier spinBox_timeoutWpa diff --git a/sources/gui/src/generalwidget.cpp b/sources/gui/src/generalwidget.cpp index c1cf9c3..afbfdda 100644 --- a/sources/gui/src/generalwidget.cpp +++ b/sources/gui/src/generalwidget.cpp @@ -30,7 +30,6 @@ GeneralWidget::GeneralWidget(QWidget *parent, QString ifaceDir, QString profileD ui->setupUi(this); createActions(); clear(); - showAdvanced(); } @@ -57,6 +56,9 @@ void GeneralWidget::clear() ui->lineEdit_execUpPost->clear(); ui->lineEdit_execDownPre->clear(); ui->checkBox_forceConnect->setCheckState(Qt::Unchecked); + + ui->pushButton_generalAdvanced->setText(QApplication::translate("GeneralWidget", "Hide advanced")); + showAdvanced(); } diff --git a/sources/gui/src/ipwidget.cpp b/sources/gui/src/ipwidget.cpp index 4fbb7a9..96da002 100644 --- a/sources/gui/src/ipwidget.cpp +++ b/sources/gui/src/ipwidget.cpp @@ -29,7 +29,6 @@ IpWidget::IpWidget(QWidget *parent) createActions(); createFilter(); clear(); - showAdvanced(); } @@ -76,6 +75,9 @@ void IpWidget::clear() ui->lineEdit_dnsSearch->clear(); ui->lineEdit_dnsOptions->clear(); ui->listWidget_dnsOptions->clear(); + + ui->pushButton_ipAdvanced->setText(QApplication::translate("IpWidget", "Hide advanced")); + showAdvanced(); } diff --git a/sources/gui/src/mainwindow.cpp b/sources/gui/src/mainwindow.cpp index 2fa3b91..b4a29b5 100644 --- a/sources/gui/src/mainwindow.cpp +++ b/sources/gui/src/mainwindow.cpp @@ -26,7 +26,7 @@ #include "ethernetwidget.h" #include "generalwidget.h" #include "ipwidget.h" -#include "mobileppp.h" +#include "mobilewidget.h" #include "netctlinteract.h" #include "netctlprofile.h" #include "passwdwidget.h" @@ -73,7 +73,7 @@ MainWindow::MainWindow(QWidget *parent) ui->scrollAreaWidgetContents->layout()->addWidget(bridgeWid); ethernetWid = new EthernetWidget(this); ui->scrollAreaWidgetContents->layout()->addWidget(ethernetWid); - mobileWid = new MobilePpp(this); + mobileWid = new MobileWidget(this); ui->scrollAreaWidgetContents->layout()->addWidget(mobileWid); pppoeWid = new PppoeWidget(this); ui->scrollAreaWidgetContents->layout()->addWidget(pppoeWid); diff --git a/sources/gui/src/mainwindow.h b/sources/gui/src/mainwindow.h index a7b69af..b063547 100644 --- a/sources/gui/src/mainwindow.h +++ b/sources/gui/src/mainwindow.h @@ -29,7 +29,7 @@ class ErrorWindow; class EthernetWidget; class GeneralWidget; class IpWidget; -class MobilePpp; +class MobileWidget; class Netctl; class NetctlProfile; class PasswdWidget; @@ -89,7 +89,7 @@ private: EthernetWidget *ethernetWid; GeneralWidget *generalWid; IpWidget *ipWid; - MobilePpp *mobileWid; + MobileWidget *mobileWid; PppoeWidget *pppoeWid; TunnelWidget *tunnelWid; TuntapWidget *tuntapWid; diff --git a/sources/gui/src/mainwindow.ui b/sources/gui/src/mainwindow.ui index 032b2f4..23e62b3 100644 --- a/sources/gui/src/mainwindow.ui +++ b/sources/gui/src/mainwindow.ui @@ -204,6 +204,37 @@ + + + + + + Clear + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Save + + + + + @@ -310,37 +341,6 @@ - - - - - - Clear - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Save - - - - - diff --git a/sources/gui/src/mobileppp.cpp b/sources/gui/src/mobileppp.cpp deleted file mode 100644 index 21a46cd..0000000 --- a/sources/gui/src/mobileppp.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/*************************************************************************** - * This file is part of netctl-plasmoid * - * * - * netctl-plasmoid is free software: you can redistribute it and/or * - * modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation, either version 3 of the * - * License, or (at your option) any later version. * - * * - * netctl-plasmoid is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with netctl-plasmoid. If not, see http://www.gnu.org/licenses/ * - ***************************************************************************/ - -#include "mobileppp.h" -#include "ui_mobileppp.h" - - -MobilePpp::MobilePpp(QWidget *parent) - : QWidget(parent), - ui(new Ui::MobilePpp) -{ - ui->setupUi(this); -} - - -MobilePpp::~MobilePpp() -{ - delete ui; -} diff --git a/sources/gui/src/mobilewidget.cpp b/sources/gui/src/mobilewidget.cpp new file mode 100644 index 0000000..257b2fd --- /dev/null +++ b/sources/gui/src/mobilewidget.cpp @@ -0,0 +1,132 @@ +/*************************************************************************** + * This file is part of netctl-plasmoid * + * * + * netctl-plasmoid is free software: you can redistribute it and/or * + * modify it under the terms of the GNU General Public License as * + * published by the Free Software Foundation, either version 3 of the * + * License, or (at your option) any later version. * + * * + * netctl-plasmoid is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with netctl-plasmoid. If not, see http://www.gnu.org/licenses/ * + ***************************************************************************/ + +#include "mobilewidget.h" +#include "ui_mobilewidget.h" + +#include +#include +#include + + +MobileWidget::MobileWidget(QWidget *parent) + : QWidget(parent), + ui(new Ui::MobileWidget) +{ + ui->setupUi(this); + createActions(); + clear(); +} + + +MobileWidget::~MobileWidget() +{ + delete ui; +} + + +void MobileWidget::clear() +{ + ui->lineEdit_username->clear(); + ui->lineEdit_password->clear(); + ui->lineEdit_apn->clear(); + ui->lineEdit_pin->clear(); + ui->comboBox_mode->setCurrentIndex(0); + ui->spinBox_fail->setValue(5); + ui->checkBox_route->setCheckState(Qt::Checked); + ui->checkBox_dns->setCheckState(Qt::Checked); + ui->lineEdit_options->clear(); + + ui->pushButton_mobileAdvanced->setText(QApplication::translate("MobileWidget", "Hide advanced")); + showAdvanced(); +} + + +void MobileWidget::createActions() +{ + connect(ui->pushButton_mobileAdvanced, SIGNAL(clicked(bool)), this, SLOT(showAdvanced())); + connect(ui->pushButton_options, SIGNAL(clicked(bool)), this, SLOT(selectOptionsFile())); +} + + +void MobileWidget::selectOptionsFile() +{ + QString filename = QFileDialog::getOpenFileName( + this, + QApplication::translate("MobileWidget", "Select options file"), + QDir::currentPath(), + QApplication::translate("MobileWidget", "Configuration files (*.conf)")); + if (!filename.isEmpty()) + ui->lineEdit_options->setText(filename); +} + + +void MobileWidget::showAdvanced() +{ + if (ui->pushButton_mobileAdvanced->text().indexOf(QString("Show")) > -1) { + ui->widget_mobileAdvanced->setShown(true); + ui->pushButton_mobileAdvanced->setText(QApplication::translate("MobileWidget", "Hide advanced")); + } + else { + ui->widget_mobileAdvanced->setHidden(true); + ui->pushButton_mobileAdvanced->setText(QApplication::translate("MobileWidget", "Show advanced")); + } +} + + +QHash MobileWidget::getSettings() +{ + QHash mobileSettings; + + if (isOk() == 0) { + if (!ui->lineEdit_username->text().isEmpty()) + mobileSettings[QString("User")] = QString("'") + ui->lineEdit_username->text() + QString("'"); + if (!ui->lineEdit_password->text().isEmpty()) + mobileSettings[QString("Password")] = QString("'") + ui->lineEdit_password->text() + QString("'"); + mobileSettings[QString("AccessPointName")] = ui->lineEdit_apn->text(); + if (!ui->lineEdit_pin->text().isEmpty()) + mobileSettings[QString("PIN")] = QString("'") + ui->lineEdit_pin->text() + QString("'"); + else + mobileSettings[QString("PIN")] = QString("None"); + mobileSettings[QString("Mode")] = ui->comboBox_mode->currentText(); + if (ui->spinBox_fail->value() != 5) + mobileSettings[QString("MaxFail")] = QString(ui->spinBox_fail->value()); + if (ui->checkBox_route->checkState() == Qt::Unchecked) + mobileSettings[QString("DefaultRoute")] = QString("false"); + if (ui->checkBox_dns->checkState() == Qt::Unchecked) + mobileSettings[QString("UsePeerDNS")] = QString("false"); + if (!ui->lineEdit_options->text().isEmpty()) + mobileSettings[QString("OptionsFile")] = ui->lineEdit_options->text(); + } + + clear(); + return mobileSettings; +} + + +int MobileWidget::isOk() +{ + // APN is not set + if (ui->lineEdit_apn->text().isEmpty()) + return 1; + // config file doesn't exist + if (!ui->lineEdit_options->text().isEmpty()) + if (!QFile(ui->lineEdit_options->text()).exists()) + return 2; + // all fine + return 0; +} diff --git a/sources/gui/src/mobileppp.h b/sources/gui/src/mobilewidget.h similarity index 76% rename from sources/gui/src/mobileppp.h rename to sources/gui/src/mobilewidget.h index 03d3884..f794f9e 100644 --- a/sources/gui/src/mobileppp.h +++ b/sources/gui/src/mobilewidget.h @@ -15,27 +15,37 @@ * along with netctl-plasmoid. If not, see http://www.gnu.org/licenses/ * ***************************************************************************/ -#ifndef MOBILEPPP_H -#define MOBILEPPP_H +#ifndef MOBILEWIDGET_H +#define MOBILEWIDGET_H #include namespace Ui { -class MobilePpp; +class MobileWidget; } -class MobilePpp : public QWidget +class MobileWidget : public QWidget { Q_OBJECT public: - explicit MobilePpp(QWidget *parent = 0); - ~MobilePpp(); + explicit MobileWidget(QWidget *parent = 0); + ~MobileWidget(); + QHash getSettings(); + int isOk(); + +public slots: + void clear(); + +private slots: + void selectOptionsFile(); + void showAdvanced(); private: - Ui::MobilePpp *ui; + Ui::MobileWidget *ui; + void createActions(); }; -#endif /* MOBILEPPP_H */ +#endif /* MOBILEWIDGET_H */ diff --git a/sources/gui/src/mobileppp.ui b/sources/gui/src/mobilewidget.ui similarity index 99% rename from sources/gui/src/mobileppp.ui rename to sources/gui/src/mobilewidget.ui index a9641fe..43e89c3 100644 --- a/sources/gui/src/mobileppp.ui +++ b/sources/gui/src/mobilewidget.ui @@ -1,7 +1,7 @@ - MobilePpp - + MobileWidget + 0