summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/imports/networksettings/plugins.qmltypes1
-rw-r--r--src/networksettings/connman/qnetworksettingsmanager_p.cpp7
-rw-r--r--src/networksettings/qnetworksettingsservice.h1
-rw-r--r--src/settingsui/network/NetworkListView.qml58
-rw-r--r--src/settingsui/network/PassphraseEnter.qml103
5 files changed, 108 insertions, 62 deletions
diff --git a/src/imports/networksettings/plugins.qmltypes b/src/imports/networksettings/plugins.qmltypes
index ac0d3fc..f2603eb 100644
--- a/src/imports/networksettings/plugins.qmltypes
+++ b/src/imports/networksettings/plugins.qmltypes
@@ -150,7 +150,6 @@ Module {
Property { name: "domains"; type: "QAbstractItemModel"; isReadonly: true; isPointer: true }
Property { name: "nameservers"; type: "QAbstractItemModel"; isReadonly: true; isPointer: true }
Signal { name: "wirelessChanged" }
- Signal { name: "showCrendentialInput" }
Method {
name: "setAutoConnect"
Parameter { name: "autoconnect"; type: "bool" }
diff --git a/src/networksettings/connman/qnetworksettingsmanager_p.cpp b/src/networksettings/connman/qnetworksettingsmanager_p.cpp
index e3f6d0b..d666b10 100644
--- a/src/networksettings/connman/qnetworksettingsmanager_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsmanager_p.cpp
@@ -79,12 +79,9 @@ QNetworkSettingsManagerPrivate::QNetworkSettingsManagerPrivate(QNetworkSettingsM
void QNetworkSettingsManagerPrivate::requestInput(const QString& service, const QString& type)
{
+ Q_UNUSED(service);
Q_UNUSED(type);
- foreach (QNetworkSettingsService* servicePtr, m_serviceModel->getModel()) {
- if (servicePtr->id() == service)
- emit servicePtr->showCrendentialInput();
- }
- m_agent->showUserCredentialsInput();
+ emit m_agent->showUserCredentialsInput();
}
void QNetworkSettingsManagerPrivate::getServicesFinished(QDBusPendingCallWatcher *watcher)
diff --git a/src/networksettings/qnetworksettingsservice.h b/src/networksettings/qnetworksettingsservice.h
index 3019b2d..be24a5c 100644
--- a/src/networksettings/qnetworksettingsservice.h
+++ b/src/networksettings/qnetworksettingsservice.h
@@ -85,7 +85,6 @@ Q_SIGNALS:
void domainsChanged();
void nameserversChanged();
void wirelessChanged();
- void showCrendentialInput();
protected:
QNetworkSettingsServicePrivate *d_ptr;
diff --git a/src/settingsui/network/NetworkListView.qml b/src/settingsui/network/NetworkListView.qml
index e658760..cbad890 100644
--- a/src/settingsui/network/NetworkListView.qml
+++ b/src/settingsui/network/NetworkListView.qml
@@ -35,7 +35,8 @@ import QtQuick.Controls 2.1
ListView {
id: list
clip: true
- property bool connecting: false
+ property var connectingService: null
+ property bool retryConnectAfterIdle: false
Component.onCompleted: NetworkSettingsManager.services.type = NetworkSettingsType.Unknown;
model: NetworkSettingsManager.services
@@ -84,7 +85,9 @@ ListView {
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignLeft
color: connected ? viewSettings.buttonGreenColor : "white"
- text: connected ? NetworkSettingsManager.services.itemFromRow(index).ipv4.address : qsTr("Not connected")
+ text: connected ? NetworkSettingsManager.services.itemFromRow(index).ipv4.address
+ : (NetworkSettingsManager.services.itemFromRow(index).state === NetworkSettingsState.Idle) ?
+ qsTr("Not connected") : qsTr("Connecting")
font.pixelSize: pluginMain.valueFontSize
font.family: appFont
font.styleName: connected ? "SemiBold" : "Regular"
@@ -103,10 +106,11 @@ ListView {
if (connected) {
NetworkSettingsManager.services.itemFromRow(index).disconnectService();
} else {
- var service = NetworkSettingsManager.services.itemFromRow(index)
- if (service) {
- list.connecting = true
- service.connectService();
+ list.connectingService = NetworkSettingsManager.services.itemFromRow(index)
+ if (list.connectingService) {
+ passphraseEnter.extraInfo = "";
+ list.connectingService.connectService();
+ list.connectingService.stateChanged.connect(connectingServiceStateChange);
}
}
}
@@ -121,17 +125,41 @@ ListView {
}
Behavior on height { NumberAnimation { duration: 200} }
- Connections {
- target: NetworkSettingsManager.userAgent
- onShowUserCredentialsInput : {
- settingsLoader.source = "qrc:/network/PassphraseEnter.qml"
- list.connecting = false
- }
- onError: {
- list.connecting = false
- console.log("ERROR OCCURRED")
+ }
+
+ Connections {
+ target: NetworkSettingsManager.userAgent
+ onShowUserCredentialsInput : {
+ passphraseEnter.visible = true;
+ }
+ }
+
+ // Popup for entering passphrase
+ PassphraseEnter {
+ id: passphraseEnter
+ parent: root
+ visible: false
+ }
+
+ function connectingServiceStateChange() {
+ if (connectingService !== null) {
+ if (connectingService.state === NetworkSettingsState.Failure) {
+ // If authentication failed, request connection again. That will
+ // initiate new passphrase request.
+ retryConnectAfterIdle = true
+ } else if (connectingService.state === NetworkSettingsState.Ready) {
+ // If connection succeeded, we no longer have service connecting
+ connectingService = null;
+ retryConnectAfterIdle = false;
+ } else if (connectingService.state === NetworkSettingsState.Idle) {
+ if (retryConnectAfterIdle) {
+ passphraseEnter.extraInfo = qsTr("Invalid passphrase");
+ connectingService.connectService();
+ }
+ retryConnectAfterIdle = false;
}
}
}
+
focus: true
}
diff --git a/src/settingsui/network/PassphraseEnter.qml b/src/settingsui/network/PassphraseEnter.qml
index 2841745..1881866 100644
--- a/src/settingsui/network/PassphraseEnter.qml
+++ b/src/settingsui/network/PassphraseEnter.qml
@@ -27,56 +27,79 @@
**
****************************************************************************/
import QtQuick 2.0
-import QtGraphicalEffects 1.0
import QtQuick.Controls 2.0
import QtDeviceUtilities.QtButtonImageProvider 1.0
import QtDeviceUtilities.NetworkSettings 1.0
-Item {
- id: root
- Column {
- spacing: pluginMain.spacing
- anchors.margins: viewSettings.pageMargin
+Rectangle {
+ id: passphrasePopup
+ width: root.width
+ height: root.height
+ color: viewSettings.backgroundColor
+ opacity: 0.9
+ property string extraInfo: ""
- Text {
- id: enterPassphraseText
- font.pixelSize: pluginMain.subTitleFontSize
- font.family: appFont
- color: "white"
- text: qsTr("Enter Passphrase")
- }
+ Rectangle {
+ id: frame
+ color: viewSettings.backgroundColor
+ border.color: viewSettings.borderColor
+ border.width: 3
+ anchors.centerIn: parent
+ width: passphraseColumn.width * 1.1
+ height: passphraseColumn.height * 1.1
+
+ Column {
+ id: passphraseColumn
+ anchors.centerIn: parent
+ spacing: viewSettings.spacing
- TextField {
- id: passField
- width: root.width * 0.4
- height: root.height * 0.075
- color: "white"
- echoMode: TextInput.Password
- background: Rectangle {
- color: "transparent"
- border.color: passField.focus ? viewSettings.buttonGreenColor : viewSettings.buttonGrayColor
- border.width: passField.focus ? width * 0.01 : 2
+ Text {
+ font.pixelSize: pluginMain.subTitleFontSize
+ font.family: appFont
+ color: "white"
+ text: qsTr("Enter Passphrase")
}
- }
- Row{
- spacing: parent.width * 0.025
- QtButton {
- id: setButton
- text: qsTr("SET")
- onClicked: {
- passField.focus = false
- NetworkSettingsManager.userAgent.setPassphrase(passField.text)
+ Text {
+ font.pixelSize: pluginMain.valueFontSize
+ font.family: appFont
+ color: "red"
+ text: extraInfo
+ visible: (extraInfo !== "")
+ }
+
+ TextField {
+ id: passField
+ width: root.width * 0.4
+ height: root.height * 0.075
+ color: "white"
+ echoMode: TextInput.Password
+ background: Rectangle{
+ color: "transparent"
+ border.color: passField.focus ? viewSettings.buttonGreenColor : viewSettings.buttonGrayColor
+ border.width: passField.focus ? width * 0.01 : 2
}
}
- QtButton {
- id: cancelButton
- text: qsTr("CANCEL")
- borderColor: "transparent"
- fillColor: viewSettings.buttonGrayColor
- onClicked: {
- NetworkSettingsManager.userAgent.cancelInput()
- settingsLoader.source = "qrc:/network/NetworkSettings.qml"
+
+ Row {
+ spacing: parent.width * 0.025
+ QtButton{
+ id: setButton
+ text: qsTr("SET")
+ onClicked: {
+ NetworkSettingsManager.userAgent.setPassphrase(passField.text)
+ passphrasePopup.visible = false;
+ }
+ }
+ QtButton {
+ id: cancelButton
+ text: qsTr("CANCEL")
+ borderColor: "transparent"
+ fillColor: viewSettings.buttonGrayColor
+ onClicked: {
+ NetworkSettingsManager.userAgent.cancelInput()
+ passphrasePopup.visible = false;
+ }
}
}
}