mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
fix: 解决无线线网络IP冲突时,任务栏图标是有线网络的图标
需求中没有说明ip冲突的图标需要区分有线无线的情况,现在调用dde-network-util传过来的数据判断冲突的ip是属于有线还是无线网络并更新ip冲突时网络图标. Log: 修复ip冲突时网络图标异常问题 Bug: https://pms.uniontech.com/zentao/bug-view-90286.html Change-Id: Ib1b709b1ec18a6da307c79d6cebe9db1ec62d700
This commit is contained in:
parent
23b4f44330
commit
991a86fd28
@ -20,7 +20,6 @@
|
||||
extern const int ItemWidth;
|
||||
extern const int ItemMargin;
|
||||
extern const int ItemHeight;
|
||||
const int SeparatorItemHeight = 2;
|
||||
const QString MenueEnable = "enable";
|
||||
const QString MenueWiredEnable = "wireEnable";
|
||||
const QString MenueWirelessEnable = "wirelessEnable";
|
||||
@ -354,7 +353,25 @@ void NetworkItem::refreshIcon()
|
||||
|
||||
if (m_ipConflict) {
|
||||
stateString = "offline";
|
||||
iconString = QString("network-%1-symbolic").arg(stateString);
|
||||
// 当无线网络和有线网络并存的情况,显示无线网络,因此无线网络后更新状态
|
||||
// 所以先从从有线网络中查找,查找失败,然后再从无线中查找,
|
||||
|
||||
// 有线
|
||||
foreach(auto ip, getActiveWiredList()) {
|
||||
if (m_ipAndMacMap.keys().contains(ip)) {
|
||||
iconString = QString("network-%1-symbolic").arg(stateString);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 无线
|
||||
foreach(auto ip, getActiveWirelessList()) {
|
||||
if (m_ipAndMacMap.keys().contains(ip)) {
|
||||
iconString = QString("network-wireless-%1-symbolic").arg(stateString);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (height() <= PLUGIN_BACKGROUND_MIN_SIZE
|
||||
&& DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType)
|
||||
iconString.append(PLUGIN_MIN_ICON_NAME);
|
||||
@ -1486,6 +1503,46 @@ const QStringList NetworkItem::currentIpList()
|
||||
return strIpAddress;
|
||||
}
|
||||
|
||||
const QStringList NetworkItem::getActiveWiredList()
|
||||
{
|
||||
QStringList wiredIpList;
|
||||
for (auto wiredItem : m_wiredItems.values()) {
|
||||
if (wiredItem) {
|
||||
auto info = wiredItem->getActiveWiredConnectionInfo();
|
||||
if (!info.contains("Ip4"))
|
||||
continue;
|
||||
|
||||
const QJsonObject ipv4 = info.value("Ip4").toObject();
|
||||
if (!ipv4.contains("Address"))
|
||||
continue;
|
||||
|
||||
if (!wiredIpList.contains(ipv4.value("Address").toString()))
|
||||
wiredIpList.append(ipv4.value("Address").toString());
|
||||
}
|
||||
}
|
||||
return wiredIpList;
|
||||
}
|
||||
|
||||
const QStringList NetworkItem::getActiveWirelessList()
|
||||
{
|
||||
QStringList wirelessIpList;
|
||||
for (auto wirelessItem : m_wirelessItems.values()) {
|
||||
if (wirelessItem) {
|
||||
auto info = wirelessItem->getActiveWirelessConnectionInfo();
|
||||
if (!info.contains("Ip4"))
|
||||
continue;
|
||||
|
||||
const QJsonObject ipv4 = info.value("Ip4").toObject();
|
||||
if (!ipv4.contains("Address"))
|
||||
continue;
|
||||
|
||||
if (!wirelessIpList.contains(ipv4.value("Address").toString()))
|
||||
wirelessIpList.append(ipv4.value("Address").toString());
|
||||
}
|
||||
}
|
||||
return wirelessIpList;
|
||||
}
|
||||
|
||||
void NetworkItem::wirelessScan()
|
||||
{
|
||||
if (m_loadingIndicator->loading())
|
||||
|
@ -70,6 +70,8 @@ public:
|
||||
bool isShowControlCenter();
|
||||
|
||||
const QStringList currentIpList();
|
||||
const QStringList getActiveWiredList();
|
||||
const QStringList getActiveWirelessList();
|
||||
|
||||
public slots:
|
||||
void updateSelf();
|
||||
|
Loading…
x
Reference in New Issue
Block a user