* edit WiFi and ProfileList calls

* optimization of WifiMenu
* small refactoring
This commit is contained in:
arcan1s
2015-03-07 17:12:33 +03:00
parent 9993fee336
commit 2cf876cf32
26 changed files with 207 additions and 153 deletions

View File

@ -33,12 +33,13 @@ QList<netctlProfileInfo> parseOutputNetctl(const QList<QVariant> raw)
QStringList list = raw[0].toStringList();
for (int i=0; i<list.count(); i++) {
QStringList info = list[i].split(QChar('|'));
if (info.count() != 4) continue;
if (info.count() != 5) continue;
netctlProfileInfo profile;
profile.name = info[0];
profile.description = info[1];
profile.active = info[2].toInt();
profile.enabled = info[3].toInt();
profile.essid = info[2];
profile.active = info[3].toInt();
profile.enabled = info[4].toInt();
profileInfo.append(profile);
}
@ -53,13 +54,15 @@ QList<netctlWifiInfo> parseOutputWifi(const QList<QVariant> raw)
QStringList list = raw[0].toStringList();
for (int i=0; i<list.count(); i++) {
QStringList info = list[i].split(QChar('|'));
if (info.count() != 5) continue;
if (info.count() != 7) continue;
netctlWifiInfo wifi;
wifi.name = info[0];
wifi.security = info[1];
wifi.signal = info[2];
wifi.active = info[3].toInt();
wifi.exists = info[4].toInt();
wifi.frequencies = info[2].split(QChar(','));
wifi.macs = info[3].split(QChar(','));
wifi.signal = info[4].toInt();
wifi.active = info[5].toInt();
wifi.exists = info[6].toInt();
wifiInfo.append(wifi);
}

View File

@ -117,8 +117,7 @@ int EthernetWidget::isOk()
{
// file wpa_supplicant doesn't exists
if (!ui->lineEdit_wpaConfig->text().isEmpty())
if (!QFile(ui->lineEdit_wpaConfig->text()).exists())
return 1;
if (!QFile(ui->lineEdit_wpaConfig->text()).exists()) return 1;
// all fine
return 0;
}

View File

@ -156,11 +156,9 @@ int GeneralWidget::isOk()
(ui->comboBox_connection->currentText() == QString("vlan")) ||
(ui->comboBox_connection->currentText() == QString("macvlan")) ||
(ui->comboBox_connection->currentText() == QString("openvswitch")))
if (ui->listWidget_bindto->count() == 0)
return 1;
if (ui->listWidget_bindto->count() == 0) return 1;
// empty description
if (ui->lineEdit_description->text().isEmpty())
return 2;
if (ui->lineEdit_description->text().isEmpty()) return 2;
// all fine
return 0;
}

View File

