diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f867828b..62d18cc9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1011,7 +1011,7 @@ void MainWindow::onNetworkDeviceAdded(QDBusObjectPath objPath) syslog(LOG_DEBUG,"wireless device is already plug in"); qDebug()<<"wireless device is already plug in"; is_wireless_adapter_ready = 1; - onBtnWifiClicked(0); + onBtnWifiClicked(3); } } } @@ -1020,10 +1020,17 @@ void MainWindow::onNetworkDeviceRemoved(QDBusObjectPath objPath) { //仅处理无线网卡拔出情况 if (objKyDBus->wirelessPath.path() == objPath.path()){ - syslog(LOG_DEBUG,"wireless device is already plug out"); - qDebug()<<"wireless device is already plug out"; - is_wireless_adapter_ready = 0; - onBtnWifiClicked(0); + objKyDBus->isWirelessCardOn = false; + objKyDBus->getObjectPath(); //检查是不是还有无线网卡 + if (!objKyDBus->isWirelessCardOn) { + syslog(LOG_DEBUG,"wireless device is already plug out"); + qDebug()<<"wireless device is already plug out"; + is_wireless_adapter_ready = 0; + onBtnWifiClicked(4); + } else { + syslog(LOG_DEBUG,"wireless device is already plug out, but one more wireless exist"); + qDebug()<<"wireless device is already plug out, but one more wireless exist"; + } } } @@ -1112,26 +1119,28 @@ void MainWindow::on_btnNet_clicked() void MainWindow::onBtnWifiClicked(int flag) { - qDebug()<<"the value of flag = "<setWifiSwitchState(false); - lbTopWifiList->hide(); - btnAddNet->hide(); + if (flag != 3) { //以防第二张无线网卡插入时断网 + objKyDBus->setWifiSwitchState(false); + lbTopWifiList->hide(); + btnAddNet->hide(); - QThread *t = new QThread(); - BackThread *bt = new BackThread(); - bt->moveToThread(t); - connect(t, SIGNAL(finished()), t, SLOT(deleteLater())); - connect(t, SIGNAL(started()), bt, SLOT(execDisWifi())); - connect(bt, SIGNAL(disWifiDone()), this, SLOT(disWifiDone())); - connect(bt, SIGNAL(btFinish()), t, SLOT(quit())); - t->start(); - this->startLoading(); + QThread *t = new QThread(); + BackThread *bt = new BackThread(); + bt->moveToThread(t); + connect(t, SIGNAL(finished()), t, SLOT(deleteLater())); + connect(t, SIGNAL(started()), bt, SLOT(execDisWifi())); + connect(bt, SIGNAL(disWifiDone()), this, SLOT(disWifiDone())); + connect(bt, SIGNAL(btFinish()), t, SLOT(quit())); + t->start(); + this->startLoading(); + } }else{ if (is_fly_mode_on == 0){ on_btnWifiList_clicked(); diff --git a/src/mainwindow.h b/src/mainwindow.h index 5db98f4b..0ff1e36d 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -176,7 +176,8 @@ public slots: void on_btnHotspot_clicked(); void on_btnHotspotState(); - void onBtnWifiClicked(int flag = 0); //flag =0为打开、1为关闭、2为其他 + //flag =0为普通点击、1为收到打开信息、2为收到关闭信息、3为无线网卡插入、4为无线网卡拔出 + void onBtnWifiClicked(int flag = 0); protected: bool eventFilter(QObject *obj, QEvent *event); diff --git a/translations/kylin-nm_zh_CN.qm b/translations/kylin-nm_zh_CN.qm index b886065e..a8051938 100644 Binary files a/translations/kylin-nm_zh_CN.qm and b/translations/kylin-nm_zh_CN.qm differ diff --git a/translations/kylin-nm_zh_CN.ts b/translations/kylin-nm_zh_CN.ts index 75fb2b17..2cb92f94 100644 --- a/translations/kylin-nm_zh_CN.ts +++ b/translations/kylin-nm_zh_CN.ts @@ -1271,7 +1271,7 @@ Advanced - 网络配置 + 设置网络