diff --git a/sources/gui/src/bridgewidget.cpp b/sources/gui/src/bridgewidget.cpp index 103a161..28067ec 100644 --- a/sources/gui/src/bridgewidget.cpp +++ b/sources/gui/src/bridgewidget.cpp @@ -43,9 +43,9 @@ void BridgeWidget::clear() void BridgeWidget::setShown(bool state) { if (state) - BridgeWidget::show(); + show(); else - BridgeWidget::hide(); + hide(); } diff --git a/sources/gui/src/errorwindow.cpp b/sources/gui/src/errorwindow.cpp index a781753..68871a1 100644 --- a/sources/gui/src/errorwindow.cpp +++ b/sources/gui/src/errorwindow.cpp @@ -36,14 +36,53 @@ void ErrorWindow::setMessage(int mess) { QString message; switch(mess) { - case 0: - message = QApplication::translate("ErrorWindow", "Unknown error"); - break; case 1: message = QApplication::translate("ErrorWindow", "Could not find components"); break; case 2: - message = QApplication::translate("ErrorWindow", "Doesn't support yet"); + message = QApplication::translate("ErrorWindow", "Does not support yet"); + break; + case 3: + message = QApplication::translate("ErrorWindow", "Profile name is not set"); + break; + case 4: + message = QApplication::translate("ErrorWindow", "Bind interfaces are not set"); + break; + case 5: + message = QApplication::translate("ErrorWindow", "Description is not set"); + break; + case 6: + message = QApplication::translate("ErrorWindow", "Ip settings are not set"); + break; + case 7: + message = QApplication::translate("ErrorWindow", "Configuration file does not exist"); + break; + case 8: + message = QApplication::translate("ErrorWindow", "Key is not set"); + break; + case 9: + message = QApplication::translate("ErrorWindow", "Wireless settings are not set"); + break; + case 10: + message = QApplication::translate("ErrorWindow", "Configuration file is not set"); + break; + case 11: + message = QApplication::translate("ErrorWindow", "ESSID is not set"); + break; + case 12: + message = QApplication::translate("ErrorWindow", "MAC address is incorrect"); + break; + case 13: + message = QApplication::translate("ErrorWindow", "Session ID is not set"); + break; + case 14: + message = QApplication::translate("ErrorWindow", "APN is not set"); + break; + case 15: + message = QApplication::translate("ErrorWindow", "APN is not set"); + break; + case 16: + message = QApplication::translate("ErrorWindow", "Empty user/group name"); break; default: message = QApplication::translate("ErrorWindow", "Unknown error"); diff --git a/sources/gui/src/ethernetwidget.cpp b/sources/gui/src/ethernetwidget.cpp index 917825c..a6da1b8 100644 --- a/sources/gui/src/ethernetwidget.cpp +++ b/sources/gui/src/ethernetwidget.cpp @@ -57,9 +57,9 @@ void EthernetWidget::clear() void EthernetWidget::setShown(bool state) { if (state) - EthernetWidget::show(); + show(); else - EthernetWidget::hide(); + hide(); } diff --git a/sources/gui/src/generalwidget.cpp b/sources/gui/src/generalwidget.cpp index 5664535..43f127a 100644 --- a/sources/gui/src/generalwidget.cpp +++ b/sources/gui/src/generalwidget.cpp @@ -69,9 +69,9 @@ void GeneralWidget::clear() void GeneralWidget::setShown(bool state) { if (state) - GeneralWidget::show(); + show(); else - GeneralWidget::hide(); + hide(); } diff --git a/sources/gui/src/ipwidget.cpp b/sources/gui/src/ipwidget.cpp index fa72ae2..031b393 100644 --- a/sources/gui/src/ipwidget.cpp +++ b/sources/gui/src/ipwidget.cpp @@ -43,7 +43,7 @@ void IpWidget::clear() ui->checkBox_ip->setCheckState(Qt::Checked); ui->comboBox_ip->setCurrentIndex(0); ipEnable(ui->checkBox_ip->checkState()); - changeIpMode(ui->comboBox_ip->currentIndex()); + changeIpMode(ui->comboBox_ip->currentText()); ui->lineEdit_ipAddress->clear(); ui->listWidget_ipAddress->setCurrentRow(-1); ui->listWidget_ipAddress->clear(); @@ -55,7 +55,7 @@ void IpWidget::clear() ui->checkBox_ip6->setCheckState(Qt::Unchecked); ui->comboBox_ip6->setCurrentIndex(0); ip6Enable(ui->checkBox_ip6->checkState()); - changeIp6Mode(ui->comboBox_ip6->currentIndex()); + changeIp6Mode(ui->comboBox_ip6->currentText()); ui->lineEdit_ipAddress6->clear(); ui->listWidget_ipAddress6->setCurrentRow(-1); ui->listWidget_ipAddress6->clear(); @@ -69,7 +69,7 @@ void IpWidget::clear() ui->lineEdit_hostname->clear(); ui->spinBox_timeoutDad->setValue(3); ui->comboBox_dhcp->setCurrentIndex(0); - changeDhcpClient(ui->comboBox_dhcp->currentIndex()); + changeDhcpClient(ui->comboBox_dhcp->currentText()); ui->lineEdit_dhcpcdOpt->clear(); ui->lineEdit_dhclientOpt->clear(); ui->lineEdit_dhclientOpt6->clear(); @@ -92,9 +92,9 @@ void IpWidget::clear() void IpWidget::setShown(bool state) { if (state) - IpWidget::show(); + show(); else - IpWidget::hide(); + hide(); } @@ -103,12 +103,12 @@ void IpWidget::createActions() connect(ui->pushButton_ipAdvanced, SIGNAL(clicked(bool)), this, SLOT(showAdvanced())); // ip mode connect(ui->checkBox_ip, SIGNAL(stateChanged(int)), this, SLOT(ipEnable(int))); - connect(ui->comboBox_ip, SIGNAL(currentIndexChanged(int)), this, SLOT(changeIpMode(int))); + connect(ui->comboBox_ip, SIGNAL(currentIndexChanged(QString)), this, SLOT(changeIpMode(QString))); // ipv6 mode connect(ui->checkBox_ip6, SIGNAL(stateChanged(int)), this, SLOT(ip6Enable(int))); - connect(ui->comboBox_ip6, SIGNAL(currentIndexChanged(int)), this, SLOT(changeIp6Mode(int))); + connect(ui->comboBox_ip6, SIGNAL(currentIndexChanged(QString)), this, SLOT(changeIp6Mode(QString))); // dhcp client - connect(ui->comboBox_dhcp, SIGNAL(currentIndexChanged(int)), this, SLOT(changeDhcpClient(int))); + connect(ui->comboBox_dhcp, SIGNAL(currentIndexChanged(QString)), this, SLOT(changeDhcpClient(QString))); // buttons connect(ui->pushButton_ipAddress, SIGNAL(clicked(bool)), this, SLOT(addIp())); connect(ui->pushButton_ipRoutes, SIGNAL(clicked(bool)), this, SLOT(addIpRoutes())); @@ -168,10 +168,10 @@ void IpWidget::keyPressEvent(QKeyEvent *pressedKey) } -void IpWidget::addIp() +QString IpWidget::getIp(QString rawIp) { - QStringList ip = ui->lineEdit_ipAddress->text().remove(" ").split(QString("/"))[0].split(QString(".")); - QString prefix = ui->lineEdit_ipAddress->text().remove(" ").split(QString("/"))[1]; + QStringList ip = rawIp.split(QString(".")); + // fix empty fields if (ip[0].isEmpty()) ip[0] = QString("127"); @@ -185,49 +185,69 @@ void IpWidget::addIp() for (int i=0; i<4; i++) if (ip[i].toInt() > 255) ip[i] = QString("255"); - if (prefix.isEmpty()) + + return ip.join(QString(".")); +} + + +QString IpWidget::getPrefix(QString rawPrefix) +{ + QString prefix; + + if (rawPrefix.isEmpty()) prefix = QString("24"); - if (prefix.toInt() > 32) + else if (rawPrefix.toInt() > 32) prefix = QString("32"); - ui->listWidget_ipAddress->addItem(ip.join(QString(".")) + QString("/") + prefix); + else + prefix = rawPrefix; + + return prefix; +} + + +QString IpWidget::getIp6(QString rawIp) +{ + QString ip = rawIp; + + for (int i=0; i<5; i++) + ip.replace(QString(":::"), QString("::")); + + return ip; +} + + +QString IpWidget::getPrefix6(QString rawPrefix) +{ + QString prefix; + + if (rawPrefix.isEmpty()) + prefix = QString("64"); + else if (rawPrefix.toInt() > 128) + prefix = QString("128"); + else + prefix = rawPrefix; + + return prefix; +} + + +void IpWidget::addIp() +{ + QString ip = getIp(ui->lineEdit_ipAddress->text().remove(" ").split(QString("/"))[0]); + QString prefix = getPrefix(ui->lineEdit_ipAddress->text().remove(" ").split(QString("/"))[1]); + + ui->listWidget_ipAddress->addItem(ip + QString("/") + prefix); ui->lineEdit_ipAddress->clear(); } void IpWidget::addIpRoutes() { - QStringList ip = ui->lineEdit_ipRoutes->text().remove(" ").split(QString("/"))[0].split(QString(".")); - QString prefix = ui->lineEdit_ipRoutes->text().remove(" ").split(QString("/"))[1]; - QStringList ipVia = ui->lineEdit_ipRoutes2->text().remove(" ").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"); - if (ipVia[0].isEmpty()) - ipVia[0] = QString("127"); - if (ipVia[1].isEmpty()) - ipVia[1] = QString("0"); - if (ipVia[2].isEmpty()) - ipVia[2] = QString("0"); - if (ipVia[3].isEmpty()) - ipVia[3] = QString("1"); - // fix numbers - for (int i=0; i<4; i++) - if (ip[i].toInt() > 255) - ip[i] = QString("255"); - if (prefix.isEmpty()) - prefix = QString("24"); - if (prefix.toInt() > 32) - prefix = QString("32"); - for (int i=0; i<4; i++) - if (ipVia[i].toInt() > 255) - ipVia[i] = QString("255"); - ui->listWidget_ipRoutes->addItem(ip.join(QString(".")) + QString("/") + prefix + QString(" via ") + ipVia.join(QString("."))); + QString ip = getIp(ui->lineEdit_ipRoutes->text().remove(" ").split(QString("/"))[0]); + QString prefix = getPrefix(ui->lineEdit_ipRoutes->text().remove(" ").split(QString("/"))[1]); + QString ipVia = getIp(ui->lineEdit_ipRoutes2->text().remove(" ")); + + ui->listWidget_ipRoutes->addItem(ip + QString("/") + prefix + QString(" via ") + ipVia); ui->lineEdit_ipRoutes->clear(); ui->lineEdit_ipRoutes2->clear(); } @@ -235,16 +255,9 @@ void IpWidget::addIpRoutes() void IpWidget::addIp6() { - QString ip = ui->lineEdit_ipAddress6->text().remove(" ").split(QString("/"))[0]; - QString prefix = ui->lineEdit_ipAddress6->text().remove(" ").split(QString("/"))[1]; - // fix empty fields - for (int i=0; i<5; i++) - ip.replace(QString(":::"), QString("::")); - // fix numbers - if (prefix.isEmpty()) - prefix = QString("64"); - if (prefix.toInt() > 128) - prefix = QString("128"); + QString ip = getIp6(ui->lineEdit_ipAddress6->text().remove(" ").split(QString("/"))[0]); + QString prefix = getPrefix6(ui->lineEdit_ipAddress6->text().remove(" ").split(QString("/"))[1]); + ui->listWidget_ipAddress6->addItem(ip + QString("/") + prefix); ui->lineEdit_ipAddress6->clear(); } @@ -252,19 +265,10 @@ void IpWidget::addIp6() void IpWidget::addIpRoutes6() { - QString ip = ui->lineEdit_ipRoutes6->text().remove(" ").split(QString("/"))[0]; - QString prefix = ui->lineEdit_ipRoutes6->text().remove(" ").split(QString("/"))[1]; - QString ipVia = ui->lineEdit_ipRoutes62->text().remove(" "); - // fix empty fields - for (int i=0; i<5; i++) - ip.replace(QString(":::"), QString("::")); - for (int i=0; i<5; i++) - ipVia.replace(QString(":::"), QString("::")); - // fix numbers - if (prefix.isEmpty()) - prefix = QString("64"); - if (prefix.toInt() > 128) - prefix = QString("128"); + QString ip = getIp6(ui->lineEdit_ipRoutes6->text().remove(" ").split(QString("/"))[0]); + QString prefix = getPrefix6(ui->lineEdit_ipRoutes6->text().remove(" ").split(QString("/"))[1]); + QString ipVia = getIp6(ui->lineEdit_ipRoutes62->text().remove(" ")); + ui->listWidget_ipRoutes6->addItem(ip + QString("/") + prefix + QString(" via ") + ipVia); ui->lineEdit_ipRoutes6->clear(); ui->lineEdit_ipRoutes62->clear(); @@ -281,21 +285,9 @@ void IpWidget::addCustom() void IpWidget::addDns() { - QStringList ip = ui->lineEdit_dns->text().remove(" ").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"); - ui->listWidget_dns->addItem(ip.join(QString("."))); + QString ip = getIp(ui->lineEdit_dns->text().remove(" ")); + + ui->listWidget_dns->addItem(ip); ui->lineEdit_dns->clear(); } @@ -308,13 +300,11 @@ void IpWidget::addDnsOpt() } -void IpWidget::changeIpMode(int index) +void IpWidget::changeIpMode(QString currentText) { - if (index == 0) - // dhcp + if (currentText == QString("dhcp")) ui->widget_ip->setHidden(true); - else if (index == 1) - // static + else if (currentText == QString("static")) ui->widget_ip->setShown(true); } @@ -334,13 +324,13 @@ void IpWidget::ipEnable(int state) } -void IpWidget::changeIp6Mode(int index) +void IpWidget::changeIp6Mode(QString currentText) { - if ((index == 0) || (index == 1)) - // dhcp + if ((currentText == QString("dhcp")) || + (currentText == QString("dhcp-noaddr"))) ui->widget_ip6->setHidden(true); - else if ((index == 2) || (index == 3)) - // static + else if ((currentText == QString("static")) || + (currentText == QString("stateless"))) ui->widget_ip6->setShown(true); } @@ -360,15 +350,13 @@ void IpWidget::ip6Enable(int state) } -void IpWidget::changeDhcpClient(int index) +void IpWidget::changeDhcpClient(QString currentText) { - if (index == 0) { - // dhcp + if (currentText == QString("dhcpcd")) { ui->widget_dhcpcdOpt->setShown(true); ui->widget_dhclientOpt->setHidden(true); } - else if (index == 1) { - // dhclient + else if (currentText == QString("dhclient")) { ui->widget_dhcpcdOpt->setHidden(true); ui->widget_dhclientOpt->setShown(true); } @@ -395,7 +383,7 @@ QHash IpWidget::getSettings() if (isOk() == 0) { if (ui->checkBox_ip->checkState() == Qt::Checked) { ipSettings[QString("IP")] = ui->comboBox_ip->currentText(); - if (ui->comboBox_ip->currentIndex() == 1) { + if (ui->comboBox_ip->currentText() == QString("static")) { QStringList addresses; for (int i=0; ilistWidget_ipAddress->count(); i++) addresses.append(QString("'") + ui->listWidget_ipAddress->item(i)->text() + QString("'")); @@ -413,8 +401,8 @@ QHash IpWidget::getSettings() ipSettings[QString("IP")] = QString("no"); if (ui->checkBox_ip6->checkState() == Qt::Checked) { ipSettings[QString("IP6")] = ui->comboBox_ip6->currentText(); - if ((ui->comboBox_ip6->currentIndex() == 2) || - (ui->comboBox_ip6->currentIndex() == 3)) { + if ((ui->comboBox_ip6->currentText() == QString("static")) || + (ui->comboBox_ip6->currentText() == QString("stateless"))) { QStringList addresses; for (int i=0; ilistWidget_ipAddress6->count(); i++) addresses.append(QString("'") + ui->listWidget_ipAddress6->item(i)->text() + QString("'")); @@ -440,11 +428,11 @@ QHash IpWidget::getSettings() ipSettings[QString("Hostname")] = QString("'") + ui->lineEdit_hostname->text() + QString("'"); if (ui->spinBox_timeoutDad->value() != 3) ipSettings[QString("TimeoutDAD")] = QString(ui->spinBox_timeoutDad->value()); - if (ui->comboBox_dhcp->currentIndex() == 0) { + if (ui->comboBox_dhcp->currentText() == QString("dhcpcd")) { if (!ui->lineEdit_dhcpcdOpt->text().isEmpty()) ipSettings[QString("DhcpcdOptions")] = QString("'") + ui->lineEdit_dhcpcdOpt->text() + QString("'"); } - else if (ui->comboBox_dhcp->currentIndex() == 1) { + else if (ui->comboBox_dhcp->currentText() == QString("dhclient")) { ipSettings[QString("DHCPClient")] = ui->comboBox_dhcp->currentText(); if (!ui->lineEdit_dhclientOpt->text().isEmpty()) ipSettings[QString("DhclientOptions")] = QString("'") + ui->lineEdit_dhclientOpt->text() + QString("'"); @@ -481,13 +469,14 @@ int IpWidget::isOk() { // ip settings is not set if (ui->checkBox_ip->checkState() == Qt::Checked) - if (ui->comboBox_ip->currentIndex() == 1) + if (ui->comboBox_ip->currentText() == QString("static")) if ((ui->listWidget_ipAddress->count() == 0) || (ui->lineEdit_gateway->text().isEmpty())) return 1; // ipv6 settings is not set if (ui->checkBox_ip6->checkState() == Qt::Checked) - if ((ui->comboBox_ip6->currentIndex() == 2) || (ui->comboBox_ip6->currentIndex() == 3)) + if ((ui->comboBox_ip6->currentText() == QString("static")) || + (ui->comboBox_ip6->currentText() == QString("stateless"))) if ((ui->listWidget_ipAddress6->count() == 0) || (ui->lineEdit_gateway6->text().isEmpty())) return 2; @@ -561,8 +550,8 @@ void IpWidget::setSettings(QHash settings) ui->listWidget_dnsOptions->addItems(settings[QString("DNSOptions")].remove(QString("'")).split(QString(" "))); ipEnable(ui->checkBox_ip->checkState()); - changeIpMode(ui->comboBox_ip->currentIndex()); + changeIpMode(ui->comboBox_ip->currentText()); ip6Enable(ui->checkBox_ip6->checkState()); - changeIp6Mode(ui->comboBox_ip6->currentIndex()); - changeDhcpClient(ui->comboBox_dhcp->currentIndex()); + changeIp6Mode(ui->comboBox_ip6->currentText()); + changeDhcpClient(ui->comboBox_dhcp->currentText()); } diff --git a/sources/gui/src/ipwidget.h b/sources/gui/src/ipwidget.h index 3ed72fa..e9d0265 100644 --- a/sources/gui/src/ipwidget.h +++ b/sources/gui/src/ipwidget.h @@ -50,13 +50,13 @@ private slots: void addDns(); void addDnsOpt(); // ip mode - void changeIpMode(int index); + void changeIpMode(QString currentText); void ipEnable(int state); // ipv6 mode - void changeIp6Mode(int index); + void changeIp6Mode(QString currentText); void ip6Enable(int state); // dhcp client - void changeDhcpClient(int index); + void changeDhcpClient(QString currentText); void showAdvanced(); private: @@ -64,6 +64,10 @@ private: void createActions(); void createFilter(); void keyPressEvent(QKeyEvent *pressedKey); + QString getIp(QString rawIp); + QString getPrefix(QString rawPrefix); + QString getIp6(QString rawIp); + QString getPrefix6(QString rawPrefix); }; diff --git a/sources/gui/src/mainwindow.cpp b/sources/gui/src/mainwindow.cpp index aa15f6d..aade1e0 100644 --- a/sources/gui/src/mainwindow.cpp +++ b/sources/gui/src/mainwindow.cpp @@ -552,12 +552,18 @@ void MainWindow::profileTabCreateProfile() { // error checking if (ui->lineEdit_profile->text().isEmpty()) { + errorWin = new ErrorWindow(this, 3); + errorWin->show(); return; } if (generalWid->isOk() == 1) { + errorWin = new ErrorWindow(this, 4); + errorWin->show(); return; } else if (generalWid->isOk() == 2) { + errorWin = new ErrorWindow(this, 5); + errorWin->show(); return; } if ((generalWid->connectionType->currentText() == QString("ethernet")) || @@ -569,31 +575,47 @@ void MainWindow::profileTabCreateProfile() (generalWid->connectionType->currentText() == QString("tuntap")) || (generalWid->connectionType->currentText() == QString("vlan"))) { if (ipWid->isOk() == 1) { + errorWin = new ErrorWindow(this, 6); + errorWin->show(); return; } else if (ipWid->isOk() == 2) { + errorWin = new ErrorWindow(this, 6); + errorWin->show(); return; } } if (generalWid->connectionType->currentText() == QString("ethernet")) { if (ethernetWid->isOk() == 1) { + errorWin = new ErrorWindow(this, 7); + errorWin->show(); return; } } else if (generalWid->connectionType->currentText() == QString("wireless")) { if (wirelessWid->isOk() == 1) { + errorWin = new ErrorWindow(this, 8); + errorWin->show(); return; } else if (wirelessWid->isOk() == 2) { + errorWin = new ErrorWindow(this, 9); + errorWin->show(); return; } else if (wirelessWid->isOk() == 3) { + errorWin = new ErrorWindow(this, 10); + errorWin->show(); return; } else if (wirelessWid->isOk() == 4) { + errorWin = new ErrorWindow(this, 7); + errorWin->show(); return; } else if (wirelessWid->isOk() == 5) { + errorWin = new ErrorWindow(this, 11); + errorWin->show(); return; } } @@ -601,23 +623,35 @@ void MainWindow::profileTabCreateProfile() } else if (generalWid->connectionType->currentText() == QString("pppoe")) { if (pppoeWid->isOk() == 1) { + errorWin = new ErrorWindow(this, 7); + errorWin->show(); return; } else if (pppoeWid->isOk() == 2) { + errorWin = new ErrorWindow(this, 12); + errorWin->show(); return; } else if (pppoeWid->isOk() == 3) { + errorWin = new ErrorWindow(this, 13); + errorWin->show(); return; } else if (pppoeWid->isOk() == 4) { + errorWin = new ErrorWindow(this, 12); + errorWin->show(); return; } } else if (generalWid->connectionType->currentText() == QString("mobile_ppp")) { if (mobileWid->isOk() == 1) { + errorWin = new ErrorWindow(this, 14); + errorWin->show(); return; } if (mobileWid->isOk() == 2) { + errorWin = new ErrorWindow(this, 7); + errorWin->show(); return; } } @@ -625,14 +659,20 @@ void MainWindow::profileTabCreateProfile() } else if (generalWid->connectionType->currentText() == QString("tuntap")) { if (tuntapWid->isOk() == 1) { + errorWin = new ErrorWindow(this, 15); + errorWin->show(); return; } if (tuntapWid->isOk() == 2) { + errorWin = new ErrorWindow(this, 15); + errorWin->show(); return; } } else if (generalWid->connectionType->currentText() == QString("vlan")) { if (ethernetWid->isOk() == 1) { + errorWin = new ErrorWindow(this, 7); + errorWin->show(); return; } } @@ -659,7 +699,7 @@ void MainWindow::profileTabCreateProfile() settings.insert(addSettings.keys()[i], addSettings[addSettings.keys()[i]]); } else if ((generalWid->connectionType->currentText() == QString("bond")) || - (generalWid->connectionType->currentText() == QString("dummy"))) { + (generalWid->connectionType->currentText() == QString("dummy"))) { QHash addSettings = ipWid->getSettings(); for (int i=0; isetSettings(settings); } else if ((generalWid->connectionType->currentText() == QString("bond")) || - (generalWid->connectionType->currentText() == QString("dummy"))) { + (generalWid->connectionType->currentText() == QString("dummy"))) { ipWid->setSettings(settings); } else if (generalWid->connectionType->currentText() == QString("bridge")) { @@ -786,23 +826,33 @@ void MainWindow::connectToUnknownEssid(QString passwd) { if (!passwd.isEmpty()) delete passwdWid; - QStringList profileInfo; - profileInfo.append(QString("Automatically generated profile by Netctl GUI")); - profileInfo.append(wpaCommand->getInterfaceList()[0]); - profileInfo.append(QString("wireless")); + + QHash settings; + settings[QString("Description")] = QString("'Automatically generated profile by Netctl GUI'"); + settings[QString("Interface")] = wpaCommand->getInterfaceList()[0]; + settings[QString("Connection")] = QString("wireless"); QString security = ui->tableWidget_wifi->item(ui->tableWidget_wifi->currentItem()->row(), 3)->text(); if (checkState(QString("WPA"), security)) - profileInfo.append(QString("wpa")); + settings[QString("Security")] = QString("wpa"); else if (checkState(QString("wep"), security)) - profileInfo.append(QString("wep")); + settings[QString("Security")] = QString("wep"); else - profileInfo.append(QString("none")); - profileInfo.append(ui->tableWidget_wifi->item(ui->tableWidget_wifi->currentItem()->row(), 0)->text()); - profileInfo.append(passwd); - profileInfo.append(QString("dhcp")); - - + settings[QString("Security")] = QString("none"); + settings[QString("ESSID")] = QString("'") + + ui->tableWidget_wifi->item(ui->tableWidget_wifi->currentItem()->row(), 0)->text() + + QString("'"); + if (!passwd.isEmpty()) + settings[QString("Key")] = QString("'") + passwd + QString("'"); + settings[QString("IP")] = QString("dhcp"); + QString profile = QString("netctl-gui-") + settings[QString("ESSID")]; + QString profileTempName = netctlProfile->createProfile(profile, settings); + netctlProfile->copyProfile(profileTempName); + netctlCommand->startProfile(profile); + if (netctlCommand->isProfileActive(profile)) + ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done")); + else + ui->statusBar->showMessage(QApplication::translate("MainWindow", "Error")); updateWifiTab(); } diff --git a/sources/gui/src/mainwindow.ui b/sources/gui/src/mainwindow.ui index 63f8c29..90ec72e 100644 --- a/sources/gui/src/mainwindow.ui +++ b/sources/gui/src/mainwindow.ui @@ -386,6 +386,23 @@ + + tabWidget + tableWidget_main + pushButton_mainRefresh + pushButton_mainEnable + pushButton_mainRestart + pushButton_mainStart + lineEdit_profile + pushButton_profile + scrollArea + pushButton_profileClear + pushButton_profileLoad + pushButton_profileSave + tableWidget_wifi + pushButton_wifiRefresh + pushButton_wifiStart + diff --git a/sources/gui/src/mobilewidget.cpp b/sources/gui/src/mobilewidget.cpp index dbf1a83..9db7ccd 100644 --- a/sources/gui/src/mobilewidget.cpp +++ b/sources/gui/src/mobilewidget.cpp @@ -59,9 +59,9 @@ void MobileWidget::clear() void MobileWidget::setShown(bool state) { if (state) - MobileWidget::show(); + show(); else - MobileWidget::hide(); + hide(); } diff --git a/sources/gui/src/netctlinteract.cpp b/sources/gui/src/netctlinteract.cpp index 2ef6594..3438a72 100644 --- a/sources/gui/src/netctlinteract.cpp +++ b/sources/gui/src/netctlinteract.cpp @@ -74,7 +74,7 @@ QStringList Netctl::getProfileDescriptions(QStringList profileList) else if (fileStr[0] != '#') if (fileStr.split(QString("="), QString::SkipEmptyParts).count() == 2) if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("Description")) - descriptions.append(fileStr.split(QString("="), QString::SkipEmptyParts)[1].remove(QString("\n"))); + descriptions.append(fileStr.split(QString("="), QString::SkipEmptyParts)[1].trimmed()); } else descriptions.append(QString("")); @@ -125,7 +125,7 @@ QString Netctl::getSsidFromProfile(QString profile) else if (fileStr[0] != '#') { if (fileStr.split(QString("="), QString::SkipEmptyParts).count() == 2) if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("ESSID")) - ssidName = fileStr.split(QString("="), QString::SkipEmptyParts)[1].remove(QString("\n")); + ssidName = fileStr.split(QString("="), QString::SkipEmptyParts)[1].trimmed(); } } diff --git a/sources/gui/src/netctlprofile.cpp b/sources/gui/src/netctlprofile.cpp index d6e3f2f..e4a80bc 100644 --- a/sources/gui/src/netctlprofile.cpp +++ b/sources/gui/src/netctlprofile.cpp @@ -44,7 +44,7 @@ bool NetctlProfile::copyProfile(QString oldPath) { QString newPath = profileDirectory->absolutePath() + QDir::separator() + QFileInfo(oldPath).fileName(); QProcess command; - command.start(sudoCommand + QString(" /usr/bin/cp ") + oldPath + QString(" ") + newPath); + command.start(sudoCommand + QString(" /usr/bin/mv ") + oldPath + QString(" ") + newPath); command.waitForFinished(-1); if (command.exitCode() == 0) return true; @@ -64,8 +64,23 @@ QString NetctlProfile::createProfile(QString profile, QHash se return profileTempName; QTextStream out(&profileFile); - for (int i=0; i NetctlProfile::getSettingsFromProfile(QString profile) settings[fileStr.split(QString("="))[0]] = fileStr.split(QString("="))[1] .remove(QString("(")) .remove(QString(")")) - .remove(QString("\n")); + .trimmed(); } } diff --git a/sources/gui/src/pppoewidget.cpp b/sources/gui/src/pppoewidget.cpp index abf8a34..51b96cc 100644 --- a/sources/gui/src/pppoewidget.cpp +++ b/sources/gui/src/pppoewidget.cpp @@ -45,7 +45,7 @@ void PppoeWidget::clear() ui->lineEdit_username->clear(); ui->lineEdit_password->clear(); ui->comboBox_connection->setCurrentIndex(0); - changeMode(ui->comboBox_connection->currentIndex()); + changeMode(ui->comboBox_connection->currentText()); ui->spinBox_timeout->setValue(300); ui->spinBox_fail->setValue(5); ui->checkBox_route->setCheckState(Qt::Checked); @@ -68,9 +68,9 @@ void PppoeWidget::clear() void PppoeWidget::setShown(bool state) { if (state) - PppoeWidget::show(); + show(); else - PppoeWidget::hide(); + hide(); } @@ -86,16 +86,16 @@ void PppoeWidget::createFilter() void PppoeWidget::createActions() { connect(ui->pushButton_pppoeAdvanced, SIGNAL(clicked(bool)), this, SLOT(showAdvanced())); - connect(ui->comboBox_connection, SIGNAL(currentIndexChanged(int)), this, SLOT(changeMode(int))); + connect(ui->comboBox_connection, SIGNAL(currentIndexChanged(QString)), this, SLOT(changeMode(QString))); connect(ui->pushButton_options, SIGNAL(clicked(bool)), this, SLOT(selectOptionsFile())); } -void PppoeWidget::changeMode(int index) +void PppoeWidget::changeMode(QString currentText) { - if (index == 0) + if (currentText == QString("persist")) ui->widget_timeout->setHidden(true); - else if (index == 1) + else if (currentText == QString("demand")) ui->widget_timeout->setShown(true); } @@ -135,7 +135,7 @@ QHash PppoeWidget::getSettings() if (!ui->lineEdit_password->text().isEmpty()) pppoeSettings[QString("Password")] = QString("'") + ui->lineEdit_password->text() + QString("'"); pppoeSettings[QString("ConnectionMode")] = QString("'") + ui->comboBox_connection->currentText() + QString("'"); - if (ui->comboBox_connection->currentIndex() == 1) + if (ui->comboBox_connection->currentText() == QString("demand")) pppoeSettings[QString("IdleTimeout")] = QString(ui->spinBox_timeout->value()); if (ui->spinBox_fail->value() != 5) pppoeSettings[QString("MaxFail")] = QString(ui->spinBox_fail->value()); @@ -233,5 +233,5 @@ void PppoeWidget::setSettings(QHash settings) if (settings[QString("PPPoEIP6")] == QString("yes")) ui->checkBox_dns->setCheckState(Qt::Checked); - changeMode(ui->comboBox_connection->currentIndex()); + changeMode(ui->comboBox_connection->currentText()); } diff --git a/sources/gui/src/pppoewidget.h b/sources/gui/src/pppoewidget.h index 06a3bb7..a73f3de 100644 --- a/sources/gui/src/pppoewidget.h +++ b/sources/gui/src/pppoewidget.h @@ -41,7 +41,7 @@ public slots: void setShown(bool state); private slots: - void changeMode(int index); + void changeMode(QString currentText); void selectOptionsFile(); void showAdvanced(); diff --git a/sources/gui/src/tunnelwidget.cpp b/sources/gui/src/tunnelwidget.cpp index 429598e..6477c7f 100644 --- a/sources/gui/src/tunnelwidget.cpp +++ b/sources/gui/src/tunnelwidget.cpp @@ -46,9 +46,9 @@ void TunnelWidget::clear() void TunnelWidget::setShown(bool state) { if (state) - TunnelWidget::show(); + show(); else - TunnelWidget::hide(); + hide(); } diff --git a/sources/gui/src/tuntapwidget.cpp b/sources/gui/src/tuntapwidget.cpp index ce18ec7..d08f989 100644 --- a/sources/gui/src/tuntapwidget.cpp +++ b/sources/gui/src/tuntapwidget.cpp @@ -45,9 +45,9 @@ void TuntapWidget::clear() void TuntapWidget::setShown(bool state) { if (state) - TuntapWidget::show(); + show(); else - TuntapWidget::hide(); + hide(); } diff --git a/sources/gui/src/vlanwidget.cpp b/sources/gui/src/vlanwidget.cpp index 9611039..141b9ba 100644 --- a/sources/gui/src/vlanwidget.cpp +++ b/sources/gui/src/vlanwidget.cpp @@ -43,9 +43,9 @@ void VlanWidget::clear() void VlanWidget::setShown(bool state) { if (state) - VlanWidget::show(); + show(); else - VlanWidget::hide(); + hide(); } diff --git a/sources/gui/src/wirelesswidget.cpp b/sources/gui/src/wirelesswidget.cpp index 9e3f354..d4dcea0 100644 --- a/sources/gui/src/wirelesswidget.cpp +++ b/sources/gui/src/wirelesswidget.cpp @@ -44,7 +44,7 @@ WirelessWidget::~WirelessWidget() void WirelessWidget::clear() { ui->comboBox_security->setCurrentIndex(0); - changeSecurity(ui->comboBox_security->currentIndex()); + changeSecurity(ui->comboBox_security->currentText()); ui->lineEdit_essid->clear(); ui->lineEdit_wpaConfigSection->clear(); ui->listWidget_wpaConfigSection->setCurrentRow(-1); @@ -86,9 +86,9 @@ void WirelessWidget::clear() void WirelessWidget::setShown(bool state) { if (state) - WirelessWidget::show(); + show(); else - WirelessWidget::hide(); + hide(); } @@ -99,7 +99,7 @@ void WirelessWidget::createActions() connect(ui->pushButton_freq, SIGNAL(clicked(bool)), this, SLOT(addFreq())); connect(ui->pushButton_wpaConfigSection, SIGNAL(clicked(bool)), this, SLOT(addOption())); connect(ui->pushButton_wpaConfig, SIGNAL(clicked(bool)), this, SLOT(selectWpaConfig())); - connect(ui->comboBox_security, SIGNAL(currentIndexChanged(int)), this, SLOT(changeSecurity(int))); + connect(ui->comboBox_security, SIGNAL(currentIndexChanged(QString)), this, SLOT(changeSecurity(QString))); } @@ -150,24 +150,29 @@ void WirelessWidget::addOption() } -void WirelessWidget::changeSecurity(int index) +void WirelessWidget::changeSecurity(QString currentText) { - if (index == 0) { + if (currentText == QString("none")) { + ui->widget_essid->setShown(true); ui->widget_wpaConfigSection->setHidden(true); ui->widget_wpaConfig->setHidden(true); ui->widget_key->setHidden(true); } - else if ((index == 1) || (index == 2)) { + else if ((currentText == QString("wep")) || + (currentText == QString("wpa"))) { + ui->widget_essid->setShown(true); ui->widget_wpaConfigSection->setHidden(true); ui->widget_wpaConfig->setHidden(true); ui->widget_key->setShown(true); } - else if (index == 3) { + else if (currentText == QString("wpa-configsection")) { + ui->widget_essid->setHidden(true); ui->widget_wpaConfigSection->setShown(true); ui->widget_wpaConfig->setHidden(true); ui->widget_key->setHidden(true); } - else if (index == 4) { + else if (currentText == QString("wpa-config")) { + ui->widget_essid->setHidden(true); ui->widget_wpaConfigSection->setHidden(true); ui->widget_wpaConfig->setShown(true); ui->widget_key->setHidden(true); @@ -207,16 +212,16 @@ QHash WirelessWidget::getSettings() if (isOk() == 0) { wirelessSettings[QString("Security")] = ui->comboBox_security->currentText(); wirelessSettings[QString("ESSID")] = QString("'") + ui->lineEdit_essid->text() + QString("'"); - if ((ui->comboBox_security->currentIndex() == 1) || - (ui->comboBox_security->currentIndex() == 2)) + if ((ui->comboBox_security->currentText() == QString("wep")) || + (ui->comboBox_security->currentText() == QString("wpa"))) wirelessSettings[QString("Key")] = QString("'") + ui->lineEdit_key->text() + QString("'"); - if (ui->comboBox_security->currentIndex() == 3) { + if (ui->comboBox_security->currentText() == QString("wpa-configsection")) { QStringList section; for (int i=0; ilistWidget_wpaConfigSection->count(); i++) section.append(QString("'") + ui->listWidget_wpaConfigSection->item(i)->text() + QString("'")); wirelessSettings[QString("WPAConfigSection")] = QString("\n") + section.join(QString("\n")) + QString("\n"); } - if (ui->comboBox_security->currentIndex() == 4) + if (ui->comboBox_security->currentText() == QString("wpa-config")) wirelessSettings[QString("WPAConfigFile")] = QString("'") + ui->lineEdit_wpaConfig->text() + QString("'"); if (ui->checkBox_hidden->checkState() == Qt::Checked) wirelessSettings[QString("Hidden")] = QString("yes"); @@ -240,7 +245,7 @@ QHash WirelessWidget::getSettings() drivers.append(ui->listWidget_drivers->item(i)->text()); wirelessSettings[QString("WPADriver")] = QString("'") + drivers.join(QString(",")) + QString("'"); } - if (ui->comboBox_rfkill->currentIndex() != 0) + if (ui->comboBox_rfkill->currentText() != QString("auto")) wirelessSettings[QString("RFKill")] = ui->comboBox_rfkill->currentText(); if (ui->spinBox_timeoutWpa->value() != 15) wirelessSettings[QString("TimeoutWPA")] = QString(ui->spinBox_timeoutWpa->value()); @@ -255,25 +260,29 @@ QHash WirelessWidget::getSettings() int WirelessWidget::isOk() { // empty key - if ((ui->comboBox_security->currentIndex() == 1) || - (ui->comboBox_security->currentIndex() == 2)) + if ((ui->comboBox_security->currentText() == QString("wep")) || + (ui->comboBox_security->currentText() == QString("wpa"))) if (ui->lineEdit_key->text().isEmpty()) return 1; // empty settings - if (ui->comboBox_security->currentIndex() == 3) + if (ui->comboBox_security->currentText() == QString("wpa-configsection")) if (ui->listWidget_wpaConfigSection->count() == 0) return 2; // file is not set - if (ui->comboBox_security->currentIndex() == 4) + if (ui->comboBox_security->currentText() == QString("wpa-config")) if (ui->lineEdit_wpaConfig->text().isEmpty()) return 3; // file wpa_supplicant doesn't exists - if (!ui->lineEdit_wpaConfig->text().isEmpty()) - if (!QFile(ui->lineEdit_wpaConfig->text()).exists()) - return 4; + if (ui->comboBox_security->currentText() == QString("wpa-config")) + if (!ui->lineEdit_wpaConfig->text().isEmpty()) + if (!QFile(ui->lineEdit_wpaConfig->text()).exists()) + return 4; // essid is not set - if (ui->lineEdit_essid->text().isEmpty()) - return 5; + if ((ui->comboBox_security->currentText() == QString("none")) || + (ui->comboBox_security->currentText() == QString("wep")) || + (ui->comboBox_security->currentText() == QString("wpa"))) + if (ui->lineEdit_essid->text().isEmpty()) + return 5; // all fine return 0; } @@ -319,5 +328,5 @@ void WirelessWidget::setSettings(QHash settings) if (settings[QString("ExcludeAuto")].remove(QString("'")) == QString("yes")) ui->checkBox_exclude->setCheckState(Qt::Checked); - changeSecurity(ui->comboBox_security->currentIndex()); + changeSecurity(ui->comboBox_security->currentText()); } diff --git a/sources/gui/src/wirelesswidget.h b/sources/gui/src/wirelesswidget.h index dfedaf6..9f3e8f9 100644 --- a/sources/gui/src/wirelesswidget.h +++ b/sources/gui/src/wirelesswidget.h @@ -46,7 +46,7 @@ private slots: void addDriver(); void addFreq(); void addOption(); - void changeSecurity(int index); + void changeSecurity(QString currentText); void showAdvanced(); void selectWpaConfig(); diff --git a/sources/gui/src/wirelesswidget.ui b/sources/gui/src/wirelesswidget.ui index 9184d1a..89acad4 100644 --- a/sources/gui/src/wirelesswidget.ui +++ b/sources/gui/src/wirelesswidget.ui @@ -7,7 +7,7 @@ 0 0 431 - 765 + 776 @@ -71,28 +71,30 @@ - - - - - - 150 - 0 - - - - ESSID - - - - - - - The name of the network to connect to - - - - + + + + + + + 150 + 0 + + + + ESSID + + + + + + + The name of the network to connect to + + + + +