fix(network): wired item visible

Change-Id: I4ca3e0deebb1a997c390dce7f29c17941fbecc9f
This commit is contained in:
listenerri 2018-08-06 22:30:33 +08:00
parent c115fd153f
commit 2380699131
Notes: gerrit 2018-08-07 12:50:12 +08:00
Verified+1: <jenkins@deepin.com>
Code-Review+2: listenerri <listenerri@gmail.com>
Submitted-by: listenerri <listenerri@gmail.com>
Submitted-at: Tue, 07 Aug 2018 12:50:11 +0800
Reviewed-on: https://cr.deepin.io/37451
Project: dde/dde-dock
Branch: refs/heads/master
2 changed files with 33 additions and 0 deletions

View File

@ -34,6 +34,7 @@ NetworkPlugin::NetworkPlugin(QObject *parent)
m_networkModel(nullptr),
m_networkWorker(nullptr),
m_delayRefreshTimer(new QTimer),
m_settings("deepin", "dde-dock-network"),
m_pluginLoaded(false)
{
@ -53,6 +54,8 @@ void NetworkPlugin::init(PluginProxyInterface *proxyInter)
{
m_proxyInter = proxyInter;
connect(m_delayRefreshTimer, &QTimer::timeout, this, &NetworkPlugin::refreshWiredItemVisible);
if (!pluginIsDisable()) {
loadPlugin();
}
@ -227,6 +230,34 @@ void NetworkPlugin::onDeviceListChanged(const QList<NetworkDevice *> devices)
wirelessItems.at(i)->setDeviceInfo(wirelessItemCount == 1 ? -1 : i + 1);
});
}
if (!m_delayRefreshTimer->isActive()) {
m_delayRefreshTimer->start(2000);
}
}
void NetworkPlugin::refreshWiredItemVisible()
{
bool hasWireless = false;
QList<WiredItem *> wiredItems;
for (auto item : m_itemsMap.values()) {
if (item->device()->type() == NetworkDevice::Wireless) {
hasWireless = true;
} else {
wiredItems.append(static_cast<WiredItem *>(item));
}
}
if (!hasWireless) {
return;
}
for (auto wiredItem : wiredItems) {
if (!wiredItem->device()->enabled()) {
m_proxyInter->itemRemoved(this, wiredItem->path());
}
}
}
DeviceItem *NetworkPlugin::itemByPath(const QString &path)

View File

@ -57,6 +57,7 @@ public:
private slots:
void onDeviceListChanged(const QList<dde::network::NetworkDevice *> devices);
void refreshWiredItemVisible();
void contextMenuRequested();
private:
@ -68,6 +69,7 @@ private:
dde::network::NetworkWorker *m_networkWorker;
QMap<QString, DeviceItem *> m_itemsMap;
QTimer *m_delayRefreshTimer;
QSettings m_settings;
bool m_pluginLoaded;