add contextual actions to wifi tab

This commit is contained in:
arcan1s 2014-07-10 10:30:26 +04:00
parent a845e32960
commit bf799ce061
3 changed files with 40 additions and 0 deletions

View File

@ -181,6 +181,7 @@ void MainWindow::createActions()
connect(ui->pushButton_wifiStart, SIGNAL(clicked(bool)), this, SLOT(wifiTabStart()));
connect(ui->tableWidget_wifi, SIGNAL(itemActivated(QTableWidgetItem *)), this, SLOT(wifiTabStart()));
connect(ui->tableWidget_wifi, SIGNAL(currentItemChanged(QTableWidgetItem *, QTableWidgetItem *)), this, SLOT(wifiTabRefreshButtons(QTableWidgetItem *, QTableWidgetItem *)));
connect(ui->tableWidget_wifi, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(wifiTabContextualMenu(QPoint)));
}
@ -657,6 +658,7 @@ void MainWindow::profileTabClear()
ipWid->clear();
bridgeWid->clear();
ethernetWid->clear();
macvlanWid->clear();
mobileWid->clear();
pppoeWid->clear();
tunnelWid->clear();
@ -952,6 +954,40 @@ void MainWindow::profileTabLoadProfile()
// wifi tab slots
void MainWindow::wifiTabContextualMenu(const QPoint &pos)
{
if (debug) qDebug() << "[MainWindow]" << "[wifiTabContextualMenu]";
// create menu
QMenu menu(this);
QAction *refreshTable = menu.addAction(QApplication::translate("MainWindow", "Refresh"));
menu.addSeparator();
QAction *startWifi = menu.addAction(QApplication::translate("MainWindow", "Start WiFi"));
// set text
QString item = ui->tableWidget_wifi->item(ui->tableWidget_wifi->currentItem()->row(), 1)->text();
if (checkState(QString("exists"), item)) {
if (!checkState(QString("inactive"), item))
startWifi->setText(QApplication::translate("MainWindow", "Stop WiFi"));
else
startWifi->setText(QApplication::translate("MainWindow", "Start WiFi"));
}
else
startWifi->setText(QApplication::translate("MainWindow", "Start WiFi"));
// actions
QAction *action = menu.exec(ui->tableWidget_main->viewport()->mapToGlobal(pos));
if (action == refreshTable) {
if (debug) qDebug() << "[MainWindow]" << "[wifiTabContextualMenu]" << "Refresh WiFi";
updateWifiTab();
}
else if (action == startWifi) {
if (debug) qDebug() << "[MainWindow]" << "[wifiTabContextualMenu]" << "Start WiFi";
wifiTabStart();
}
}
void MainWindow::wifiTabSetEnabled(const bool state)
{
if (state) {

View File

@ -83,6 +83,7 @@ private slots:
void profileTabCreateProfile();
void profileTabLoadProfile();
// wifi tab slots
void wifiTabContextualMenu(const QPoint &pos);
void wifiTabSetEnabled(const bool state);
void wifiTabStart();
void wifiTabRefreshButtons(QTableWidgetItem *current, QTableWidgetItem *previous);

View File

@ -274,6 +274,9 @@
</item>
<item>
<widget class="QTableWidget" name="tableWidget_wifi">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>