diff options
author | Ville Voutilainen <ville.voutilainen@qt.io> | 2018-03-22 16:52:51 +0200 |
---|---|---|
committer | Ville Voutilainen <ville.voutilainen@qt.io> | 2018-03-23 10:59:34 +0000 |
commit | 8f3dfc1e6364fbd1aaf62d2c0aba0e4d6ac1742f (patch) | |
tree | 81f48c580af106b9ec20a66b5bed7af207d5b8a1 | |
parent | ade83ab2c5dc02a0e59c4abcf528bc3592179137 (diff) |
Make network reconnections after passphrase change work better
Task-number: QTBUG-66280
Change-Id: Ifeef92fde779d924bc32fe50279ba93bf1428128
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
5 files changed, 23 insertions, 0 deletions
diff --git a/src/networksettings/connman/qnetworksettingsservice_p.cpp b/src/networksettings/connman/qnetworksettingsservice_p.cpp index f7e6ef1..6538cc1 100644 --- a/src/networksettings/connman/qnetworksettingsservice_p.cpp +++ b/src/networksettings/connman/qnetworksettingsservice_p.cpp @@ -326,6 +326,13 @@ void QNetworkSettingsServicePrivate::disconnectService() } +void QNetworkSettingsServicePrivate::removeService() +{ + if (m_service) + m_service->Remove(); + +} + void QNetworkSettingsServicePrivate::setPlaceholderState(bool placeholderState) { m_placeholderState = placeholderState; diff --git a/src/networksettings/connman/qnetworksettingsservice_p.h b/src/networksettings/connman/qnetworksettingsservice_p.h index 2e12179..362aea4 100644 --- a/src/networksettings/connman/qnetworksettingsservice_p.h +++ b/src/networksettings/connman/qnetworksettingsservice_p.h @@ -76,6 +76,7 @@ protected: void setupQNetworkSettingsProxy(); void connectService(); void disconnectService(); + void removeService(); void setPlaceholderState(bool placeholderState); bool placeholderState() const; diff --git a/src/networksettings/qnetworksettingsservice.cpp b/src/networksettings/qnetworksettingsservice.cpp index 39ad53d..0c142b2 100644 --- a/src/networksettings/qnetworksettingsservice.cpp +++ b/src/networksettings/qnetworksettingsservice.cpp @@ -338,4 +338,15 @@ void QNetworkSettingsService::disconnectService() d->disconnectService(); } +/*! + \qmlmethod void NetworkService::removeService() + \brief Removes this service from the service cache and clears + any remembered credentials. +*/ +void QNetworkSettingsService::removeService() +{ + Q_D(QNetworkSettingsService); + d->removeService(); +} + QT_END_NAMESPACE diff --git a/src/networksettings/qnetworksettingsservice.h b/src/networksettings/qnetworksettingsservice.h index 3019b2d..72d75ef 100644 --- a/src/networksettings/qnetworksettingsservice.h +++ b/src/networksettings/qnetworksettingsservice.h @@ -75,6 +75,7 @@ public: //Wireless config Q_INVOKABLE void connectService(); Q_INVOKABLE void disconnectService(); + Q_INVOKABLE void removeService(); Q_SIGNALS: void nameChanged(); void stateChanged(); diff --git a/src/settingsui/network/WifiSettings.qml b/src/settingsui/network/WifiSettings.qml index 04c4d2f..8bb8ee2 100644 --- a/src/settingsui/network/WifiSettings.qml +++ b/src/settingsui/network/WifiSettings.qml @@ -241,6 +241,9 @@ Item { errorView.visible = true connectView.visible = true root.connecting = false + if (networkSelection.currentIndex != -1) { + NetworkSettingsManager.services.itemFromRow(networkSelection.currentIndex).removeService(); + } } } } |