small changes in the architecture

This commit is contained in:
arcan1s 2014-02-08 12:35:52 +04:00
parent 65086a9aa3
commit b439906be4
3 changed files with 30 additions and 19 deletions

View File

@ -40,7 +40,7 @@ MainWindow::MainWindow(QWidget *parent)
// temporary block // temporary block
netctlPath = QString("/usr/bin/netctl"); netctlPath = QString("/usr/bin/netctl");
profileDir = QString("/etc/netctl"); profileDir = QString("/etc/netctl");
sudoPath = QString("/usr/bin/sudo"); sudoPath = QString("/usr/bin/kdesu");
wpaConfig.append(QString("/usr/bin/wpa_cli")); wpaConfig.append(QString("/usr/bin/wpa_cli"));
wpaConfig.append(QString("/usr/bin/wpa_supplicant")); wpaConfig.append(QString("/usr/bin/wpa_supplicant"));
ifaceDir = QString("/sys/class/net/"); ifaceDir = QString("/sys/class/net/");
@ -89,6 +89,15 @@ bool MainWindow::checkExternalApps(QString apps = QString("all"))
} }
bool MainWindow::checkState(QString state, QString item)
{
if (item.indexOf(state) > -1)
return true;
else
return false;
}
// window signals // window signals
void MainWindow::createActions() void MainWindow::createActions()
{ {
@ -100,6 +109,7 @@ void MainWindow::createActions()
connect(ui->pushButton_mainEnable, SIGNAL(clicked(bool)), this, SLOT(mainTabEnableProfile())); connect(ui->pushButton_mainEnable, SIGNAL(clicked(bool)), this, SLOT(mainTabEnableProfile()));
connect(ui->pushButton_mainRestart, SIGNAL(clicked(bool)), this, SLOT(mainTabRestartProfile())); connect(ui->pushButton_mainRestart, SIGNAL(clicked(bool)), this, SLOT(mainTabRestartProfile()));
connect(ui->pushButton_mainStart, SIGNAL(clicked(bool)), this, SLOT(mainTabStartProfile())); connect(ui->pushButton_mainStart, SIGNAL(clicked(bool)), this, SLOT(mainTabStartProfile()));
connect(ui->tableWidget_main, SIGNAL(itemActivated(QTableWidgetItem *)), this, SLOT(mainTabStartProfile()));
connect(ui->tableWidget_main, SIGNAL(currentItemChanged(QTableWidgetItem *, QTableWidgetItem *)), this, SLOT(mainTabRefreshButtons(QTableWidgetItem *, QTableWidgetItem *))); connect(ui->tableWidget_main, SIGNAL(currentItemChanged(QTableWidgetItem *, QTableWidgetItem *)), this, SLOT(mainTabRefreshButtons(QTableWidgetItem *, QTableWidgetItem *)));
// wifi page events // wifi page events
@ -276,8 +286,8 @@ void MainWindow::mainTabRefreshButtons(QTableWidgetItem *current, QTableWidgetIt
if (!checkExternalApps(QString("netctl"))) if (!checkExternalApps(QString("netctl")))
return; return;
QString profile = ui->tableWidget_main->item(current->row(), 0)->text(); QString item = ui->tableWidget_main->item(current->row(), 2)->text();
if (netctlCommand->isProfileActive(profile)) { if (!checkState(QString("inactive"), item)) {
ui->pushButton_mainRestart->setEnabled(true); ui->pushButton_mainRestart->setEnabled(true);
ui->pushButton_mainStart->setText(QApplication::translate("MainWindow", "Stop")); ui->pushButton_mainStart->setText(QApplication::translate("MainWindow", "Stop"));
} }
@ -285,7 +295,7 @@ void MainWindow::mainTabRefreshButtons(QTableWidgetItem *current, QTableWidgetIt
ui->pushButton_mainRestart->setDisabled(true); ui->pushButton_mainRestart->setDisabled(true);
ui->pushButton_mainStart->setText(QApplication::translate("MainWindow", "Start")); ui->pushButton_mainStart->setText(QApplication::translate("MainWindow", "Start"));
} }
if (netctlCommand->isProfileEnabled(profile)) if (checkState(QString("enabled"), item))
ui->pushButton_mainEnable->setText(QApplication::translate("MainWindow", "Disable")); ui->pushButton_mainEnable->setText(QApplication::translate("MainWindow", "Disable"));
else else
ui->pushButton_mainEnable->setText(QApplication::translate("MainWindow", "Enable")); ui->pushButton_mainEnable->setText(QApplication::translate("MainWindow", "Enable"));
@ -318,11 +328,13 @@ void MainWindow::wifiTabRefreshButtons(QTableWidgetItem *current, QTableWidgetIt
if (!checkExternalApps(QString("wpasup"))) if (!checkExternalApps(QString("wpasup")))
return; return;
QString network = ui->tableWidget_wifi->item(current->row(), 0)->text(); QString item = ui->tableWidget_wifi->item(current->row(), 3)->text();
if (wpaCommand->isProfileExists(network)) { if (checkState(QString("exists"), item)) {
if (wpaCommand->isProfileActive(network)) if (!checkState(QString("inactive"), item))
ui->pushButton_wifiStart->setText(QApplication::translate("MainWindow", "Stop")); ui->pushButton_wifiStart->setText(QApplication::translate("MainWindow", "Stop"));
else else
ui->pushButton_wifiStart->setText(QApplication::translate("MainWindow", "Start")); ui->pushButton_wifiStart->setText(QApplication::translate("MainWindow", "Start"));
} }
else
ui->pushButton_wifiStart->setText(QApplication::translate("MainWindow", "Start"));
} }

View File

@ -48,7 +48,6 @@ public:
wpaConfDir = 4, wpaConfDir = 4,
wpaConfGroup = 5 wpaConfGroup = 5
}; };
bool checkExternalApps(QString apps);
private slots: private slots:
void updateTabs(const int tab); void updateTabs(const int tab);
@ -65,6 +64,8 @@ private slots:
private: private:
Ui::MainWindow *ui; Ui::MainWindow *ui;
bool checkExternalApps(QString apps);
bool checkState(QString state, QString item);
void createActions(); void createActions();
// configuration // configuration
QString netctlPath; QString netctlPath;

