add process to return value of system function,replace some system function.
This commit is contained in:
parent
588a7c998f
commit
a91a75e5fe
161
backthread.cpp
161
backthread.cpp
|
@ -17,30 +17,37 @@
|
|||
*/
|
||||
|
||||
#include "backthread.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <QFile>
|
||||
#include <QRegExp>
|
||||
|
||||
BackThread::BackThread(QObject *parent) : QObject(parent){
|
||||
cmd = new QProcess(this);
|
||||
connect(cmd , SIGNAL(readyReadStandardOutput()) , this , SLOT(on_readoutput()));
|
||||
connect(cmd , SIGNAL(readyReadStandardError()) , this , SLOT(on_readerror()));
|
||||
cmd->start("bash");
|
||||
cmd->waitForStarted();
|
||||
cmdConnWifi = new QProcess(this);
|
||||
connect(cmdConnWifi , SIGNAL(readyReadStandardOutput()) , this , SLOT(on_readoutput()));
|
||||
connect(cmdConnWifi , SIGNAL(readyReadStandardError()) , this , SLOT(on_readerror()));
|
||||
cmdConnWifi->start("bash");
|
||||
cmdConnWifi->waitForStarted();
|
||||
}
|
||||
|
||||
BackThread::~BackThread()
|
||||
{
|
||||
cmd->close();
|
||||
cmdConnWifi->close();
|
||||
}
|
||||
|
||||
IFace* BackThread::execGetIface(){
|
||||
IFace *iface = new IFace();
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';nmcli -f TYPE,DEVICE,STATE device > /tmp/kylin-nm-iface";
|
||||
system(cmd.toUtf8().data());
|
||||
Utils::m_system(cmd.toUtf8().data());
|
||||
|
||||
// int status = system(cmd.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device' in function 'execGetIface' failed");}
|
||||
|
||||
QFile file("/tmp/kylin-nm-iface");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
|
@ -98,7 +105,11 @@ IFace* BackThread::execGetIface(){
|
|||
}
|
||||
|
||||
void BackThread::execEnNet(){
|
||||
system("nmcli networking on");
|
||||
char *chr = "nmcli networking on";
|
||||
Utils::m_system(chr);
|
||||
|
||||
// int status = system("nmcli networking on");
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli networking on' in function 'execEnNet' failed");}
|
||||
while(1){
|
||||
if (execGetIface()->lstate != 2){
|
||||
sleep(3);
|
||||
|
@ -112,7 +123,11 @@ void BackThread::execEnNet(){
|
|||
|
||||
void BackThread::execDisNet(){
|
||||
if (execGetIface()->wstate != 2){
|
||||
system("nmcli radio wifi off");
|
||||
char *chr = "nmcli radio wifi off";
|
||||
Utils::m_system(chr);
|
||||
|
||||
// int status = system("nmcli radio wifi off");
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli radio wifi off' in function 'execDisNet' failed");}
|
||||
while(1){
|
||||
if (execGetIface()->wstate == 2){
|
||||
emit disWifiDone();
|
||||
|
@ -122,7 +137,11 @@ void BackThread::execDisNet(){
|
|||
sleep(1);
|
||||
}
|
||||
}
|
||||
system("nmcli networking off");
|
||||
|
||||
char *chr1 = "nmcli networking off";
|
||||
Utils::m_system(chr1);
|
||||
// int status1 = system("nmcli networking off");
|
||||
// if (status1 != 0){ syslog(LOG_ERR, "execute 'nmcli networking off' in function 'execDisNet' failed");}
|
||||
while(1){
|
||||
if (execGetIface()->lstate == 2){
|
||||
emit disNetDone();
|
||||
|
@ -135,7 +154,10 @@ void BackThread::execDisNet(){
|
|||
|
||||
void BackThread::execEnWifi(){
|
||||
if (execGetIface()->lstate == 2){
|
||||
system("nmcli networking on");
|
||||
char *chr = "nmcli networking on";
|
||||
Utils::m_system(chr);
|
||||
// int status = system("nmcli networking on");
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli networking on' in function 'execEnWifi' failed");}
|
||||
while(1){
|
||||
if (execGetIface()->lstate != 2){
|
||||
emit launchLanDone();
|
||||
|
@ -144,7 +166,11 @@ void BackThread::execEnWifi(){
|
|||
sleep(1);
|
||||
}
|
||||
}
|
||||
system("nmcli radio wifi on");
|
||||
|
||||
char *chr1 = "nmcli radio wifi on";
|
||||
Utils::m_system(chr1);
|
||||
// int status1 = system("nmcli radio wifi on");
|
||||
// if (status1 != 0){ syslog(LOG_ERR, "execute 'nmcli radio wifi on' in function 'execEnWifi' failed");}
|
||||
while(1){
|
||||
if (execGetIface()->wstate != 2){
|
||||
KylinDBus objKyDbus;
|
||||
|
@ -163,7 +189,10 @@ void BackThread::execEnWifi(){
|
|||
}
|
||||
|
||||
void BackThread::execDisWifi(){
|
||||
system("nmcli radio wifi off");
|
||||
char *chr = "nmcli radio wifi off";
|
||||
Utils::m_system(chr);
|
||||
// int status = system("nmcli radio wifi off");
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli radio wifi off' in function 'execDisWifi' failed");}
|
||||
while(1){
|
||||
if (execGetIface()->wstate == 2){
|
||||
emit disWifiDone();
|
||||
|
@ -175,12 +204,14 @@ void BackThread::execDisWifi(){
|
|||
}
|
||||
|
||||
void BackThread::execConnLan(QString connName){
|
||||
lanDelete(); //连接前先断开已经连接的有线网
|
||||
disConnLanOrWifi("ethernet");
|
||||
|
||||
KylinDBus objKyDbus;
|
||||
if(objKyDbus.isWiredCableOn){
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';nmcli connection up '" + connName + "'";
|
||||
system(cmd.toUtf8().data());
|
||||
Utils::m_system(cmd.toUtf8().data());
|
||||
// int status = system(cmd.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection up' in function 'execConnLan' failed");}
|
||||
qDebug()<<"debug: in function execConnLan, wired net state is: "<<QString::number(execGetIface()->lstate);
|
||||
syslog(LOG_DEBUG, "In function execConnLan, wired net state is: %d", execGetIface()->lstate);
|
||||
emit connDone(0);
|
||||
|
@ -192,10 +223,12 @@ void BackThread::execConnLan(QString connName){
|
|||
}
|
||||
|
||||
void BackThread::execConnWifiPWD(QString connName, QString password){
|
||||
wifiDelete(); //连接前先断开已经连接的wifi
|
||||
disConnLanOrWifi("wifi");
|
||||
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';nmcli device wifi connect '" + connName + "' password '" + password + "' > /tmp/kylin-nm-btoutput";
|
||||
system(cmd.toUtf8().data());
|
||||
QString cmdStr = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';nmcli device wifi connect '" + connName + "' password '" + password + "' > /tmp/kylin-nm-btoutput";
|
||||
Utils::m_system(cmdStr.toUtf8().data());
|
||||
// int status = system(cmdStr.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device wifi connect' in function 'execConnWifiPWD' failed");}
|
||||
|
||||
QFile file("/tmp/kylin-nm-btoutput");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
|
@ -212,7 +245,10 @@ void BackThread::execConnWifiPWD(QString connName, QString password){
|
|||
}else{
|
||||
QString txt(tr("Confirm your Wi-Fi password"));
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';notify-send '" + txt + "...' -t 3800";
|
||||
system(cmd.toUtf8().data());
|
||||
Utils::m_system(cmd.toUtf8().data());
|
||||
// int status1 = system(cmd.toUtf8().data());
|
||||
// if (status1 != 0){ syslog(LOG_ERR, "execute 'notify-send' in function 'execConnWifiPWD' failed");}
|
||||
|
||||
emit connDone(1);
|
||||
}
|
||||
|
||||
|
@ -220,16 +256,16 @@ void BackThread::execConnWifiPWD(QString connName, QString password){
|
|||
}
|
||||
|
||||
void BackThread::execConnWifi(QString connName){
|
||||
wifiDelete(); //连接前先断开已经连接的wifi
|
||||
disConnLanOrWifi("wifi");
|
||||
|
||||
QString cmdStr = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';nmcli connection up '" + connName + "'\n";
|
||||
cmd->write(cmdStr.toUtf8().data());
|
||||
cmdConnWifi->write(cmdStr.toUtf8().data());
|
||||
}
|
||||
|
||||
void BackThread::on_readoutput()
|
||||
{
|
||||
QString str = cmd->readAllStandardOutput();
|
||||
cmd->close();
|
||||
QString str = cmdConnWifi->readAllStandardOutput();
|
||||
cmdConnWifi->close();
|
||||
qDebug()<<"on_readoutput: "<< str;
|
||||
if(str.indexOf("successfully") != -1){
|
||||
emit connDone(0);
|
||||
|
@ -245,8 +281,8 @@ void BackThread::on_readoutput()
|
|||
}
|
||||
void BackThread::on_readerror()
|
||||
{
|
||||
QString str = cmd->readAllStandardError();
|
||||
cmd->close();
|
||||
QString str = cmdConnWifi->readAllStandardError();
|
||||
cmdConnWifi->close();
|
||||
qDebug()<<"on_readerror: "<< str;
|
||||
if(str.indexOf("successfully") != -1){
|
||||
emit connDone(0);
|
||||
|
@ -261,11 +297,12 @@ void BackThread::on_readerror()
|
|||
|
||||
QString BackThread::getConnProp(QString connName){
|
||||
QString cmd = "nmcli connection show '" + connName + "' > /tmp/kylin-nm-connprop";
|
||||
system(cmd.toUtf8().data());
|
||||
Utils::m_system(cmd.toUtf8().data());
|
||||
// int status = system(cmd.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'getConnProp' failed");}
|
||||
|
||||
QFile file("/tmp/kylin-nm-connprop");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
{
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
syslog(LOG_ERR, "Can't open the file /tmp/kylin-nm-connprop!");
|
||||
qDebug()<<"Can't open the file /tmp/kylin-nm-connprop!"<<endl;
|
||||
}
|
||||
|
@ -314,7 +351,9 @@ QString BackThread::getConnProp(QString connName){
|
|||
|
||||
bool BackThread::execChkWifiExist(QString connName){
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';nmcli connection show '" + connName + "' > /tmp/kylin-nm-chkwifiexist";
|
||||
system(cmd.toUtf8().data());
|
||||
Utils::m_system(cmd.toUtf8().data());
|
||||
// int status = system(cmd.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'execChkWifiExist' failed");}
|
||||
|
||||
QFile file("/tmp/kylin-nm-chkwifiexist");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
|
@ -334,7 +373,9 @@ bool BackThread::execChkWifiExist(QString connName){
|
|||
|
||||
QString BackThread::execChkLanWidth(QString ethName){
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';ethtool '" + ethName + "' | grep Speed > /tmp/kylin-nm-bandwidth";
|
||||
system(cmd.toUtf8().data());
|
||||
Utils::m_system(cmd.toUtf8().data());
|
||||
// int status = system(cmd.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'ethtool' in function 'execChkLanWidth' failed");}
|
||||
|
||||
QFile file("/tmp/kylin-nm-bandwidth");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
|
@ -354,30 +395,37 @@ QString BackThread::execChkLanWidth(QString ethName){
|
|||
return rtn.trimmed();
|
||||
}
|
||||
|
||||
void BackThread::redundantNetDeleted()
|
||||
void BackThread::disConnSparedNetSlot(QString type)
|
||||
{
|
||||
sleep(1);
|
||||
wifiDelete();
|
||||
if (type == "wifi"){
|
||||
disConnLanOrWifi("wifi");
|
||||
} else if(type == "ethernet") {
|
||||
disConnLanOrWifi("ethernet");
|
||||
}
|
||||
|
||||
|
||||
emit disFinish();
|
||||
emit ttFinish();
|
||||
}
|
||||
|
||||
void BackThread::wifiDelete()
|
||||
void BackThread::disConnLanOrWifi(QString type)
|
||||
{
|
||||
QString strSlist;
|
||||
system("nmcli connection show -active>/tmp/kylin-nm-connshow");
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
syslog(LOG_ERR, "Can't open the file /tmp/kylin-nm-connshow!");
|
||||
qDebug()<<"Can't open the file /tmp/kylin-nm-connshow!";
|
||||
const int BUF_SIZE = 1024;
|
||||
char buf[BUF_SIZE];
|
||||
|
||||
FILE * p_file = NULL;
|
||||
|
||||
p_file = popen("nmcli connection show -active", "r");
|
||||
if (!p_file) {
|
||||
syslog(LOG_ERR, "Error occured when popen cmd 'nmcli connection show'");
|
||||
qDebug()<<"Error occured when popen cmd 'nmcli connection show";
|
||||
}
|
||||
|
||||
QString txt = file.readAll();
|
||||
QStringList txtLine = txt.split("\n");
|
||||
file.close();
|
||||
foreach (QString line, txtLine) {
|
||||
if(line.indexOf("wifi") != -1){
|
||||
while (fgets(buf, BUF_SIZE, p_file) != NULL) {
|
||||
QString line(buf);
|
||||
if(line.indexOf(type) != -1){
|
||||
QStringList subLine = line.split(" ");
|
||||
if (subLine[1].size() == 1){
|
||||
strSlist = subLine[0]+ " " + subLine[1];
|
||||
|
@ -386,31 +434,6 @@ void BackThread::wifiDelete()
|
|||
}
|
||||
kylin_network_set_con_down(strSlist.toUtf8().data());
|
||||
}
|
||||
} //end foreach
|
||||
}
|
||||
|
||||
void BackThread::lanDelete()
|
||||
{
|
||||
QString strSlist;
|
||||
system("nmcli connection show -active>/tmp/kylin-nm-connshow");
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
syslog(LOG_DEBUG, "Can't open the file /tmp/kylin-nm-connshow!");
|
||||
qDebug()<<"Can't open the file /tmp/kylin-nm-connshow!";
|
||||
}
|
||||
|
||||
QString txt = file.readAll();
|
||||
QStringList txtLine = txt.split("\n");
|
||||
file.close();
|
||||
foreach (QString line, txtLine) {
|
||||
if(line.indexOf("ethernet") != -1){
|
||||
QStringList subLine = line.split(" ");
|
||||
if (subLine[1].size() == 1){
|
||||
strSlist = subLine[0]+ " " + subLine[1];
|
||||
}else {
|
||||
strSlist = subLine[0];
|
||||
}
|
||||
kylin_network_set_con_down(strSlist.toUtf8().data());
|
||||
}
|
||||
} //end foreach
|
||||
pclose(p_file);
|
||||
}
|
||||
|
|
32
backthread.h
32
backthread.h
|
@ -22,7 +22,6 @@
|
|||
#include "kylin-dbus-interface.h"
|
||||
#include "kylin-network-interface.h"
|
||||
|
||||
#include <sys/syslog.h>
|
||||
#include <QObject>
|
||||
#include <QDebug>
|
||||
#include <QTimer>
|
||||
|
@ -50,7 +49,22 @@ public:
|
|||
QString getConnProp(QString connName);
|
||||
bool execChkWifiExist(QString connName);
|
||||
QString execChkLanWidth(QString ethName);
|
||||
QProcess *cmd;
|
||||
QProcess *cmdConnWifi;
|
||||
|
||||
public slots:
|
||||
void execEnNet();
|
||||
void execDisNet();
|
||||
void execEnWifi();
|
||||
void execDisWifi();
|
||||
void execConnLan(QString connName);
|
||||
void execConnWifi(QString connName);
|
||||
void execConnWifiPWD(QString connName, QString password);
|
||||
|
||||
void disConnSparedNetSlot(QString type);
|
||||
void disConnLanOrWifi(QString type);
|
||||
|
||||
void on_readoutput();
|
||||
void on_readerror();
|
||||
|
||||
signals:
|
||||
void enNetDone();
|
||||
|
@ -64,20 +78,6 @@ signals:
|
|||
void btFinish();
|
||||
void disFinish();
|
||||
void ttFinish();
|
||||
|
||||
public slots:
|
||||
void execEnNet();
|
||||
void execDisNet();
|
||||
void execEnWifi();
|
||||
void execDisWifi();
|
||||
void execConnLan(QString connName);
|
||||
void execConnWifi(QString connName);
|
||||
void execConnWifiPWD(QString connName, QString password);
|
||||
void redundantNetDeleted();
|
||||
void lanDelete();
|
||||
void wifiDelete();
|
||||
void on_readoutput();
|
||||
void on_readerror();
|
||||
};
|
||||
|
||||
#endif // BACKTHREAD_H
|
||||
|
|
15
confform.cpp
15
confform.cpp
|
@ -20,7 +20,9 @@
|
|||
#include "ui_confform.h"
|
||||
#include "kylin-network-interface.h"
|
||||
#include "backthread.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
@ -191,9 +193,12 @@ void ConfForm::setProp(QString connName, QString v4method, QString addr, QString
|
|||
void ConfForm::on_btnCreate_clicked()
|
||||
{
|
||||
QString cmdStr = "nmcli connection add con-name '" + ui->leName->text() + "' type ethernet";
|
||||
system(cmdStr.toUtf8().data());
|
||||
Utils::m_system(cmdStr.toUtf8().data());
|
||||
// int status = system(cmdStr.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection add con-name' in function 'on_btnCreate_clicked' failed");}
|
||||
|
||||
if(ui->cbType->currentIndex() == 1){
|
||||
//config the ipv4 and netmask and gateway if select Manual
|
||||
this->on_btnOk_clicked();
|
||||
}
|
||||
|
||||
|
@ -234,11 +239,15 @@ void ConfForm::on_btnOk_clicked()
|
|||
if(this->isActConf == true){
|
||||
//QString cmd = "/usr/share/kylin-nm/shell/connup.sh '" + ui->leName->text() + "'";
|
||||
QString cmd = "nmcli connection up '" + ui->leName->text() + "'";
|
||||
system(cmd.toUtf8().data());
|
||||
Utils::m_system(cmd.toUtf8().data());
|
||||
// int status = system(cmd.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection up' in function 'on_btnOk_clicked' failed");}
|
||||
|
||||
QString txt(tr("New settings already effective"));
|
||||
cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';notify-send '" + txt + "' -t 3800";
|
||||
system(cmd.toUtf8().data());
|
||||
Utils::m_system(cmd.toUtf8().data());
|
||||
// int status1 = system(cmd.toUtf8().data());
|
||||
// if (status1 != 0){ syslog(LOG_ERR, "execute 'notify-send' in function 'on_btnOk_clicked' failed");}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
#include "dlghotspotcreate.h"
|
||||
#include "ui_dlghotspotcreate.h"
|
||||
#include "utils.h"
|
||||
|
||||
DlgHotspotCreate::DlgHotspotCreate(QString wiFiCardName, QWidget *parent) :
|
||||
wirelessCardName(wiFiCardName),
|
||||
|
@ -97,7 +98,10 @@ void DlgHotspotCreate::on_btnOk_clicked()
|
|||
}else{
|
||||
str = "nmcli device wifi hotspot ifname " + wirelessCardName + " con-name " + ui->leNetName->text() + " ssid " + ui->leNetName->text() + " password " + ui->lePassword->text();
|
||||
}
|
||||
system(str.toUtf8().data());
|
||||
Utils::m_system(str.toUtf8().data());
|
||||
// int status = system(str.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device wifi hotspot' in function 'on_btnOk_clicked' failed");}
|
||||
|
||||
this->close();
|
||||
emit updateHotspotList();
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef DLGHOTSPOTCREATE_H
|
||||
#define DLGHOTSPOTCREATE_H
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
#include <QDialog>
|
||||
#include <QMouseEvent>
|
||||
#include <QDebug>
|
||||
|
|
|
@ -17,9 +17,11 @@
|
|||
*/
|
||||
|
||||
#include "ksimplenm.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <QThread>
|
||||
|
||||
#define MAX_LEN 2048
|
||||
#define MAX_PATH 1024
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#define KSIMPLENM_H
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QProcess>
|
||||
#include <QDebug>
|
||||
|
|
|
@ -18,8 +18,10 @@
|
|||
|
||||
#include "kylin-dbus-interface.h"
|
||||
#include "mainwindow.h"
|
||||
#include <QTextCodec>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include <QTextCodec>
|
||||
#include <QByteArray>
|
||||
|
||||
|
||||
|
@ -466,20 +468,20 @@ bool KylinDBus::getSwitchStatus(QString key){
|
|||
return res;
|
||||
}
|
||||
|
||||
void KylinDBus::wifiSwitchSlot(bool signal){
|
||||
void KylinDBus::setWifiSwitchState(bool signal){
|
||||
if(!m_gsettings) {
|
||||
return ;
|
||||
}
|
||||
|
||||
const QStringList list = m_gsettings->keys();
|
||||
|
||||
if (!list.contains("switch")) {
|
||||
if (!list.contains("switchor")) {
|
||||
return ;
|
||||
}
|
||||
m_gsettings->set("switch",signal);
|
||||
m_gsettings->set("switchor",signal);
|
||||
}
|
||||
|
||||
void KylinDBus::wifiCardSlot(bool signal)
|
||||
void KylinDBus::setWifiCardState(bool signal)
|
||||
{
|
||||
if(!m_gsettings) {
|
||||
return ;
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define KYLINDBUSINTERFACE_H
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QDebug>
|
||||
#include <QtDBus/QDBusConnection>
|
||||
|
@ -31,8 +32,8 @@ public:
|
|||
|
||||
void getWifiSwitchState();
|
||||
bool getSwitchStatus(QString key);
|
||||
void wifiSwitchSlot(bool signal);
|
||||
void wifiCardSlot(bool signal);
|
||||
void setWifiSwitchState(bool signal);
|
||||
void setWifiCardState(bool signal);
|
||||
|
||||
QDBusObjectPath wiredPath;
|
||||
QDBusObjectPath wirelessPath;
|
||||
|
|
|
@ -16,19 +16,19 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include "kylin-network-interface.h"
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <linux/route.h>
|
||||
#include <netinet/ether.h>
|
||||
#include <net/ethernet.h>
|
||||
#include<sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include "kylin-network-interface.h"
|
||||
#include <sys/syslog.h>
|
||||
|
||||
|
||||
//获取网络接口名
|
||||
ifname *kylin_network_get_ifacename()
|
||||
|
@ -83,7 +83,8 @@ ifname *kylin_network_get_ifacename()
|
|||
//获取所有网络连接
|
||||
conlist *kylin_network_get_conlist_info()
|
||||
{
|
||||
system("nmcli connection show > /tmp/conlist.txt");
|
||||
int status = system("nmcli connection show > /tmp/conlist.txt");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'kylin_network_get_conlist_info' failed");}
|
||||
char *filename="/tmp/conlist.txt";
|
||||
|
||||
FILE *confp;
|
||||
|
@ -187,7 +188,8 @@ conlist *kylin_network_get_conlist_info()
|
|||
//获取当前活动网络连接
|
||||
activecon *kylin_network_get_activecon_info()
|
||||
{
|
||||
system("nmcli connection show -active > /tmp/activecon.txt");
|
||||
int status = system("nmcli connection show -active > /tmp/activecon.txt");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show -active' in function 'kylin_network_get_activecon_info' failed");}
|
||||
char *filename="/tmp/activecon.txt";
|
||||
|
||||
FILE *activefp;
|
||||
|
@ -319,7 +321,8 @@ void kylin_network_create_new_ethernet(char *con_name,char *if_name)
|
|||
char str[100];
|
||||
char *net_type="ethernet";
|
||||
sprintf(str,"nmcli connection add con-name %s ifname %s type %s",con_name,if_name,net_type);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection add con-name' in function 'kylin_network_create_new_ethernet' failed");}
|
||||
}
|
||||
|
||||
// 创建新的wifi连接配置
|
||||
|
@ -328,7 +331,8 @@ void kylin_network_create_new_wifi(char *con_name, char *if_name)
|
|||
char str[200];
|
||||
sprintf(str, "nmcli connection add con-name '%s' ifname '%s' type wifi ssid '%s'",
|
||||
con_name, if_name, con_name);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection add con-name' in function 'kylin_network_create_new_wifi' failed");}
|
||||
}
|
||||
|
||||
//删除以太网连接
|
||||
|
@ -336,7 +340,8 @@ void kylin_network_del_ethernet_con(char *con_name)
|
|||
{
|
||||
char str[100];
|
||||
sprintf(str,"nmcli connection delete %s",con_name);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection delete' in function 'kylin_network_del_ethernet_con' failed");}
|
||||
}
|
||||
|
||||
//设置动态分配ip
|
||||
|
@ -345,7 +350,8 @@ void kylin_network_set_automethod(char *con_name)
|
|||
char str[100];
|
||||
char *automethod="auto";
|
||||
sprintf(str,"nmcli connection modify '%s' ipv4.method %s",con_name,automethod);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection modify' in function 'kylin_network_set_automethod' failed");}
|
||||
}
|
||||
|
||||
//设置手动分配ip
|
||||
|
@ -354,7 +360,8 @@ void kylin_network_set_manualmethod(char *con_name,char *ip)
|
|||
char str[100];
|
||||
char *method="manual";
|
||||
sprintf(str,"nmcli connection modify '%s' ipv4.method %s ipv4.address %s",con_name,method,ip);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection modify' in function 'kylin_network_set_manualmethod' failed");}
|
||||
}
|
||||
|
||||
// 设置手动分配all
|
||||
|
@ -362,7 +369,8 @@ void kylin_network_set_manualall(char *con_name, char *addr, char *mask, char *g
|
|||
char str[200];
|
||||
sprintf(str, "nmcli connection modify '%s' ipv4.method manual ipv4.address %s/%s ipv4.gateway %s ipv4.dns %s",
|
||||
con_name, addr, mask, gateway, dns);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection modify' in function 'kylin_network_set_manualall' failed");}
|
||||
}
|
||||
|
||||
//设置是否自动连接
|
||||
|
@ -378,7 +386,8 @@ void kylin_network_set_autoconnect(char *con_name,bool autocon)
|
|||
char *ac="yes";
|
||||
sprintf(str,"nmcli connection modify %s connection.autoconnect %s",con_name,ac);
|
||||
}
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection modify' in function 'kylin_network_set_autoconnect' failed");}
|
||||
}
|
||||
|
||||
//修改ip
|
||||
|
@ -386,7 +395,8 @@ void kylin_network_mod_ip(char *con_name,char *ip)
|
|||
{
|
||||
char str[100];
|
||||
sprintf(str,"nmcli connection modify %s ipv4.address %s",con_name,ip);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection modify' in function 'kylin_network_mod_ip' failed");}
|
||||
}
|
||||
|
||||
//修改网关
|
||||
|
@ -394,7 +404,8 @@ void kylin_network_mod_gateway(char *con_name,char *gw)
|
|||
{
|
||||
char str[100];
|
||||
sprintf(str,"nmcli connection modify %s ipv4.gateway %s",con_name,gw);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection modify' in function 'kylin_network_mod_gateway' failed");}
|
||||
}
|
||||
|
||||
//修改dns
|
||||
|
@ -402,7 +413,8 @@ void kylin_network_mod_dns(char *con_name,char *dns)
|
|||
{
|
||||
char str[100];
|
||||
sprintf(str,"nmcli connection modify %s ipv4.dns %s",con_name,dns);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection modify' in function 'kylin_network_mod_dns' failed");}
|
||||
}
|
||||
|
||||
//连接以太网
|
||||
|
@ -410,7 +422,8 @@ void kylin_network_set_con_up(char *con_name)
|
|||
{
|
||||
char str[100];
|
||||
sprintf(str,"nmcli connection up '%s'",con_name);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection up' in function 'kylin_network_set_con_up' failed");}
|
||||
}
|
||||
|
||||
//断开以太网
|
||||
|
@ -418,7 +431,8 @@ void kylin_network_set_con_down(char *con_name)
|
|||
{
|
||||
char str[100];
|
||||
sprintf(str,"nmcli connection down '%s'",con_name);
|
||||
system(str);
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection down' in function 'kylin_network_set_con_down' failed");}
|
||||
}
|
||||
|
||||
//连接wifi
|
||||
|
@ -426,8 +440,8 @@ void kylin_network_set_wifi_up(char *con_name,char *passwd)
|
|||
{
|
||||
char str[100];
|
||||
sprintf(str,"export LANG='en_US.UTF-8';export LANGUAGE='en_US';nmcli device wifi connect '%s' password '%s'", con_name,passwd);
|
||||
system(str);
|
||||
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device wifi connect' in function 'kylin_network_set_wifi_up' failed");}
|
||||
}
|
||||
|
||||
//断开wifi连接
|
||||
|
@ -435,14 +449,15 @@ void kylin_network_set_wifi_down(char *if_name)
|
|||
{
|
||||
char str[100];
|
||||
sprintf(str,"nmcli device disconnect '%s'",if_name);
|
||||
system(str);
|
||||
|
||||
int status = system(str);
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device disconnect' in function 'kylin_network_set_wifi_down' failed");}
|
||||
}
|
||||
|
||||
//获取wifi列表信息
|
||||
wifilist *kylin_network_get_wifilist_info()
|
||||
{
|
||||
system("nmcli device wifi > /tmp/wflist.txt");
|
||||
int status = system("nmcli device wifi > /tmp/wflist.txt");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device wifi' in function 'kylin_network_get_wifilist_info' failed");}
|
||||
char *filename="/tmp/wflist.txt";
|
||||
|
||||
FILE *wffp;
|
||||
|
@ -580,29 +595,29 @@ wifilist *kylin_network_get_wifilist_info()
|
|||
//启用联网
|
||||
void kylin_network_enable_networking()
|
||||
{
|
||||
system("nmcli networking on");
|
||||
|
||||
int status = system("nmcli networking on");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli networking on' in function 'kylin_network_enable_networking' failed");}
|
||||
}
|
||||
|
||||
//禁用联网
|
||||
void kylin_network_disable_networking()
|
||||
{
|
||||
system("nmcli networking off");
|
||||
|
||||
int status = system("nmcli networking off");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli networking off' in function 'kylin_network_disable_networking' failed");}
|
||||
}
|
||||
|
||||
//启用wifi
|
||||
void kylin_network_enable_wifi()
|
||||
{
|
||||
system("nmcli radio wifi on;sleep 3");
|
||||
|
||||
int status = system("nmcli radio wifi on;sleep 3");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli radio wifi on' in function 'kylin_network_enable_wifi' failed");}
|
||||
}
|
||||
|
||||
//禁用wifi
|
||||
void kylin_network_disable_wifi()
|
||||
{
|
||||
system("nmcli radio wifi off;sleep 2");
|
||||
|
||||
int status = system("nmcli radio wifi off;sleep 2");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli radio wifi off' in function 'kylin_network_disable_wifi' failed");}
|
||||
}
|
||||
|
||||
//获取ip地址
|
||||
|
@ -964,4 +979,3 @@ long *kylin_network_get_fifo(char *if_name)
|
|||
}
|
||||
return rtfifo;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,10 +20,11 @@
|
|||
#define __KYLINNETWORKINTERFACE_H__
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <malloc.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
|
|
|
@ -15,14 +15,9 @@ LANGUAGE = C++
|
|||
CONFIG += c++14
|
||||
CONFIG += qt warn_on
|
||||
CONFIG += release
|
||||
#CONFIG += link_pkgconfig
|
||||
#PKGCONFIG += libnm glib-2.0 gio-2.0 dbus-glib-1
|
||||
#PKGCONFIG += Qt5Svg
|
||||
|
||||
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += gsettings-qt
|
||||
#LIBS += -L/usr/lib/ -lgsettings-qt
|
||||
|
||||
target.path = /usr/bin
|
||||
target.source += $$TARGET
|
||||
|
@ -43,6 +38,7 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
|||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
QMAKE_CXXFLAGS += -Wno-unused-parameter
|
||||
QMAKE_CPPFLAGS *= $(shell dpkg-buildflags --get CPPFLAGS)
|
||||
QMAKE_CFLAGS *= $(shell dpkg-buildflags --get CFLAGS)
|
||||
QMAKE_CXXFLAGS *= $(shell dpkg-buildflags --get CXXFLAGS)
|
||||
|
|
201
mainwindow.cpp
201
mainwindow.cpp
|
@ -144,7 +144,6 @@ bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *r
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// 初始化控件、网络、定时器
|
||||
|
||||
|
@ -219,10 +218,10 @@ void MainWindow::createOtherUI()
|
|||
lbLoadDownImg->resize(16, 16);
|
||||
|
||||
lbLoadUp = new QLabel(ui->centralWidget);
|
||||
lbLoadUp->move(X_ITEM + 217, Y_TOP_ITEM + 32);
|
||||
lbLoadUp->move(X_ITEM + 207, Y_TOP_ITEM + 32);
|
||||
lbLoadUp->resize(65, 20);
|
||||
lbLoadUpImg = new QLabel(ui->centralWidget);
|
||||
lbLoadUpImg->move(X_ITEM + 200, Y_TOP_ITEM + 35);
|
||||
lbLoadUpImg->move(X_ITEM + 190, Y_TOP_ITEM + 35);
|
||||
lbLoadUpImg->resize(16, 16);
|
||||
|
||||
lbLoadDownImg->setStyleSheet("QLabel{background-image:url(:/res/x/load-down.png);}");
|
||||
|
@ -335,25 +334,29 @@ void MainWindow::getInitLanSlist()
|
|||
{
|
||||
oldLanSlist.append("TYPE DEVICE NAME ");
|
||||
QString strSlist;
|
||||
const int BUF_SIZE = 1024;
|
||||
char buf[BUF_SIZE];
|
||||
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
syslog(LOG_ERR, "Can't open the file /tmp/kylin-nm-connshow!");
|
||||
qDebug()<<"Can't open the file /tmp/kylin-nm-connshow!";
|
||||
FILE * p_file = NULL;
|
||||
|
||||
p_file = popen("nmcli connection show", "r");
|
||||
if (!p_file) {
|
||||
syslog(LOG_ERR, "Error occured when popen cmd 'nmcli connection show'");
|
||||
qDebug()<<"Error occured when popen cmd 'nmcli connection show";
|
||||
}
|
||||
QString txt = file.readAll();
|
||||
QStringList txtLine = txt.split("\n");
|
||||
file.close();
|
||||
foreach (QString line, txtLine) {
|
||||
|
||||
while (fgets(buf, BUF_SIZE, p_file) != NULL) {
|
||||
QString line(buf);
|
||||
if(line.indexOf("ethernet") != -1){
|
||||
QStringList subLine = line.split(" ");
|
||||
if (subLine[1].size() == 1){
|
||||
strSlist = "ethernet -- " + subLine[0]+ " " + subLine[1] + " ";
|
||||
}else{strSlist = "ethernet -- " + subLine[0] + " "; }
|
||||
// qDebug()<<strSlist;
|
||||
oldLanSlist.append(strSlist);
|
||||
}
|
||||
}
|
||||
pclose(p_file);
|
||||
}
|
||||
|
||||
// 初始化网络
|
||||
|
@ -420,15 +423,18 @@ void MainWindow::initNetwork()
|
|||
IFace *m_iface = m_bt->execGetIface();
|
||||
qDebug()<<"m_lstate ="<<m_iface->lstate<<" m_wstate ="<<m_iface->wstate ;
|
||||
|
||||
m_bt->lanDelete();
|
||||
m_bt->disConnLanOrWifi("ethernet");
|
||||
sleep(1);
|
||||
m_bt->lanDelete();
|
||||
m_bt->disConnLanOrWifi("ethernet");
|
||||
sleep(1);
|
||||
m_bt->lanDelete();
|
||||
m_bt->disConnLanOrWifi("ethernet");
|
||||
delete m_iface;
|
||||
m_bt->deleteLater();
|
||||
|
||||
system("nmcli networking on");
|
||||
char *chr = "nmcli networking on";
|
||||
Utils::m_system(chr);
|
||||
// int status = system("nmcli networking on");
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli networking on' in function 'initNetwork' failed");}
|
||||
|
||||
onBtnNetListClicked();
|
||||
|
||||
|
@ -613,38 +619,36 @@ void MainWindow::handleIconClicked()
|
|||
QRect availableGeometry = qApp->primaryScreen()->availableGeometry();
|
||||
QRect screenGeometry = qApp->primaryScreen()->geometry();
|
||||
|
||||
// qDebug()<<" ";
|
||||
// qDebug()<<"trayIcon:"<<trayIcon->geometry();
|
||||
// qDebug()<<"screenGeometry: "<<screenGeometry;
|
||||
// qDebug()<<"availableGeometry: "<<availableGeometry;
|
||||
|
||||
if (screenGeometry.width() == availableGeometry.width() && screenGeometry.height() == availableGeometry.height()){
|
||||
QDesktopWidget* desktopWidget = QApplication::desktop();
|
||||
|
||||
QRect deskMainRect = desktopWidget->availableGeometry(0);//获取可用桌面大小
|
||||
QRect screenMainRect = desktopWidget->screenGeometry(0);//获取设备屏幕大小
|
||||
QRect deskDupRect = desktopWidget->availableGeometry(1);//获取可用桌面大小
|
||||
QRect screenDupRect = desktopWidget->screenGeometry(1);//获取设备屏幕大小
|
||||
|
||||
// qDebug()<<" ";
|
||||
// qDebug()<<"trayIcon:"<<trayIcon->geometry();
|
||||
// qDebug()<<"screenGeometry: "<<screenGeometry;
|
||||
// qDebug()<<"availableGeometry: "<<availableGeometry;
|
||||
|
||||
// qDebug()<<"deskMainRect: "<<deskMainRect;
|
||||
// qDebug()<<"screenMainRect: "<<screenMainRect;
|
||||
// qDebug()<<"deskDupRect: "<<deskDupRect;
|
||||
// qDebug()<<"screenDupRect: "<<screenDupRect;
|
||||
|
||||
if (screenGeometry.width() == availableGeometry.width() && screenGeometry.height() == availableGeometry.height()){
|
||||
int n = objKyDBus->getTaskbarPos("position");
|
||||
int m = objKyDBus->getTaskbarHeight("height");
|
||||
|
||||
if(n == 0){
|
||||
//任务栏在下侧
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), availableGeometry.height() - this->height() - m);
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), screenMainRect.y() + availableGeometry.height() - this->height() - m);
|
||||
}else if(n == 1){
|
||||
//任务栏在上侧
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), screenGeometry.height() - availableGeometry.height() + m);
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), screenMainRect.y() + screenGeometry.height() - availableGeometry.height() + m);
|
||||
} else if (n == 2){
|
||||
//任务栏在左侧
|
||||
if (screenGeometry.x() == 0){
|
||||
this->move(screenGeometry.width() - availableGeometry.width() + m, screenMainRect.height() - this->height());//主屏在左侧
|
||||
this->move(screenGeometry.width() - availableGeometry.width() + m, screenMainRect.y() + screenMainRect.height() - this->height());//主屏在左侧
|
||||
}else{
|
||||
this->move(screenGeometry.width() - availableGeometry.width() + m,screenDupRect.y() + screenDupRect.height() - this->height());//主屏在右侧
|
||||
}
|
||||
|
@ -653,24 +657,24 @@ void MainWindow::handleIconClicked()
|
|||
if (screenGeometry.x() == 0){//主屏在左侧
|
||||
this->move(screenMainRect.width() + screenDupRect.width() - this->width() - m, screenDupRect.y() + screenDupRect.height() - this->height());
|
||||
}else{//主屏在右侧
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width() - m, screenMainRect.height() - this->height());
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width() - m, screenMainRect.y() + screenMainRect.height() - this->height());
|
||||
}
|
||||
}
|
||||
} else if(screenGeometry.width() == availableGeometry.width() ){
|
||||
if (trayIcon->geometry().y() > availableGeometry.height()/2){
|
||||
//任务栏在下侧
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), availableGeometry.height() - this->height());
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), screenMainRect.y() + availableGeometry.height() - this->height());
|
||||
}else{
|
||||
//任务栏在上侧
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), screenGeometry.height() - availableGeometry.height());
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), screenMainRect.y() + screenGeometry.height() - availableGeometry.height());
|
||||
}
|
||||
} else if (screenGeometry.height() == availableGeometry.height()){
|
||||
if (trayIcon->geometry().x() > availableGeometry.width()/2){
|
||||
//任务栏在右侧
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), screenGeometry.height() - this->height());
|
||||
this->move(availableGeometry.x() + availableGeometry.width() - this->width(), screenMainRect.y() + screenGeometry.height() - this->height());
|
||||
} else {
|
||||
//任务栏在左侧
|
||||
this->move(screenGeometry.width() - availableGeometry.width(), screenGeometry.height() - this->height());
|
||||
this->move(screenGeometry.width() - availableGeometry.width(), screenMainRect.y() + screenGeometry.height() - this->height());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -846,11 +850,11 @@ void MainWindow::onCarrierUpHandle()
|
|||
{
|
||||
wiredCableUpTimer->stop();
|
||||
BackThread *up_bt = new BackThread();
|
||||
up_bt->lanDelete();
|
||||
up_bt->disConnLanOrWifi("ethernet");
|
||||
sleep(1);
|
||||
up_bt->lanDelete();
|
||||
up_bt->disConnLanOrWifi("ethernet");
|
||||
sleep(1);
|
||||
up_bt->lanDelete();
|
||||
up_bt->disConnLanOrWifi("ethernet");
|
||||
up_bt->deleteLater();
|
||||
|
||||
this->stopLoading();
|
||||
|
@ -870,11 +874,11 @@ void MainWindow::onDeleteLan()
|
|||
{
|
||||
deleteLanTimer->stop();
|
||||
BackThread *btn_bt = new BackThread();
|
||||
btn_bt->lanDelete();
|
||||
btn_bt->disConnLanOrWifi("ethernet");
|
||||
sleep(1);
|
||||
btn_bt->lanDelete();
|
||||
btn_bt->disConnLanOrWifi("ethernet");
|
||||
sleep(1);
|
||||
btn_bt->lanDelete();
|
||||
btn_bt->disConnLanOrWifi("ethernet");
|
||||
btn_bt->deleteLater();
|
||||
|
||||
this->stopLoading();
|
||||
|
@ -998,7 +1002,7 @@ void MainWindow::onBtnWifiClicked(int flag)
|
|||
// 网络开关关闭时,点击Wifi开关时,程序先打开有线开关
|
||||
if (flag == 0) {
|
||||
if(checkWlOn()){
|
||||
//objKyDBus->wifiSwitchSlot(false);
|
||||
objKyDBus->setWifiSwitchState(false);
|
||||
lbTopWifiList->hide();
|
||||
btnAddNet->hide();
|
||||
|
||||
|
@ -1015,8 +1019,8 @@ void MainWindow::onBtnWifiClicked(int flag)
|
|||
if (is_fly_mode_on == 0){
|
||||
on_btnWifiList_clicked();
|
||||
is_stop_check_net_state = 1;
|
||||
//objKyDBus->wifiCardSlot(true);
|
||||
//objKyDBus->wifiSwitchSlot(true);
|
||||
objKyDBus->setWifiCardState(true);
|
||||
objKyDBus->setWifiSwitchState(true);
|
||||
lbTopWifiList->show();
|
||||
btnAddNet->show();
|
||||
|
||||
|
@ -1073,13 +1077,15 @@ void MainWindow::onBtnWifiClicked(int flag)
|
|||
btnAddNet->hide();
|
||||
|
||||
if (flag == 0) {
|
||||
//objKyDBus->wifiSwitchSlot(false);
|
||||
//objKyDBus->wifiCardSlot(false);
|
||||
objKyDBus->setWifiSwitchState(false);
|
||||
objKyDBus->setWifiCardState(false);
|
||||
}
|
||||
|
||||
QString txt(tr("please insert the wireless network adapter"));
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';notify-send '" + txt + "' -t 3800";
|
||||
system(cmd.toUtf8().data());
|
||||
int status = system(cmd.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'notify-send' in function 'onBtnWifiClicked' failed");}
|
||||
|
||||
disWifiStateKeep();
|
||||
}
|
||||
|
||||
|
@ -1087,15 +1093,6 @@ void MainWindow::onBtnWifiClicked(int flag)
|
|||
|
||||
void MainWindow::onBtnNetListClicked(int flag)
|
||||
{
|
||||
// if (this->ksnm->isExecutingGetWifiList ){
|
||||
// qDebug()<<"executing update Wifi list now, try again";
|
||||
// on_btnWifiList_pressed(); //当正在更新wifi列表时,点击无效
|
||||
// QString text(tr("update Wi-Fi list now, click again")); //"正在更新 Wi-Fi列表 请再次点击"
|
||||
// QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';notify-send '" + text + "...' -t 3800";
|
||||
// system(cmd.toUtf8().data());
|
||||
// return;
|
||||
// }
|
||||
|
||||
this->is_btnNetList_clicked = 1;
|
||||
this->is_btnWifiList_clicked = 0;
|
||||
|
||||
|
@ -1130,23 +1127,33 @@ void MainWindow::onBtnNetListClicked(int flag)
|
|||
this->startLoading();
|
||||
this->ksnm->execGetLanList();
|
||||
} else {
|
||||
system("nmcli connection show -active>/tmp/kylin-nm-connshow");
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
syslog(LOG_DEBUG, "Can't open the file /tmp/kylin-nm-connshow!");
|
||||
qDebug()<<"Can't open the file /tmp/kylin-nm-connshow!";
|
||||
const int BUF_SIZE = 1024;
|
||||
char buf[BUF_SIZE];
|
||||
|
||||
FILE * p_file = NULL;
|
||||
|
||||
p_file = popen("nmcli connection show -active", "r");
|
||||
if (!p_file) {
|
||||
syslog(LOG_ERR, "Error occured when popen cmd 'nmcli connection show'");
|
||||
qDebug()<<"Error occured when popen cmd 'nmcli connection show";
|
||||
}
|
||||
QString txt = file.readAll();
|
||||
if (txt.indexOf("ethernet") != -1){
|
||||
|
||||
while (fgets(buf, BUF_SIZE, p_file) != NULL) {
|
||||
QString line(buf);
|
||||
if(line.indexOf("ethernet") != -1){
|
||||
QString txt(tr("Abnormal connection exist, program will delete it"));//仍然有连接异常的有线网络,断开异常连接的网络
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';notify-send '" + txt + "...' -t 3800";
|
||||
system(cmd.toUtf8().data());
|
||||
int status = system(cmd.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'notify-send' in function 'onBtnNetListClicked' failed");}
|
||||
|
||||
is_stop_check_net_state = 1;
|
||||
this->startLoading();
|
||||
deleteLanTimer->start(1000);
|
||||
pclose(p_file);
|
||||
return;
|
||||
}
|
||||
}
|
||||
pclose(p_file);
|
||||
|
||||
delete topLanListWidget; // 清空top列表
|
||||
createTopLanUI(); //创建顶部有线网item
|
||||
|
@ -1652,7 +1659,10 @@ void MainWindow::updateWifiListDone(QStringList slist)
|
|||
|
||||
void MainWindow::on_btnAdvConf_clicked()
|
||||
{
|
||||
system("nm-connection-editor &");
|
||||
QProcess *qprocess = new QProcess(this);
|
||||
qprocess->start("nm-connection-editor &");
|
||||
// int status = system("nm-connection-editor &");
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nm-connection-editor &' in function 'on_btnAdvConf_clicked' failed");}
|
||||
}
|
||||
|
||||
void MainWindow::on_btnAdvConf_pressed()
|
||||
|
@ -1697,28 +1707,8 @@ void MainWindow::on_btnHotspot_clicked()
|
|||
} else {
|
||||
on_btnHotspotState();
|
||||
|
||||
QString strSlist;
|
||||
system("nmcli connection show -active>/tmp/kylin-nm-connshow");
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
syslog(LOG_ERR, "Can't open the file /tmp/kylin-nm-connshow!");
|
||||
qDebug()<<"Can't open the file /tmp/kylin-nm-connshow!";
|
||||
}
|
||||
|
||||
QString txt = file.readAll();
|
||||
QStringList txtLine = txt.split("\n");
|
||||
file.close();
|
||||
foreach (QString line, txtLine) {
|
||||
if(line.indexOf("wifi") != -1){
|
||||
QStringList subLine = line.split(" ");
|
||||
if (subLine[1].size() == 1){
|
||||
strSlist = subLine[0]+ " " + subLine[1];
|
||||
}else {
|
||||
strSlist = subLine[0];
|
||||
}
|
||||
kylin_network_set_con_down(strSlist.toUtf8().data());
|
||||
}
|
||||
} //end foreach
|
||||
BackThread objBT;
|
||||
objBT.disConnLanOrWifi("wifi");
|
||||
|
||||
sleep(2);
|
||||
on_btnWifiList_clicked();
|
||||
|
@ -2018,7 +2008,7 @@ void MainWindow::activeWifiDisconn()
|
|||
btt->moveToThread(tt);
|
||||
connect(tt, SIGNAL(finished()), tt, SLOT(deleteLater()));
|
||||
connect(tt, SIGNAL(started()), this, SLOT(activeStartLoading()));
|
||||
connect(this, SIGNAL(deleteRedundantNet()), btt, SLOT(redundantNetDeleted()));
|
||||
connect(this, SIGNAL(disConnSparedNet(QString)), btt, SLOT(disConnSparedNetSlot(QString)));
|
||||
connect(btt, SIGNAL(disFinish()), this, SLOT(activeGetWifiList()));
|
||||
connect(btt, SIGNAL(ttFinish()), tt, SLOT(quit()));
|
||||
tt->start();
|
||||
|
@ -2028,7 +2018,7 @@ void MainWindow::activeStartLoading()
|
|||
syslog(LOG_DEBUG, "Wi-Fi is disconnected");
|
||||
currSelNetName = "";
|
||||
//this->startLoading();
|
||||
emit this->deleteRedundantNet();
|
||||
emit this->disConnSparedNet("wifi");
|
||||
}
|
||||
void MainWindow::activeGetWifiList()
|
||||
{
|
||||
|
@ -2231,8 +2221,35 @@ void MainWindow::on_setNetSpeed()
|
|||
if (delta_rcv>=10000 || delta_rcv<0){delta_rcv = 0;}
|
||||
if (delta_tx>=10000 || delta_tx<0){delta_tx = 0;}
|
||||
|
||||
QString str_rcv = QString::number(delta_rcv/3) + "kb/s";
|
||||
QString str_tx = QString::number(delta_tx/3) + "kb/s";
|
||||
int rcv_num = delta_rcv/3;
|
||||
int tx_num = delta_tx/3;
|
||||
|
||||
QString str_rcv;
|
||||
QString str_tx;
|
||||
|
||||
if (rcv_num < 1000){
|
||||
str_rcv = QString::number(rcv_num) + "KB/s";
|
||||
} else {
|
||||
int remainder;
|
||||
if (rcv_num%1000 < 100) {
|
||||
remainder = 0;
|
||||
}else{
|
||||
remainder = (rcv_num%1000)/100;
|
||||
}
|
||||
str_rcv = QString::number(rcv_num/1000) + "." + QString::number(remainder) + "MB/s";
|
||||
}
|
||||
|
||||
if (tx_num < 1000){
|
||||
str_tx = QString::number(tx_num) + "KB/s";
|
||||
} else {
|
||||
int remainder;
|
||||
if (tx_num%1000 < 100) {
|
||||
remainder = 0;
|
||||
}else{
|
||||
remainder = (tx_num%1000)/100;
|
||||
}
|
||||
str_tx = QString::number(tx_num/1000) + "." + QString::number(remainder) + "MB/s";
|
||||
}
|
||||
|
||||
lbLoadDown->setText(str_rcv);
|
||||
lbLoadUp->setText(str_tx);
|
||||
|
@ -2256,7 +2273,8 @@ void MainWindow::connLanDone(int connFlag)
|
|||
this->ksnm->execGetLanList();
|
||||
QString txt(tr("Conn Ethernet Success"));
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';notify-send '" + txt + "' -t 3800";
|
||||
system(cmd.toUtf8().data());
|
||||
int status = system(cmd.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'notify-send' in function 'connLanDone' failed");}
|
||||
|
||||
//changeTimerState();
|
||||
//checkIfLanConnect->start(8000);
|
||||
|
@ -2267,7 +2285,9 @@ void MainWindow::connLanDone(int connFlag)
|
|||
this->is_wired_line_ready = 0; //without net line connect to computer
|
||||
QString txt(tr("Conn Ethernet Fail"));
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';notify-send '" + txt + "' -t 3800";
|
||||
system(cmd.toUtf8().data());
|
||||
int status = system(cmd.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'notify-send' in function 'connLanDone' failed");}
|
||||
|
||||
}
|
||||
|
||||
if(connFlag == 3){
|
||||
|
@ -2387,7 +2407,8 @@ void MainWindow::connWifiDone(int connFlag)
|
|||
this->ksnm->execGetWifiList();
|
||||
QString txt(tr("Conn Wifi Success"));
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';notify-send '" + txt + "' -t 3800";
|
||||
system(cmd.toUtf8().data());
|
||||
int status = system(cmd.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'notify-send' in function 'connWifiDone' failed");}
|
||||
|
||||
//changeTimerState();
|
||||
//checkIfWifiConnect->start(8000);
|
||||
|
|
37
mainwindow.h
37
mainwindow.h
|
@ -19,6 +19,21 @@
|
|||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include "ksimplenm.h"
|
||||
#include "loadingdiv.h"
|
||||
#include "confform.h"
|
||||
#include "kylin-dbus-interface.h"
|
||||
#include "kylin-network-interface.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/syslog.h>
|
||||
#include <unistd.h>
|
||||
#include <xcb/xcb.h>
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QWidget>
|
||||
#include <QLabel>
|
||||
|
@ -46,27 +61,13 @@
|
|||
#include <QStringList>
|
||||
#include <QToolTip>
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/syslog.h>
|
||||
#include <unistd.h>
|
||||
#include <xcb/xcb.h>
|
||||
|
||||
#include "ksimplenm.h"
|
||||
#include "loadingdiv.h"
|
||||
#include "utils.h"
|
||||
#include "confform.h"
|
||||
#include "kylin-dbus-interface.h"
|
||||
#include "kylin-network-interface.h"
|
||||
|
||||
#define W_LEFT_AREA 41
|
||||
#define W_VERTICAL_LINE 1 //左边竖线宽度
|
||||
#define W_RIGHT_AREA 438 //41 + 1 + 438 = 480
|
||||
#define L_VERTICAL_LINE_TO_ITEM 4 //竖线到item左侧的距离
|
||||
|
||||
#define X_LEFT_WIFI_BALL 412 //白色小球在左边
|
||||
#define X_RIGHT_WIFI_BALL 438 //白色小球在右边
|
||||
#define X_LEFT_WIFI_BALL 422 //白色小球在左边
|
||||
#define X_RIGHT_WIFI_BALL 448 //白色小球在右边
|
||||
#define Y_WIFI_BALL 22 //白色小球y坐标
|
||||
#define X_ITEM 46 //item到窗口左侧的距离 41 + 1 + 4 = 46
|
||||
#define W_ITEM 424
|
||||
|
@ -91,7 +92,7 @@
|
|||
|
||||
#define W_BTN_FUN 57
|
||||
#define H_BTN_FUN 14
|
||||
#define X_BTN_FUN 365
|
||||
#define X_BTN_FUN 371
|
||||
#define Y_BTN_FUN 87 //新建网络,加入网络按钮的宽高、x坐标、y坐标
|
||||
|
||||
#define W_NO_ITEM_TIP 220
|
||||
|
@ -292,7 +293,7 @@ private slots:
|
|||
void onBtnAddNetClicked();
|
||||
void onBtnCreateNetClicked();
|
||||
signals:
|
||||
void deleteRedundantNet();
|
||||
void disConnSparedNet(QString type);
|
||||
|
||||
void waitWifiStop();
|
||||
void waitLanStop();
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
<widget class="QLabel" name="lbBtnWifiBG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>410</x>
|
||||
<x>420</x>
|
||||
<y>20</y>
|
||||
<width>50</width>
|
||||
<height>24</height>
|
||||
|
@ -56,7 +56,7 @@
|
|||
<widget class="QPushButton" name="btnWifi">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>410</x>
|
||||
<x>420</x>
|
||||
<y>20</y>
|
||||
<width>50</width>
|
||||
<height>24</height>
|
||||
|
@ -147,7 +147,7 @@
|
|||
<widget class="QLabel" name="lbBtnWifiBall">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>438</x>
|
||||
<x>448</x>
|
||||
<y>22</y>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
|
@ -199,7 +199,7 @@
|
|||
<widget class="QLabel" name="lbWifiListBG">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1</x>
|
||||
<x>2</x>
|
||||
<y>57</y>
|
||||
<width>37</width>
|
||||
<height>37</height>
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "ui_oneconnform.h"
|
||||
#include "mainwindow.h"
|
||||
#include "wireless-security/dlgconnhidwifi.h"
|
||||
#include "utils.h"
|
||||
|
||||
extern int currentActWifiSignalLv;
|
||||
|
||||
|
@ -603,7 +604,9 @@ void OneConnForm::slotConnWifiResult(int connFlag){
|
|||
QString txt(tr("Conn Wifi Failed"));//"连接 Wifi 失败"
|
||||
syslog(LOG_DEBUG, "Try to connect wifi named %s, but failed, will delete it's configuration file", ui->lbName->text().toUtf8().data());
|
||||
QString cmd = "export LANG='en_US.UTF-8';export LANGUAGE='en_US';nmcli connection delete '" + ui->lbName->text() + "';notify-send '" + txt + "...' -t 3800";
|
||||
system(cmd.toUtf8().data());
|
||||
Utils::m_system(cmd.toUtf8().data());
|
||||
// int status = system(cmd.toUtf8().data());
|
||||
// if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection delete' in function 'slotConnWifiResult' failed");}
|
||||
}
|
||||
|
||||
// 设置全局变量,当前连接Wifi的信号强度
|
||||
|
|
58
utils.cpp
58
utils.cpp
|
@ -17,7 +17,60 @@
|
|||
*/
|
||||
|
||||
#include "utils.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <errno.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// The Utils class
|
||||
|
||||
Utils::Utils(){}
|
||||
|
||||
int Utils::m_system(char *cmd)
|
||||
{
|
||||
int status = 0;
|
||||
pid_t pid;
|
||||
|
||||
if ((pid = vfork()) <0){
|
||||
qDebug()<<"failed to create a subprocess by using vfork";
|
||||
syslog(LOG_ERR, "failed to create a subprocess by using vfork");
|
||||
status = -1;
|
||||
} else if (pid==0) {
|
||||
const char *new_argv[4];
|
||||
struct sigaction sa_cld;
|
||||
sa_cld.sa_handler = SIG_DFL;
|
||||
sa_cld.sa_flags = 0;
|
||||
|
||||
// 在子进程中放开SIGINT信号
|
||||
sigemptyset(&sa_cld.sa_mask);
|
||||
sigaction (SIGINT, &sa_cld, NULL);
|
||||
sigaction (SIGQUIT, &sa_cld, NULL);
|
||||
|
||||
new_argv[0] = "sh";
|
||||
new_argv[1] = "-c";
|
||||
new_argv[2] = cmd;
|
||||
new_argv[3] = NULL;
|
||||
|
||||
// execl("/bin/sh","sh","-c" ,cmd,(char *)0);
|
||||
if (execve("/bin/sh",(char *const *) new_argv, NULL) <0) {
|
||||
qDebug()<<"failed to execve a shell command in function m_system";
|
||||
syslog(LOG_ERR, "failed to execve %s! errno: %d\n",cmd, errno);
|
||||
exit(1);
|
||||
} else {
|
||||
exit(0);
|
||||
}
|
||||
} else {
|
||||
waitpid(pid,&status,0);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// The NetworkSpeed class, used to get network speed
|
||||
|
||||
NetworkSpeed::NetworkSpeed(QObject *parent) :QObject(parent){}
|
||||
|
||||
|
@ -76,7 +129,8 @@ int NetworkSpeed::getCurrentDownloadRates(char *netname, long *save_rate, long *
|
|||
}
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// The CustomStyle class, inherit from QProxyStyle, used to change style of control
|
||||
|
||||
CustomStyle::CustomStyle(const QString &proxyStyleName, QObject *parent) : QProxyStyle (proxyStyleName)
|
||||
{
|
||||
|
|
55
utils.h
55
utils.h
|
@ -1,6 +1,11 @@
|
|||
#ifndef UTILS_H
|
||||
#define UTILS_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QDebug>
|
||||
#include <QString>
|
||||
|
@ -15,18 +20,23 @@
|
|||
#include <QFile>
|
||||
#include <QApplication>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// The Utils class, used to do some assist function
|
||||
|
||||
class Utils
|
||||
{
|
||||
public:
|
||||
Utils();
|
||||
|
||||
static int m_system(char *cmd);
|
||||
|
||||
};
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// The UseQssFile class, set control style by using .qss file
|
||||
|
||||
/*!
|
||||
* \brief The UseQssFile class
|
||||
* \details
|
||||
* 通过QSS文件设置样式
|
||||
*/
|
||||
class UseQssFile
|
||||
{
|
||||
public:
|
||||
|
@ -42,13 +52,9 @@ public:
|
|||
};
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// The NetworkSpeed class, get the network upload and download speed
|
||||
|
||||
|
||||
/*!
|
||||
* \brief The NetworkSpeed class
|
||||
* \details
|
||||
* 该类通过获取前后时间的流量差,计算单位时间的网络速度
|
||||
*/
|
||||
class NetworkSpeed : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -61,22 +67,9 @@ public:
|
|||
|
||||
|
||||
|
||||
/*!
|
||||
* \brief The CustomStyle class
|
||||
* \details
|
||||
* 自定义QStyle
|
||||
* 基于QProxyStyle,默认使用QProxyStyle的实例绘制控件,你需要针对某一个控件重新实现若干对应的接口。
|
||||
* QProxyStyle可以从现有的qt style实例化,我们只需要知道这个style的名字即可。
|
||||
* 这种做法带来了不错的扩展性和自由度,因为我们不需要将某个style的代码直接引入我们的项目中,
|
||||
* 也能够“继承”这个style类进行二次开发。
|
||||
*
|
||||
* 下面的方法展现了QStyle的所有的接口,使用QStyle进行控件的绘制使得qt应用能够进行风格的切换,
|
||||
* 从而达到不修改项目源码却对应用外观产生巨大影响的效果。
|
||||
*
|
||||
* \note
|
||||
* 需要注意QStyle与QSS并不兼容,因为QSS本身其实上也是QStyle的一种实现,对一个控件而言,本身理论上只能
|
||||
* 在同一时间调用唯一一个QStyle进行绘制。
|
||||
*/
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// The CustomStyle class, inherit from class QProxyStyle, to change control style customize
|
||||
|
||||
class CustomStyle : public QProxyStyle
|
||||
{
|
||||
Q_OBJECT
|
||||
|
|
|
@ -74,7 +74,8 @@ DlgConnHidWifi::DlgConnHidWifi(int type, MainWindow *mainWindow, QWidget *parent
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem(tr("C_reate…")); //新建...
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifi' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
@ -193,7 +194,8 @@ void DlgConnHidWifi::changeWindow(){
|
|||
ui->btnConnect->setEnabled(false);
|
||||
}else if (ui->cbxConn->currentIndex() >= 1){
|
||||
QString currStr = "nmcli connection show " + ui->cbxConn->currentText() + " >/tmp/kylin-nm-connshow";
|
||||
system(currStr.toUtf8().data());
|
||||
int status = system(currStr.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'changeWindow' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
@ -240,7 +242,8 @@ void DlgConnHidWifi::on_btnConnect_clicked()
|
|||
do{
|
||||
sleep(1);
|
||||
QString cmd = "nmcli device wifi connect " + wifiName + " password '' hidden yes >/tmp/kylin-nm-btoutput";
|
||||
system(cmd.toUtf8().data());
|
||||
int status = system(cmd.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device wifi connect' in function 'on_btnConnect_clicked' failed");}
|
||||
|
||||
QFile file("/tmp/kylin-nm-btoutput");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
|
@ -279,7 +282,8 @@ void DlgConnHidWifi::slotStartLoading()
|
|||
void DlgConnHidWifi::on_execSecConn()
|
||||
{
|
||||
QString str = "nmcli device wifi connect " + strWifiname + " password ''";
|
||||
system(str.toUtf8().data());
|
||||
int status = system(str.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device wifi connect' in function 'on_execSecConn' failed");}
|
||||
connect(this, SIGNAL(sendMessage()), this,SLOT(emitSignal() ));
|
||||
QTimer::singleShot(3*1000, this, SLOT(emitSignal() ));
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
#include "ui_dlgconnhidwifileap.h"
|
||||
#include "kylinheadfile.h"
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
DlgConnHidWifiLeap::DlgConnHidWifiLeap(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::DlgConnHidWifiLeap)
|
||||
|
@ -73,7 +75,8 @@ DlgConnHidWifiLeap::DlgConnHidWifiLeap(QWidget *parent) :
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem(tr("C_reate…")); //新建...
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifiLeap' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
#include "ui_dlgconnhidwifisecfast.h"
|
||||
#include "kylinheadfile.h"
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
DlgConnHidWifiSecFast::DlgConnHidWifiSecFast(int type, QWidget *parent) :
|
||||
WepOrWpa(type),
|
||||
QDialog(parent),
|
||||
|
@ -93,7 +95,8 @@ DlgConnHidWifiSecFast::DlgConnHidWifiSecFast(int type, QWidget *parent) :
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem(tr("C_reate…")); //新建...
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifiSecFast' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
#include "ui_dlgconnhidwifisecleap.h"
|
||||
#include "kylinheadfile.h"
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
DlgConnHidWifiSecLeap::DlgConnHidWifiSecLeap(int type, QWidget *parent) :
|
||||
WepOrWpa(type),
|
||||
QDialog(parent),
|
||||
|
@ -79,7 +81,8 @@ DlgConnHidWifiSecLeap::DlgConnHidWifiSecLeap(int type, QWidget *parent) :
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem(tr("C_reate…")); //新建...
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifiSecLeap' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
#include "ui_dlgconnhidwifisecpeap.h"
|
||||
#include "kylinheadfile.h"
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
DlgConnHidWifiSecPeap::DlgConnHidWifiSecPeap(int type, QWidget *parent) :
|
||||
WepOrWpa(type),
|
||||
QDialog(parent),
|
||||
|
@ -104,7 +106,8 @@ DlgConnHidWifiSecPeap::DlgConnHidWifiSecPeap(int type, QWidget *parent) :
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem("新建...");
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifiSecPeap' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
#include "ui_dlgconnhidwifisecpwd.h"
|
||||
#include "kylinheadfile.h"
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
DlgConnHidWifiSecPwd::DlgConnHidWifiSecPwd(int type, QWidget *parent) :
|
||||
WepOrWpa(type),
|
||||
QDialog(parent),
|
||||
|
@ -80,7 +82,8 @@ DlgConnHidWifiSecPwd::DlgConnHidWifiSecPwd(int type, QWidget *parent) :
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem(tr("C_reate…")); //新建...
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifiSecPwd' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
#include "ui_dlgconnhidwifisectls.h"
|
||||
#include "kylinheadfile.h"
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
DlgConnHidWifiSecTls::DlgConnHidWifiSecTls(int type, QWidget *parent) :
|
||||
WepOrWpa(type),
|
||||
QDialog(parent),
|
||||
|
@ -103,7 +105,8 @@ DlgConnHidWifiSecTls::DlgConnHidWifiSecTls(int type, QWidget *parent) :
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem(tr("C_reate…")); //新建...
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifiSecTls' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
#include "ui_dlgconnhidwifisectunneltls.h"
|
||||
#include "kylinheadfile.h"
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
DlgConnHidWifiSecTunnelTLS::DlgConnHidWifiSecTunnelTLS(int type, QWidget *parent) :
|
||||
WepOrWpa(type),
|
||||
QDialog(parent),
|
||||
|
@ -101,7 +103,8 @@ DlgConnHidWifiSecTunnelTLS::DlgConnHidWifiSecTunnelTLS(int type, QWidget *parent
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem(tr("C_reate…")); //新建...
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifiSecTunnelTLS' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
#include "ui_dlgconnhidwifiwep.h"
|
||||
#include "kylinheadfile.h"
|
||||
|
||||
#include <sys/syslog.h>
|
||||
|
||||
DlgConnHidWifiWep::DlgConnHidWifiWep(int type, QWidget *parent) :
|
||||
WepPwdOrCode(type),
|
||||
QDialog(parent),
|
||||
|
@ -79,7 +81,8 @@ DlgConnHidWifiWep::DlgConnHidWifiWep(int type, QWidget *parent) :
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem(tr("C_reate…")); //新建...
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifiWep' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
|
|
@ -80,7 +80,8 @@ DlgConnHidWifiWpa::DlgConnHidWifiWpa(int type, MainWindow *mainWindow, QWidget *
|
|||
ui->btnConnect->setText(tr("Connect")); //连接
|
||||
|
||||
ui->cbxConn->addItem(tr("C_reate…")); //新建...
|
||||
system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
int status = system("nmcli connection show>/tmp/kylin-nm-connshow");
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'DlgConnHidWifiWpa' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
@ -200,7 +201,8 @@ void DlgConnHidWifiWpa::changeWindow(){
|
|||
connect(connHidWifi, SIGNAL(reSetWifiList() ), mw, SLOT(on_btnWifiList_clicked()) );
|
||||
}else if (ui->cbxConn->currentIndex() >= 1){
|
||||
QString currStr = "nmcli connection show " + ui->cbxConn->currentText() + " >/tmp/kylin-nm-connshow";
|
||||
system(currStr.toUtf8().data());
|
||||
int status = system(currStr.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli connection show' in function 'changeWindow' failed");}
|
||||
QFile file("/tmp/kylin-nm-connshow");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
||||
qDebug()<<"Can't open the file!";
|
||||
|
@ -251,7 +253,8 @@ void DlgConnHidWifiWpa::on_btnConnect_clicked()
|
|||
do{
|
||||
sleep(1);
|
||||
QString cmd = "nmcli device wifi connect " + wifiName + " password " + wifiPassword + " hidden yes >/tmp/kylin-nm-btoutput";
|
||||
system(cmd.toUtf8().data());
|
||||
int status = system(cmd.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device wifi connect' in function 'on_btnConnect_clicked' failed");}
|
||||
|
||||
QFile file("/tmp/kylin-nm-btoutput");
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
|
@ -308,7 +311,8 @@ void DlgConnHidWifiWpa::slotStartLoading()
|
|||
void DlgConnHidWifiWpa::on_execSecConn()
|
||||
{
|
||||
QString str = "nmcli device wifi connect " + strWifiname + " password " + strWifiPassword;
|
||||
system(str.toUtf8().data());
|
||||
int status = system(str.toUtf8().data());
|
||||
if (status != 0){ syslog(LOG_ERR, "execute 'nmcli device wifi connect' in function 'on_execSecConn' failed");}
|
||||
connect(this, SIGNAL(sendMessage()), this,SLOT(emitSignal() ));
|
||||
QTimer::singleShot(3*1000, this, SLOT(emitSignal() ));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue