From a20cac49aaf1f76ddf13a24be7c7188c812da486 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Mon, 17 Feb 2014 23:43:09 +0400 Subject: [PATCH] now ethernet widget has been completed --- sources/gui/src/ethernetwidget.cpp | 38 ++++++++++++- sources/gui/src/ethernetwidget.h | 3 ++ sources/gui/src/generalwidget.cpp | 87 +++++++++++++++++++++++++++++- sources/gui/src/generalwidget.h | 20 ++++++- sources/gui/src/generalwidget.ui | 8 +-- sources/gui/src/mainwindow.cpp | 2 +- 6 files changed, 149 insertions(+), 9 deletions(-) diff --git a/sources/gui/src/ethernetwidget.cpp b/sources/gui/src/ethernetwidget.cpp index 3948429..9d17c42 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 + EthernetWidget::EthernetWidget(QWidget *parent) : QWidget(parent), @@ -25,6 +27,7 @@ EthernetWidget::EthernetWidget(QWidget *parent) { ui->setupUi(this); createActions(); + clear(); showAdvanced(); } @@ -39,7 +42,7 @@ void EthernetWidget::clear() { ui->checkBox_skip->setCheckState(Qt::Unchecked); ui->checkBox_8021x->setCheckState(Qt::Unchecked); - ui->lineEdit_wpaConfig->clear(); + ui->lineEdit_wpaConfig->setText(QString("/etc/wpa_supplicant.conf")); ui->comboBox_driver->setCurrentIndex(0); ui->spinBox_timeoutCarrier->setValue(5); ui->spinBox_timeoutWpa->setValue(15); @@ -63,7 +66,6 @@ void EthernetWidget::showAdvanced() ui->widget_ethernetAdvanced->setHidden(true); ui->pushButton_ethernetAdvanced->setText(QApplication::translate("EthernetWidget", "Show advanced")); } - clear(); } @@ -74,3 +76,35 @@ void EthernetWidget::showWpa(int state) else ui->widget_wpa->setShown(true); } + + +QHash EthernetWidget::getSettings() +{ + QHash ethernetSettings; + + if (isOk() == 0) { + if (ui->checkBox_skip->checkState() == Qt::Checked) + ethernetSettings[QString("SkipNoCarrier")] = QString("yes"); + if (ui->checkBox_8021x->checkState() == Qt::Checked) { + ethernetSettings[QString("Auth8021X")] = QString("yes"); + ethernetSettings[QString("WPAConfigFile")] = ui->lineEdit_wpaConfig->text(); + ethernetSettings[QString("WPADriver")] = ui->comboBox_driver->currentText(); + } + if (ui->spinBox_timeoutCarrier->value() != 5) + ethernetSettings[QString("TimeoutCarrier")] = QString(ui->spinBox_timeoutCarrier->value()); + if (ui->spinBox_timeoutWpa->value() != 15) + ethernetSettings[QString("TimeoutWPA")] = QString(ui->spinBox_timeoutWpa->value()); + } + + return ethernetSettings; +} + + +int EthernetWidget::isOk() +{ + // file wpa_supplicant doesn't exists + 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 8cc0220..353147e 100644 --- a/sources/gui/src/ethernetwidget.h +++ b/sources/gui/src/ethernetwidget.h @@ -18,6 +18,7 @@ #ifndef ETHERNETWIDGET_H #define ETHERNETWIDGET_H +#include #include @@ -32,6 +33,8 @@ class EthernetWidget : public QWidget public: explicit EthernetWidget(QWidget *parent = 0); ~EthernetWidget(); + QHash getSettings(); + int isOk(); public slots: void clear(); diff --git a/sources/gui/src/generalwidget.cpp b/sources/gui/src/generalwidget.cpp index b75376a..8cd663b 100644 --- a/sources/gui/src/generalwidget.cpp +++ b/sources/gui/src/generalwidget.cpp @@ -18,16 +18,101 @@ #include "generalwidget.h" #include "ui_generalwidget.h" +#include -GeneralWidget::GeneralWidget(QWidget *parent) + +GeneralWidget::GeneralWidget(QWidget *parent, QString ifaceDir, QString profileDir) : QWidget(parent), + ifaceDirectory(new QDir(ifaceDir)), + profileDirectory(new QDir(profileDir)), ui(new Ui::GeneralWidget) { ui->setupUi(this); + createActions(); + clear(); + showAdvanced(); } GeneralWidget::~GeneralWidget() { + delete ifaceDirectory; + delete profileDirectory; delete ui; } + + +void GeneralWidget::clear() +{ + ui->lineEdit_description->clear(); + ui->comboBox_connection->setCurrentIndex(0); + ui->comboBox_interface->clear(); + ui->comboBox_interface->addItems(ifaceDirectory->entryList(QDir::Dirs | QDir::NoDotAndDotDot)); + ui->comboBox_bindto->clear(); + ui->comboBox_bindto->addItems(ifaceDirectory->entryList(QDir::Dirs | QDir::NoDotAndDotDot)); + ui->listWidget_bindto->clear(); + ui->comboBox_after->clear(); + ui->comboBox_after->addItems(profileDirectory->entryList(QDir::Files)); + ui->listWidget_after->clear(); + ui->lineEdit_execUpPost->clear(); + ui->lineEdit_execDownPre->clear(); + ui->checkBox_forceConnect->setCheckState(Qt::Unchecked); +} + + +void GeneralWidget::createActions() +{ + connect(ui->pushButton_generalAdvanced, SIGNAL(clicked(bool)), this, SLOT(showAdvanced())); + connect(ui->pushButton_after, SIGNAL(clicked(bool)), this, SLOT(addAfter())); + connect(ui->pushButton_bindto, SIGNAL(clicked(bool)), this, SLOT(addBindTo())); +} + + +void GeneralWidget::addAfter() +{ + ui->listWidget_after->addItem(ui->comboBox_after->currentText()); +} + + +void GeneralWidget::addBindTo() +{ + ui->listWidget_bindto->addItem(ui->comboBox_bindto->currentText()); +} + + +void GeneralWidget::keyPressEvent(QKeyEvent *pressedKey) +{ + if (pressedKey->key() == Qt::Key_Delete) { + if (ui->listWidget_bindto->hasFocus() && + (ui->listWidget_bindto->currentItem() != 0)) + delete ui->listWidget_bindto->currentItem(); + else if (ui->listWidget_after->hasFocus() && + (ui->listWidget_after->currentItem() != 0)) + delete ui->listWidget_after->currentItem(); + } +} + + +void GeneralWidget::showAdvanced() +{ + if (ui->pushButton_generalAdvanced->text().indexOf(QString("Show")) > -1) { + ui->widget_generalAdvanced->setShown(true); + ui->pushButton_generalAdvanced->setText(QApplication::translate("GeneralWidget", "Hide advanced")); + } + else { + ui->widget_generalAdvanced->setHidden(true); + ui->pushButton_generalAdvanced->setText(QApplication::translate("GeneralWidget", "Show advanced")); + } +} + + +QHash GeneralWidget::getSettings() +{ + +} + + +int GeneralWidget::isOk() +{ + return 0; +} diff --git a/sources/gui/src/generalwidget.h b/sources/gui/src/generalwidget.h index 90fb01c..cffd140 100644 --- a/sources/gui/src/generalwidget.h +++ b/sources/gui/src/generalwidget.h @@ -18,6 +18,8 @@ #ifndef GENERALWIDGET_H #define GENERALWIDGET_H +#include +#include #include @@ -30,11 +32,27 @@ class GeneralWidget : public QWidget Q_OBJECT public: - explicit GeneralWidget(QWidget *parent = 0); + explicit GeneralWidget(QWidget *parent = 0, + QString ifaceDir = QString(""), + QString profileDir = QString("")); ~GeneralWidget(); + QHash getSettings(); + int isOk(); + +public slots: + void clear(); + +private slots: + void addAfter(); + void addBindTo(); + void showAdvanced(); private: + QDir *ifaceDirectory; + QDir *profileDirectory; Ui::GeneralWidget *ui; + void createActions(); + void keyPressEvent(QKeyEvent *pressedKey); }; diff --git a/sources/gui/src/generalwidget.ui b/sources/gui/src/generalwidget.ui index 25d5a0f..151f043 100644 --- a/sources/gui/src/generalwidget.ui +++ b/sources/gui/src/generalwidget.ui @@ -198,9 +198,9 @@ - + - + Qt::Horizontal @@ -213,9 +213,9 @@ - + - Show advanced + Hide advanced diff --git a/sources/gui/src/mainwindow.cpp b/sources/gui/src/mainwindow.cpp index d49c61a..f6f1ade 100644 --- a/sources/gui/src/mainwindow.cpp +++ b/sources/gui/src/mainwindow.cpp @@ -64,7 +64,7 @@ MainWindow::MainWindow(QWidget *parent) wpaConfig.append(QString("users")); // gui - generalWid = new GeneralWidget(this); + generalWid = new GeneralWidget(this, ifaceDir, profileDir); ui->scrollAreaWidgetContents->layout()->addWidget(generalWid); ipWid = new IpWidget(this); ui->scrollAreaWidgetContents->layout()->addWidget(ipWid);