@ -375,15 +375,13 @@ int IpWidget::isOk()
if ((ui->checkBox_ip->checkState() == Qt::Checked) &&
(ui->comboBox_ip->currentText() == QString("static")))
if ((ui->listWidget_ipAddress->count() == 0) ||
(ui->lineEdit_gateway->text().isEmpty()))
return 1;
(ui->lineEdit_gateway->text().isEmpty())) return 1;
// ipv6 settings is not set
if ((ui->checkBox_ip6->checkState() == Qt::Checked) &&
((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;
(ui->lineEdit_gateway6->text().isEmpty())) return 2;
// all fine
return 0;
}

View File

@ -85,7 +85,6 @@ void MainWindow::setMenuActionsShown(const bool state)
void MainWindow::updateMenuMain()
{
if (debug) qDebug() << PDEBUG;
setMenuActionsShown(false);
actionMenu->setDefaultAction(toolBarActions[QString("mainStart")]);
toolBarActions[QString("netctlAuto")]->setVisible(true);
@ -110,7 +109,7 @@ void MainWindow::updateMenuMain()
toolBarActions[QString("mainEnable")]->setIcon(QIcon::fromTheme("edit-remove"));
} else {
toolBarActions[QString("mainEnable")]->setText(QApplication::translate("MainWindow", "Enable"));
toolBarActions[QString("mainEnable")]->setIcon(QIcon::fromTheme("edit-add"));
toolBarActions[QString("mainEnable")]->setIcon(QIcon::fromTheme("list-add"));
}
toolBarActions[QString("mainEnable")]->setVisible(true);
toolBarActions[QString("mainEdit")]->setVisible(true);
@ -121,7 +120,6 @@ void MainWindow::updateMenuMain()
void MainWindow::updateMenuProfile()
{
if (debug) qDebug() << PDEBUG;
setMenuActionsShown(false);
actionMenu->setDefaultAction(toolBarActions[QString("profileSave")]);
toolBarActions[QString("profileClear")]->setVisible(true);
@ -134,7 +132,6 @@ void MainWindow::updateMenuProfile()
void MainWindow::updateMenuWifi()
{
if (debug) qDebug() << PDEBUG;
setMenuActionsShown(false);
actionMenu->setDefaultAction(toolBarActions[QString("wifiStart")]);
toolBarActions[QString("wifiRefresh")]->setVisible(true);
@ -204,9 +201,9 @@ void MainWindow::updateMainTab()
font.setItalic(profiles[i].enabled);
// tooltip
QString toolTip = QString("");
toolTip += QString("%1: %2\n").arg(QApplication::translate("MainWindow", "Profile")).arg(profiles[i].name);
toolTip += QString("%1: %2\n").arg(QApplication::translate("MainWindow", "Active")).arg(checkStatus(profiles[i].active));
toolTip += QString("%1: %2").arg(QApplication::translate("MainWindow", "Enabled")).arg(checkStatus(profiles[i].enabled));
toolTip += QString("%1: %2\n").arg(QApplication::translate("MainWindow", "Enabled")).arg(checkStatus(profiles[i].enabled));
toolTip += QString("%1: %2").arg(QApplication::translate("MainWindow", "Is wireless")).arg(checkStatus(!profiles[i].essid.isEmpty()));
// name
ui->tableWidget_main->setItem(i, 0, new QTableWidgetItem(profiles[i].name));
ui->tableWidget_main->item(i, 0)->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
@ -294,7 +291,8 @@ void MainWindow::updateWifiTab()
font.setItalic(scanResults[i].exists);
// tooltip
QString toolTip = QString("");
toolTip += QString("%1: %2\n").arg(QApplication::translate("MainWindow", "ESSID")).arg(scanResults[i].name);
toolTip += QString("%1: %2\n").arg(QApplication::translate("MainWindow", "MAC")).arg(scanResults[i].macs.join(QString(", ")));
toolTip += QString("%1: %2\n").arg(QApplication::translate("MainWindow", "Frequency")).arg(scanResults[i].frequencies.join(QString(", ")));
toolTip += QString("%1: %2\n").arg(QApplication::translate("MainWindow", "Active")).arg(checkStatus(scanResults[i].active));
toolTip += QString("%1: %2").arg(QApplication::translate("MainWindow", "Exists")).arg(checkStatus(scanResults[i].exists));
// name
@ -303,7 +301,7 @@ void MainWindow::updateWifiTab()
ui->tableWidget_wifi->item(i, 0)->setToolTip(toolTip);
ui->tableWidget_wifi->item(i, 0)->setFont(font);
// signal
ui->tableWidget_wifi->setItem(i, 1, new QTableWidgetItem(scanResults[i].signal));
ui->tableWidget_wifi->setItem(i, 1, new QTableWidgetItem(QString::number(scanResults[i].signal)));
ui->tableWidget_wifi->item(i, 1)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
ui->tableWidget_wifi->item(i, 1)->setToolTip(toolTip);
// security
@ -372,7 +370,7 @@ void MainWindow::mainTabContextualMenu(const QPoint &pos)
enableProfile->setIcon(QIcon::fromTheme("edit-remove"));
} else {
enableProfile->setText(QApplication::translate("MainWindow", "Enable profile"));
enableProfile->setIcon(QIcon::fromTheme("edit-add"));
enableProfile->setIcon(QIcon::fromTheme("list-add"));
}
// actions

View File

@ -301,12 +301,13 @@ bool MainWindow::startHelper()
void MainWindow::setTab(int tab)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Update tab" << tab;
if (debug) qDebug() << PDEBUG << ":" << "Set tab" << tab;
if (tab > 2) tab = 0;
ui->tabWidget->setCurrentIndex(tab);
updateTabs(tab);
if (tab == ui->tabWidget->currentIndex())
updateTabs(tab);
else
ui->tabWidget->setCurrentIndex(tab);
}
@ -325,7 +326,7 @@ void MainWindow::updateConfiguration(const QMap<QString, QVariant> args)
for (int i=0; i<optionsDict.keys().count(); i++)
configuration[optionsDict.keys()[i]] = optionsDict[optionsDict.keys()[i]];
if ((configuration[QString("USE_HELPER")] == QString("true")) &&
(checkExternalApps(QString("helper"))))
(checkExternalApps(QString("helper"))))
useHelper = true;
else {
useHelper = false;
@ -337,7 +338,7 @@ void MainWindow::updateConfiguration(const QMap<QString, QVariant> args)
QString language = Language::defineLanguage(configPath, args[QString("options")].toString());
qtTranslator->load(QString("qt_%1").arg(language), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
qApp->installTranslator(qtTranslator);
translator->load(QString(":/translations/") + language);
translator->load(QString(":/translations/%1").arg(language));
qApp->installTranslator(translator);
createObjects();
@ -345,11 +346,7 @@ void MainWindow::updateConfiguration(const QMap<QString, QVariant> args)
createToolBars();
// tray
if ((QSystemTrayIcon::isSystemTrayAvailable()) &&
(configuration[QString("SYSTRAY")] == QString("true")))
trayIcon->setVisible(true);
else
trayIcon->setVisible(false);
trayIcon->setVisible(QSystemTrayIcon::isSystemTrayAvailable() && (configuration[QString("SYSTRAY")] == QString("true")));
if (trayIcon->isVisible()) {
if (configuration[QString("STARTTOTRAY")] == QString("true"))
hide();
@ -375,12 +372,18 @@ void MainWindow::updateMenu()
int tab = ui->tabWidget->currentIndex();
setMenuActionsShown(false);
if (tab == 0)
updateMenuMain();
else if (tab == 1)
switch (tab) {
case 1:
updateMenuProfile();
else if (tab == 2)
break;
case 2:
updateMenuWifi();
break;
case 0:
default:
updateMenuMain();
break;
}
}
@ -389,12 +392,18 @@ void MainWindow::updateTabs(const int tab)
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Update tab" << tab;
if (tab == 0)
updateMainTab();
else if (tab == 1)
switch (tab) {
case 1:
updateProfileTab();
else if (tab == 2)
break;
case 2:
updateWifiTab();
break;
case 0:
default:
updateMainTab();
break;
}
updateMenu();
}

View File

@ -479,7 +479,7 @@ void MainWindow::createToolBars()
toolBarActions[QString("mainRestart")] = menu->addAction(QIcon::fromTheme(QString("view-refresh")),
QApplication::translate("MainWindow", "Restart"),
this, SLOT(mainTabRestartProfile()));
toolBarActions[QString("mainEnable")] = menu->addAction(QIcon::fromTheme(QString("edit-add")),
toolBarActions[QString("mainEnable")] = menu->addAction(QIcon::fromTheme(QString("list-add")),
QApplication::translate("MainWindow", "Enable"),
this, SLOT(mainTabEnableProfile()));
toolBarActions[QString("mainStopAll")] = menu->addAction(QIcon::fromTheme(QString("process-stop")),

View File

@ -118,12 +118,10 @@ QMap<QString, QString> MobileWidget::getSettings()
int MobileWidget::isOk()
{
// APN is not set
if (ui->lineEdit_apn->text().isEmpty())
return 1;
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;
if (!QFile(ui->lineEdit_options->text()).exists()) return 2;
// all fine
return 0;
}

View File

@ -145,24 +145,18 @@ void NetctlAutoWindow::netctlAutoContextualMenu(const QPoint &pos)
QAction *enableProfile = menu.addAction(QApplication::translate("NetctlAutoWindow", "Enable profile"));
menu.addSeparator();
QAction *enableAllProfiles = menu.addAction(QApplication::translate("NetctlAutoWindow", "Enable all profiles"));
enableAllProfiles->setIcon(QIcon::fromTheme("edit-add"));
enableAllProfiles->setIcon(QIcon::fromTheme("list-add"));
QAction *disableAllProfiles = menu.addAction(QApplication::translate("NetctlAutoWindow", "Disable all profiles"));
disableAllProfiles->setIcon(QIcon::fromTheme("edit-delete"));
// set text
if (!ui->tableWidget->item(ui->tableWidget->currentItem()->row(), 2)->text().isEmpty()) {
enableProfile->setVisible(false);
startProfile->setVisible(false);
startProfile->setVisible(ui->tableWidget->item(ui->tableWidget->currentItem()->row(), 2)->text().isEmpty());
if (!ui->tableWidget->item(ui->tableWidget->currentItem()->row(), 3)->text().isEmpty()) {
enableProfile->setText(QApplication::translate("NetctlAutoWindow", "Enable"));
enableProfile->setIcon(QIcon::fromTheme("list-add"));
} else {
enableProfile->setVisible(true);
startProfile->setVisible(true);
if (!ui->tableWidget->item(ui->tableWidget->currentItem()->row(), 3)->text().isEmpty()) {
enableProfile->setText(QApplication::translate("NetctlAutoWindow", "Enable"));
enableProfile->setIcon(QIcon::fromTheme("edit-add"));
} else {
enableProfile->setText(QApplication::translate("NetctlAutoWindow", "Disable"));
enableProfile->setIcon(QIcon::fromTheme("edit-delete"));
}
enableProfile->setText(QApplication::translate("NetctlAutoWindow", "Disable"));
enableProfile->setIcon(QIcon::fromTheme("edit-delete"));
}
// actions
@ -227,7 +221,7 @@ void NetctlAutoWindow::netctlAutoUpdateTable()
ui->actionDisableAll->setVisible(false);
ui->actionEnableAll->setVisible(false);
ui->actionRestartService->setVisible(false);
netctlAutoRefreshButtons(0, 0);
netctlAutoRefreshButtons(nullptr, nullptr);
return;
}
QList<netctlProfileInfo> profiles;
@ -288,10 +282,11 @@ void NetctlAutoWindow::netctlAutoUpdateTable()
ui->tableWidget->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
#endif
ui->tableWidget->setCurrentCell(-1, -1);
ui->tableWidget->setEnabled(true);
ui->statusBar->showMessage(QApplication::translate("NetctlAutoWindow", "Updated"));
netctlAutoRefreshButtons(0, 0);
netctlAutoRefreshButtons(nullptr, nullptr);
update();
}
@ -325,8 +320,7 @@ void NetctlAutoWindow::netctlAutoEnableProfile()
{
if (debug) qDebug() << PDEBUG;
if (ui->tableWidget->currentItem() == 0)
return;
if (ui->tableWidget->currentItem() == nullptr) return;
ui->tableWidget->setDisabled(true);
QString profile = ui->tableWidget->item(ui->tableWidget->currentItem()->row(), 0)->text();
bool status = false;
@ -380,8 +374,7 @@ void NetctlAutoWindow::netctlAutoStartProfile()
{
if (debug) qDebug() << PDEBUG;
if (ui->tableWidget->currentItem() == nullptr)
return;
if (ui->tableWidget->currentItem() == nullptr) return;
ui->tableWidget->setDisabled(true);
QString profile = ui->tableWidget->item(ui->tableWidget->currentItem()->row(), 0)->text();
bool status = false;
@ -492,34 +485,23 @@ void NetctlAutoWindow::netctlAutoRefreshButtons(QTableWidgetItem *current, QTabl
ui->actionSwitch->setVisible(false);
return;
}
if (!ui->tableWidget->item(current->row(), 2)->text().isEmpty()) {
toolBarActions[QString("switch")]->setEnabled(ui->tableWidget->item(current->row(), 2)->text().isEmpty());
ui->actionSwitch->setVisible(ui->tableWidget->item(current->row(), 2)->text().isEmpty());
toolBarActions[QString("enable")]->setEnabled(true);
ui->actionEnable->setVisible(true);
if (!ui->tableWidget->item(current->row(), 3)->text().isEmpty()) {
// buttons
toolBarActions[QString("enable")]->setDisabled(true);
toolBarActions[QString("switch")]->setDisabled(true);
toolBarActions[QString("enable")]->setText(QApplication::translate("NetctlAutoWindow", "Enable"));
toolBarActions[QString("enable")]->setIcon(QIcon::fromTheme("list-add"));
// menu
ui->actionEnable->setVisible(false);
ui->actionSwitch->setVisible(false);
ui->actionEnable->setText(QApplication::translate("NetctlAutoWindow", "Enable profile"));
ui->actionEnable->setIcon(QIcon::fromTheme("list-add"));
} else {
// buttons
toolBarActions[QString("enable")]->setEnabled(true);
toolBarActions[QString("switch")]->setEnabled(true);
toolBarActions[QString("enable")]->setText(QApplication::translate("NetctlAutoWindow", "Disable"));
toolBarActions[QString("enable")]->setIcon(QIcon::fromTheme("edit-delete"));
// menu
ui->actionEnable->setVisible(true);
ui->actionSwitch->setVisible(true);
if (!ui->tableWidget->item(current->row(), 3)->text().isEmpty()) {
// buttons
toolBarActions[QString("enable")]->setText(QApplication::translate("NetctlAutoWindow", "Enable"));
toolBarActions[QString("enable")]->setIcon(QIcon::fromTheme("edit-add"));
// menu
ui->actionEnable->setText(QApplication::translate("NetctlAutoWindow", "Enable profile"));
ui->actionEnable->setIcon(QIcon::fromTheme("edit-add"));
} else {
// buttons
toolBarActions[QString("enable")]->setText(QApplication::translate("NetctlAutoWindow", "Disable"));
toolBarActions[QString("enable")]->setIcon(QIcon::fromTheme("edit-delete"));
// menu
ui->actionEnable->setText(QApplication::translate("NetctlAutoWindow", "Disable profile"));
ui->actionEnable->setIcon(QIcon::fromTheme("edit-delete"));
}
ui->actionEnable->setText(QApplication::translate("NetctlAutoWindow", "Disable profile"));
ui->actionEnable->setIcon(QIcon::fromTheme("edit-delete"));
}
}

View File

@ -94,7 +94,7 @@
<widget class="QStatusBar" name="statusBar"/>
<action name="actionEnable">
<property name="icon">
<iconset theme="edit-add">
<iconset theme="list-add">
<normaloff/>
</iconset>
</property>
@ -127,7 +127,7 @@
</action>
<action name="actionEnableAll">
<property name="icon">
<iconset theme="edit-add">
<iconset theme="list-add">
<normaloff/>
</iconset>
</property>

View File

@ -157,22 +157,18 @@ int PppoeWidget::isOk()
{
// config file doesn't exist
if (!ui->lineEdit_options->text().isEmpty())
if (!QFile(ui->lineEdit_options->text()).exists())
return 1;
if (!QFile(ui->lineEdit_options->text()).exists()) return 1;
// mac address
if (!ui->lineEdit_mac->text().remove(QChar(':')).isEmpty())
if (ui->lineEdit_mac->text().length() != (6 * 2 + 5))
return 2;
if (ui->lineEdit_mac->text().length() != (6 * 2 + 5)) return 2;
// session id is not set
if (!ui->lineEdit_session->text().remove(QChar(':')).isEmpty())
if (ui->lineEdit_session->text().split(QChar(':'))[0].isEmpty())
return 3;
if (ui->lineEdit_session->text().split(QChar(':'))[0].isEmpty()) return 3;
// session mac address
if (!ui->lineEdit_session->text().remove(QChar(':')).isEmpty()) {
QStringList item = ui->lineEdit_session->text().split(QChar(':'));
item.removeFirst();
if (item.join(QChar(':')).length() != (6 * 2 + 5))
return 4;
if (item.join(QChar(':')).length() != (6 * 2 + 5)) return 4;
}
// all fine
return 0;

View File

@ -70,8 +70,7 @@ QMap<QString, QString> TunnelWidget::getSettings()
int TunnelWidget::isOk()
{
// ip is not correct
if (!IpRegExp::checkString(ui->lineEdit_remote->text(), IpRegExp::ip4Regex()))
return 1;
if (!IpRegExp::checkString(ui->lineEdit_remote->text(), IpRegExp::ip4Regex())) return 1;
// all fine
return 0;
}

View File

@ -59,11 +59,9 @@ QMap<QString, QString> TuntapWidget::getSettings()
int TuntapWidget::isOk()
{
// empty username
if (ui->lineEdit_user->text().isEmpty())
return 1;
if (ui->lineEdit_user->text().isEmpty()) return 1;
// empty group name
if (ui->lineEdit_group->text().isEmpty())
return 2;
if (ui->lineEdit_group->text().isEmpty()) return 2;
// all fine
return 0;
}

View File

@ -232,26 +232,21 @@ int WirelessWidget::isOk()
// empty key
if ((ui->comboBox_security->currentText() == QString("wep")) ||
(ui->comboBox_security->currentText() == QString("wpa")))
if (ui->lineEdit_key->text().isEmpty())
return 1;
if (ui->lineEdit_key->text().isEmpty()) return 1;
// empty settings
if (ui->comboBox_security->currentText() == QString("wpa-configsection"))
if (ui->listWidget_wpaConfigSection->count() == 0)
return 2;
if (ui->listWidget_wpaConfigSection->count() == 0) return 2;
// file is not set
if (ui->comboBox_security->currentText() == QString("wpa-config"))
if (ui->lineEdit_wpaConfig->text().isEmpty())
return 3;
if (ui->lineEdit_wpaConfig->text().isEmpty()) return 3;
// file wpa_supplicant doesn't exists
if (ui->comboBox_security->currentText() == QString("wpa-config"))
if (!QFile(ui->lineEdit_wpaConfig->text()).exists())
return 4;
if (!QFile(ui->lineEdit_wpaConfig->text()).exists()) return 4;
// essid is not set
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;
if (ui->lineEdit_essid->text().isEmpty()) return 5;
// all fine
return 0;
}