fix: active connection info invalid

Change-Id: I96c040230ce47b3a4ccd0ac7a2a90af1dd2883b7
This commit is contained in:
listenerri 2018-07-16 20:30:18 +08:00
parent af5b7bfa98
commit e55d595d1a
Notes: gerrit 2018-07-19 17:33:29 +08:00
Verified+1: <jenkins@deepin.com>
Code-Review+2: listenerri <listenerri@gmail.com>
Submitted-by: listenerri <listenerri@gmail.com>
Submitted-at: Thu, 19 Jul 2018 17:33:29 +0800
Reviewed-on: https://cr.deepin.io/36788
Project: dde/dde-dock
Branch: refs/heads/master
3 changed files with 12 additions and 4 deletions

View File

@ -48,7 +48,13 @@ WirelessItem::WirelessItem(WirelessDevice *device)
connect(m_device, static_cast<void (NetworkDevice::*) (const QString &statStr) const>(&NetworkDevice::statusChanged), m_refershTimer, static_cast<void (QTimer::*) ()>(&QTimer::start));
connect(static_cast<WirelessDevice *>(m_device), &WirelessDevice::activeApInfoChanged, m_refershTimer, static_cast<void (QTimer::*) ()>(&QTimer::start));
connect(static_cast<WirelessDevice *>(m_device), &WirelessDevice::activeConnectionChanged, m_refershTimer, static_cast<void (QTimer::*) ()>(&QTimer::start));
connect(m_refershTimer, &QTimer::timeout, this, static_cast<void (WirelessItem::*)()>(&WirelessItem::update));
connect(m_refershTimer, &QTimer::timeout, [=] {
if (m_device->status() == NetworkDevice::Activated && static_cast<WirelessDevice *>(m_device)->activeApInfo().isEmpty()) {
Q_EMIT queryActiveConnInfo();
return;
}
update();
});
//QMetaObject::invokeMethod(this, "init", Qt::QueuedConnection);
init();
@ -169,9 +175,7 @@ const QPixmap WirelessItem::iconPix(const Dock::DisplayMode displayMode, const i
if (state == NetworkDevice::Activated)
{
const auto &activeApInfo = static_cast<WirelessDevice *>(m_device)->activeApInfo();
if (activeApInfo.isEmpty()) {
m_refershTimer->start();
} else {
if (!activeApInfo.isEmpty()) {
strength = activeApInfo.value("Strength").toInt();
m_refershTimer->stop();
}

View File

@ -56,6 +56,7 @@ Q_SIGNALS:
void requestDeactiveAP(const QString &devPath) const;
void feedSecret(const QString &connectionPath, const QString &settingName, const QString &password, const bool autoConnect);
void cancelSecret(const QString &connectionPath, const QString &settingName);
void queryActiveConnInfo();
protected:
bool eventFilter(QObject *o, QEvent *e);

View File

@ -175,6 +175,8 @@ void NetworkPlugin::onDeviceListChanged(const QList<NetworkDevice *> devices)
item = new WirelessItem(static_cast<WirelessDevice *>(device));
wirelessItems.append(static_cast<WirelessItem *>(item));
connect(static_cast<WirelessItem *>(item), &WirelessItem::queryActiveConnInfo,
m_networkWorker, &NetworkWorker::queryActiveConnInfo);
connect(static_cast<WirelessItem *>(item), &WirelessItem::requestActiveAP,
m_networkWorker, &NetworkWorker::activateAccessPoint);
connect(static_cast<WirelessItem *>(item), &WirelessItem::requestDeactiveAP,
@ -188,6 +190,7 @@ void NetworkPlugin::onDeviceListChanged(const QList<NetworkDevice *> devices)
static_cast<WirelessItem *>(item), &WirelessItem::onNeedSecrets);
connect(m_networkModel, &NetworkModel::needSecretsFinished,
static_cast<WirelessItem *>(item), &WirelessItem::onNeedSecretsFinished);
m_networkWorker->queryAccessPoints(path);
break;
default: