summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Voutilainen <ville.voutilainen@qt.io>2018-03-22 16:52:51 +0200
committerVille Voutilainen <ville.voutilainen@qt.io>2018-03-23 10:59:34 +0000
commit8f3dfc1e6364fbd1aaf62d2c0aba0e4d6ac1742f (patch)
tree81f48c580af106b9ec20a66b5bed7af207d5b8a1
parentade83ab2c5dc02a0e59c4abcf528bc3592179137 (diff)
Make network reconnections after passphrase change work better
Task-number: QTBUG-66280 Change-Id: Ifeef92fde779d924bc32fe50279ba93bf1428128 Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
-rw-r--r--src/networksettings/connman/qnetworksettingsservice_p.cpp7
-rw-r--r--src/networksettings/connman/qnetworksettingsservice_p.h1
-rw-r--r--src/networksettings/qnetworksettingsservice.cpp11
-rw-r--r--src/networksettings/qnetworksettingsservice.h1
-rw-r--r--src/settingsui/network/WifiSettings.qml3
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();
+ }
}
}
}