diff options
Diffstat (limited to 'src/networksettings/connman/qnetworksettingsservice_p.cpp')
-rw-r--r-- | src/networksettings/connman/qnetworksettingsservice_p.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/networksettings/connman/qnetworksettingsservice_p.cpp b/src/networksettings/connman/qnetworksettingsservice_p.cpp index 3912ec2..65653aa 100644 --- a/src/networksettings/connman/qnetworksettingsservice_p.cpp +++ b/src/networksettings/connman/qnetworksettingsservice_p.cpp @@ -396,8 +396,14 @@ void QNetworkSettingsServicePrivate::updateProperty(const QString& key, const QV } else if (key == PropertyState) { QString value = qdbus_cast<QString>(val); + QNetworkSettingsState oldState; + oldState.setState(m_state.state()); value >> m_state; emit q->stateChanged(); + if (m_state.state() == QNetworkSettingsState::Ready && m_type.type() == QNetworkSettingsType::Wifi) + emit q->serviceConnected(q); + if (m_state.state() == QNetworkSettingsState::Disconnect && m_type.type() == QNetworkSettingsType::Wifi) + emit q->serviceDisconnected(q); } else if (key == PropertyName) { m_name = qdbus_cast<QString>(val); @@ -407,6 +413,10 @@ void QNetworkSettingsServicePrivate::updateProperty(const QString& key, const QV QString value = qdbus_cast<QString>(val); value >> m_type; emit q->typeChanged(); + if (m_state.state() == QNetworkSettingsState::Ready && m_type.type() == QNetworkSettingsType::Wifi) + emit q->serviceConnected(q); + if (m_state.state() == QNetworkSettingsState::Disconnect && m_type.type() == QNetworkSettingsType::Wifi) + emit q->serviceDisconnected(q); } else if (key == PropertyStrength) { m_wifiConfig.setSignalStrength(val.toInt()); |