Merge branch '2303bug' into 'yhkylin/v101'

fix bug #156268 WiFi列表没有显示WiFi6/WiFi6+图标

See merge request kylinos-src/kylin-nm!142
This commit is contained in:
赵世旭 2023-04-13 06:26:37 +00:00
commit 423cc1dce8
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 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)
{
m_isApMode = isApMode;
m_isShowWifi6 = isShowWifi6;
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_wirelessNetItem = wirelessNetItem;
m_isShowWifi6 = isShowWifi6;
qDebug()<<"[WlanPage] wlan list item is created." << m_wirelessNetItem.m_NetSsid;
@ -454,7 +456,9 @@ void WlanListItem::refreshIcon(bool isActivated)
int signalStrength = 0;
QString uni = "";
QString secuType = "";
category = m_wirelessNetItem.getCategory(m_wirelessNetItem.m_uni);
if (m_isShowWifi6) {
category = m_wirelessNetItem.getCategory(m_wirelessNetItem.m_uni);
}
signalStrength = m_wirelessNetItem.m_signalStrength;
if (isActivated) {

View File

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

View File

@ -45,6 +45,7 @@ WlanPage::WlanPage(QWidget *parent) : TabPage(parent)
m_connectResource = new KyConnectResourse(this);
m_wirelessConnectOpreation = new KyWirelessConnectOperation(this);
checkShowWifi6();
initDevice();
initWlanUI();
initWlanSwitchState();
@ -192,6 +193,22 @@ bool WlanPage::getWirelessEnable()
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()
{
if (m_devList.isEmpty()) {
@ -292,7 +309,8 @@ QListWidgetItem *WlanPage::addNewItem(KyWirelessNetItem &wirelessNetItem,
WlanListItem *p_wlanItem = new WlanListItem(
wirelessNetItem,
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::detailShow, this, &WlanPage::showDetailPage);
@ -309,7 +327,7 @@ QListWidgetItem *WlanPage::insertNewItem(KyWirelessNetItem &wirelessNetItem,
QListWidget *wirelessListWidget,
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::detailShow, this, &WlanPage::showDetailPage);
@ -330,7 +348,7 @@ QListWidgetItem *WlanPage::insertNewItemWithSort(KyWirelessNetItem &wirelessNetI
// qDebug()<< "insertNewItemWithSort" << wirelessNetItem.m_NetSsid
// <<"sort item config" << wirelessNetItem.m_isConfigured
// << "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::detailShow, this, &WlanPage::showDetailPage);
@ -527,12 +545,17 @@ void WlanPage::initWlanArea()
void WlanPage::onWlanAdded(QString interface, KyWirelessNetItem &item)
{
//for dbus
int category = 0;
if (m_showWifi6) {
category = item.getCategory(item.m_uni);
}
QStringList info;
info << item.m_NetSsid
<< QString::number(item.m_signalStrength)
<< item.m_secuType
<< (m_connectResource->isApConnection(item.m_connectUuid) ? IsApConnection : NotApConnection)
<< QString::number(item.getCategory(item.m_uni));
<< QString::number(category);
Q_EMIT wlanAdd(interface, info);
if (interface != m_currentDevice) {
@ -1207,7 +1230,7 @@ void WlanPage::onRefreshIconTimer()
int takeRow = m_inactivatedNetListWidget->row(p_sortListWidgetItem);
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::detailShow, this, &WlanPage::showDetailPage);
m_inactivatedNetListWidget->insertItem(sortRow, p_sortListWidgetItem);
@ -1258,7 +1281,10 @@ void WlanPage::getWirelessList(QMap<QString, QVector<QStringList> > &map)
QString uni,secuType;
if (m_netDeviceResource->getActiveConnectionInfo(iter.key(), signalStrength, uni, secuType)) {
category = data.getCategory(uni);
if (m_showWifi6) {
category = data.getCategory(uni);
}
}
vector.append(QStringList() << data.m_NetSsid
<< QString::number(signalStrength)
@ -1278,11 +1304,15 @@ void WlanPage::getWirelessList(QMap<QString, QVector<QStringList> > &map)
if (itemData.m_NetSsid == activeSsid) {
continue;
}
int category = 0;
if (m_showWifi6) {
category = itemData.getCategory(itemData.m_uni);
}
vector.append(QStringList()<<itemData.m_NetSsid
<< QString::number(itemData.m_signalStrength)
<< itemData.m_secuType
<< (m_connectResource->isApConnection(itemData.m_connectUuid) ? IsApConnection : NotApConnection)
<< QString::number(itemData.getCategory(itemData.m_uni)));
<< QString::number(category));
}
map.insert(iter.key(), vector);

View File

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