summaryrefslogtreecommitdiffstats
path: root/src/networksettings/connman/qnetworksettingsservice_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/networksettings/connman/qnetworksettingsservice_p.cpp')
-rw-r--r--src/networksettings/connman/qnetworksettingsservice_p.cpp10
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());