WiFi列表没有显示WiFi6/WiFi6+图标问题

This commit is contained in:
zhangyuanyuan1 2023-04-12 17:45:13 +08:00
parent 25f89beb20
commit a6498fc568
4 changed files with 50 additions and 12 deletions

View File

@ -35,17 +35,19 @@ const QString ENTERPRICE_TYPE = "802.1X";
const QString WPA1_AND_WPA2 = "WPA"; const QString WPA1_AND_WPA2 = "WPA";
const QString WPA3 = "WPA3"; const QString WPA3 = "WPA3";
WlanListItem::WlanListItem(KyWirelessNetItem &wirelessNetItem, QString device, bool isApMode, QWidget *parent) WlanListItem::WlanListItem(KyWirelessNetItem &wirelessNetItem, QString device, bool isApMode, bool isShowWifi6, QWidget *parent)
: WlanListItem(wirelessNetItem, device, parent) : WlanListItem(wirelessNetItem, device, parent)
{ {
m_isApMode = isApMode; m_isApMode = isApMode;
m_isShowWifi6 = isShowWifi6;
refreshIcon(false); // 额外刷新一次图标因为WlanListItem执行时m_isApMode尚未赋值 refreshIcon(false); // 额外刷新一次图标因为WlanListItem执行时m_isApMode尚未赋值
} }
WlanListItem::WlanListItem(KyWirelessNetItem &wirelessNetItem, QString device, QWidget *parent) : ListItem(parent) WlanListItem::WlanListItem(KyWirelessNetItem &wirelessNetItem, QString device, bool isShowWifi6, QWidget *parent) : ListItem(parent)
{ {
m_wlanDevice = device; m_wlanDevice = device;
m_wirelessNetItem = wirelessNetItem; m_wirelessNetItem = wirelessNetItem;
m_isShowWifi6 = isShowWifi6;
qDebug()<<"[WlanPage] wlan list item is created." << m_wirelessNetItem.m_NetSsid; qDebug()<<"[WlanPage] wlan list item is created." << m_wirelessNetItem.m_NetSsid;
@ -454,7 +456,9 @@ void WlanListItem::refreshIcon(bool isActivated)
int signalStrength = 0; int signalStrength = 0;
QString uni = ""; QString uni = "";
QString secuType = ""; QString secuType = "";
if (m_isShowWifi6) {
category = m_wirelessNetItem.getCategory(m_wirelessNetItem.m_uni); category = m_wirelessNetItem.getCategory(m_wirelessNetItem.m_uni);
}
signalStrength = m_wirelessNetItem.m_signalStrength; signalStrength = m_wirelessNetItem.m_signalStrength;
if (isActivated) { if (isActivated) {

View File

@ -54,8 +54,8 @@ class WlanListItem : public ListItem
{ {
Q_OBJECT Q_OBJECT
public: public:
WlanListItem(KyWirelessNetItem &wirelessNetItem, QString device, bool isApMode, QWidget *parent = nullptr); WlanListItem(KyWirelessNetItem &wirelessNetItem, QString device, bool isApMode, bool isShowWifi6, QWidget *parent = nullptr);
WlanListItem(KyWirelessNetItem &wirelessNetItem, QString device, QWidget *parent = nullptr); WlanListItem(KyWirelessNetItem &wirelessNetItem, QString device, bool isShowWifi6, QWidget *parent = nullptr);
WlanListItem(QWidget *parent = nullptr); WlanListItem(QWidget *parent = nullptr);
~WlanListItem(); ~WlanListItem();
@ -127,6 +127,7 @@ private:
bool m_forgetConnection = false; bool m_forgetConnection = false;
bool m_isApMode = false; bool m_isApMode = false;
bool m_isShowWifi6 = true;
protected Q_SLOTS: protected Q_SLOTS:
void onInfoButtonClicked(); void onInfoButtonClicked();

View File

@ -45,6 +45,7 @@ WlanPage::WlanPage(QWidget *parent) : TabPage(parent)
m_connectResource = new KyConnectResourse(this); m_connectResource = new KyConnectResourse(this);
m_wirelessConnectOpreation = new KyWirelessConnectOperation(this); m_wirelessConnectOpreation = new KyWirelessConnectOperation(this);
checkShowWifi6();
initDevice(); initDevice();
initWlanUI(); initWlanUI();
initWlanSwitchState(); initWlanSwitchState();
@ -192,6 +193,22 @@ bool WlanPage::getWirelessEnable()
return m_wirelessConnectOpreation->getWirelessEnabled(); return m_wirelessConnectOpreation->getWirelessEnabled();
} }
void WlanPage::checkShowWifi6()
{
//990下不显示wifi6 wifi6+图标
QProcess * processCpuinfo = new QProcess(this);
processCpuinfo->start(QString("cat /proc/cpuinfo"));
connect(processCpuinfo, static_cast<void(QProcess::*)(int,QProcess::ExitStatus)>(&QProcess::finished), this, [ = ]() {
processCpuinfo->deleteLater();
});
processCpuinfo->waitForFinished();
QString ctrCpuinfo = processCpuinfo->readAll();
if (ctrCpuinfo.indexOf("HUAWEI Kirin 990") != -1) {
//HW990上不显示wifi6/6+
m_showWifi6 = false;
}
}
void WlanPage::initWlanSwitchState() void WlanPage::initWlanSwitchState()
{ {
if (m_devList.isEmpty()) { if (m_devList.isEmpty()) {
@ -292,7 +309,8 @@ QListWidgetItem *WlanPage::addNewItem(KyWirelessNetItem &wirelessNetItem,
WlanListItem *p_wlanItem = new WlanListItem( WlanListItem *p_wlanItem = new WlanListItem(
wirelessNetItem, wirelessNetItem,
m_currentDevice, m_currentDevice,
m_connectResource->isApConnection(wirelessNetItem.m_connectUuid)); m_connectResource->isApConnection(wirelessNetItem.m_connectUuid),
m_showWifi6);
connect(p_wlanItem, &WlanListItem::itemHeightChanged, this, &WlanPage::onItemHeightChanged); connect(p_wlanItem, &WlanListItem::itemHeightChanged, this, &WlanPage::onItemHeightChanged);
connect(p_wlanItem, &WlanListItem::detailShow, this, &WlanPage::showDetailPage); connect(p_wlanItem, &WlanListItem::detailShow, this, &WlanPage::showDetailPage);
@ -309,7 +327,7 @@ QListWidgetItem *WlanPage::insertNewItem(KyWirelessNetItem &wirelessNetItem,
QListWidget *wirelessListWidget, QListWidget *wirelessListWidget,
int row) int row)
{ {
WlanListItem *p_wlanItem = new WlanListItem(wirelessNetItem, m_currentDevice); WlanListItem *p_wlanItem = new WlanListItem(wirelessNetItem, m_currentDevice, m_showWifi6);
connect(p_wlanItem, &WlanListItem::itemHeightChanged, this, &WlanPage::onItemHeightChanged); connect(p_wlanItem, &WlanListItem::itemHeightChanged, this, &WlanPage::onItemHeightChanged);
connect(p_wlanItem, &WlanListItem::detailShow, this, &WlanPage::showDetailPage); connect(p_wlanItem, &WlanListItem::detailShow, this, &WlanPage::showDetailPage);
@ -330,7 +348,7 @@ QListWidgetItem *WlanPage::insertNewItemWithSort(KyWirelessNetItem &wirelessNetI
// qDebug()<< "insertNewItemWithSort" << wirelessNetItem.m_NetSsid // qDebug()<< "insertNewItemWithSort" << wirelessNetItem.m_NetSsid
// <<"sort item config" << wirelessNetItem.m_isConfigured // <<"sort item config" << wirelessNetItem.m_isConfigured
// << "signal strength" << wirelessNetItem.m_signalStrength; // << "signal strength" << wirelessNetItem.m_signalStrength;
WlanListItem *p_sortWlanItem = new WlanListItem(wirelessNetItem, m_currentDevice); WlanListItem *p_sortWlanItem = new WlanListItem(wirelessNetItem, m_currentDevice, m_showWifi6);
connect(p_sortWlanItem, &WlanListItem::itemHeightChanged, this, &WlanPage::onItemHeightChanged); connect(p_sortWlanItem, &WlanListItem::itemHeightChanged, this, &WlanPage::onItemHeightChanged);
connect(p_sortWlanItem, &WlanListItem::detailShow, this, &WlanPage::showDetailPage); connect(p_sortWlanItem, &WlanListItem::detailShow, this, &WlanPage::showDetailPage);
@ -527,12 +545,17 @@ void WlanPage::initWlanArea()
void WlanPage::onWlanAdded(QString interface, KyWirelessNetItem &item) void WlanPage::onWlanAdded(QString interface, KyWirelessNetItem &item)
{ {
//for dbus //for dbus
int category = 0;
if (m_showWifi6) {
category = item.getCategory(item.m_uni);
}
QStringList info; QStringList info;
info << item.m_NetSsid info << item.m_NetSsid
<< QString::number(item.m_signalStrength) << QString::number(item.m_signalStrength)
<< item.m_secuType << item.m_secuType
<< (m_connectResource->isApConnection(item.m_connectUuid) ? IsApConnection : NotApConnection) << (m_connectResource->isApConnection(item.m_connectUuid) ? IsApConnection : NotApConnection)
<< QString::number(item.getCategory(item.m_uni)); << QString::number(category);
Q_EMIT wlanAdd(interface, info); Q_EMIT wlanAdd(interface, info);
if (interface != m_currentDevice) { if (interface != m_currentDevice) {
@ -1204,7 +1227,7 @@ void WlanPage::onRefreshIconTimer()
int takeRow = m_inactivatedNetListWidget->row(p_sortListWidgetItem); int takeRow = m_inactivatedNetListWidget->row(p_sortListWidgetItem);
m_inactivatedNetListWidget->takeItem(takeRow); m_inactivatedNetListWidget->takeItem(takeRow);
WlanListItem *p_sortWlanItem = new WlanListItem(sortItem, m_currentDevice); WlanListItem *p_sortWlanItem = new WlanListItem(sortItem, m_currentDevice, m_showWifi6);
connect(p_sortWlanItem, &WlanListItem::itemHeightChanged, this, &WlanPage::onItemHeightChanged); connect(p_sortWlanItem, &WlanListItem::itemHeightChanged, this, &WlanPage::onItemHeightChanged);
connect(p_sortWlanItem, &WlanListItem::detailShow, this, &WlanPage::showDetailPage); connect(p_sortWlanItem, &WlanListItem::detailShow, this, &WlanPage::showDetailPage);
m_inactivatedNetListWidget->insertItem(sortRow, p_sortListWidgetItem); m_inactivatedNetListWidget->insertItem(sortRow, p_sortListWidgetItem);
@ -1255,8 +1278,11 @@ void WlanPage::getWirelessList(QMap<QString, QVector<QStringList> > &map)
QString uni,secuType; QString uni,secuType;
if (m_netDeviceResource->getActiveConnectionInfo(iter.key(), signalStrength, uni, secuType)) { if (m_netDeviceResource->getActiveConnectionInfo(iter.key(), signalStrength, uni, secuType)) {
if (m_showWifi6) {
category = data.getCategory(uni); category = data.getCategory(uni);
} }
}
vector.append(QStringList() << data.m_NetSsid vector.append(QStringList() << data.m_NetSsid
<< QString::number(signalStrength) << QString::number(signalStrength)
<< secuType << secuType
@ -1275,11 +1301,15 @@ void WlanPage::getWirelessList(QMap<QString, QVector<QStringList> > &map)
if (itemData.m_NetSsid == activeSsid) { if (itemData.m_NetSsid == activeSsid) {
continue; continue;
} }
int category = 0;
if (m_showWifi6) {
category = itemData.getCategory(itemData.m_uni);
}
vector.append(QStringList()<<itemData.m_NetSsid vector.append(QStringList()<<itemData.m_NetSsid
<< QString::number(itemData.m_signalStrength) << QString::number(itemData.m_signalStrength)
<< itemData.m_secuType << itemData.m_secuType
<< (m_connectResource->isApConnection(itemData.m_connectUuid) ? IsApConnection : NotApConnection) << (m_connectResource->isApConnection(itemData.m_connectUuid) ? IsApConnection : NotApConnection)
<< QString::number(itemData.getCategory(itemData.m_uni))); << QString::number(category));
} }
map.insert(iter.key(), vector); map.insert(iter.key(), vector);

View File

@ -210,6 +210,9 @@ private:
} }
} }
void checkShowWifi6();
bool m_showWifi6 = true;
private: private:
QMap<QString, QListWidgetItem*> m_wirelessNetItemMap; QMap<QString, QListWidgetItem*> m_wirelessNetItemMap;
QMap<QString, QListWidgetItem*> m_activateConnectionItemMap; QMap<QString, QListWidgetItem*> m_activateConnectionItemMap;