View File

@ -49,15 +49,13 @@ QStringList WpaSup::getInterfaceList()
{ {
QStringList interfaces; QStringList interfaces;
if (mainInterface.isEmpty()) { interfaces.append(mainInterface);
QStringList allInterfaces = ifaceDirectory->entryList(QDir::Dirs | QDir::NoDotAndDotDot); QStringList allInterfaces = ifaceDirectory->entryList(QDir::Dirs | QDir::NoDotAndDotDot);
for (int i=0; i<allInterfaces.count(); i++) for (int i=0; i<allInterfaces.count(); i++)
if (QDir(ifaceDirectory->path() + QDir::separator() + allInterfaces[i] + if (QDir(ifaceDirectory->path() + QDir::separator() + allInterfaces[i] +
QDir::separator() + QString("wireless")).exists()) QDir::separator() + QString("wireless")).exists())
interfaces.append(allInterfaces[i]); interfaces.append(allInterfaces[i]);
}
else
interfaces.append(mainInterface);
return interfaces; return interfaces;
} }
@ -69,7 +67,7 @@ bool WpaSup::wpaCliCall(QString commandLine)
QString interface = getInterfaceList()[0]; QString interface = getInterfaceList()[0];
QProcess command; QProcess command;
command.start(wpaConf[0] + QString(" -i ") + interface + QString(" -p ") + wpaConf[4] + command.start(wpaConf[0] + QString(" -i ") + interface + QString(" -p ") + wpaConf[4] +
QString(" ") + commandLine); QString(" -P ") + wpaConf[2] + QString(" ") + commandLine);
command.waitForFinished(-1); command.waitForFinished(-1);
SleepThread::sleep(1); SleepThread::sleep(1);
if (command.exitCode() == 0) if (command.exitCode() == 0)
@ -84,7 +82,7 @@ QString WpaSup::getWpaCliOutput(QString commandLine)
QString interface = getInterfaceList()[0]; QString interface = getInterfaceList()[0];
QProcess command; QProcess command;
command.start(wpaConf[0] + QString(" -i ") + interface + QString(" -p ") + wpaConf[4] + command.start(wpaConf[0] + QString(" -i ") + interface + QString(" -p ") + wpaConf[4] +
QString(" ") + commandLine); QString(" -P ") + wpaConf[2] + QString(" ") + commandLine);
command.waitForFinished(-1); command.waitForFinished(-1);
return command.readAllStandardOutput(); return command.readAllStandardOutput();
} }