summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGatis Paeglis <gatis.paeglis@digia.com>2014-03-20 12:45:32 +0100
committerGatis Paeglis <gatis.paeglis@digia.com>2014-04-07 17:56:47 +0300
commiteaf6083b8215efce7e57fdb6e2142c7e0407b196 (patch)
tree19dbca4de4f47b6ad98cda14fe01e63df7c52fe8
parent8dc84db6555d4fbf131b2191bb8b02bbb56a9a82 (diff)
[launchersettings] Small fixes in wifi settings section
- only one list section expanded at a time. - adjust example to the changes in QtWifi API. Change-Id: I08eed885e08f581302f2704e07a0218c95c7454e Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
-rw-r--r--basicsuite/launchersettings/NetworkList.qml73
1 files changed, 40 insertions, 33 deletions
diff --git a/basicsuite/launchersettings/NetworkList.qml b/basicsuite/launchersettings/NetworkList.qml
index b733eb6..204e4e2 100644
--- a/basicsuite/launchersettings/NetworkList.qml
+++ b/basicsuite/launchersettings/NetworkList.qml
@@ -42,9 +42,6 @@ import QtQuick 2.0
import QtQuick.Controls 1.0
import Qt.labs.wifi 0.1
-// ### TODO
-// - only 1 delagate open at the time
-
Item {
Component {
id: listDelegate
@@ -52,17 +49,28 @@ Item {
id: delegateBackground
property bool expanded: false
property bool connected: wifiManager.connectedSSID == network.ssid
- property variant networkModel: model
- property alias ssidText: ssidLabel.text
+ property bool actingNetwork: networkView.currentNetworkSsid == network.ssid
height: (expanded ? (connected ? 180: 260) : 70)
+ width: parent.width
clip: true // ### fixme
color: "#5C5C5C"
border.color: "black"
border.width: 1
- Behavior on height { NumberAnimation { duration: 500; easing.type: Easing.InOutCubic } }
+ onExpandedChanged: {
+ if (expanded) {
+ if (networkView.hasExpandedDelegate)
+ networkView.expandedDelegate.expanded = false
+ networkView.expandedDelegate = this
+ } else {
+ networkView.expandedDelegate = 0
+ }
+ }
- width: parent.width
+ Component.onDestruction: if (expanded) networkView.expandedDelegate = 0
+ onHeightChanged: if (expanded) networkView.positionViewAtIndex(index, ListView.Contain)
+
+ Behavior on height { NumberAnimation { duration: 500; easing.type: Easing.InOutCubic } }
Text {
id: ssidLabel
@@ -72,7 +80,7 @@ Item {
font.pixelSize: 20
font.bold: true
color: "#E6E6E6"
- text: network.ssid + (connected ? " (connected)" : "");
+ text: network.ssid + (actingNetwork ? networkView.networkStateText : "");
}
Text {
@@ -113,9 +121,7 @@ Item {
MouseArea {
anchors.fill: parent
- onClicked: {
- parent.expanded = !expanded
- }
+ onClicked: parent.expanded = !expanded
}
TextField {
@@ -134,15 +140,8 @@ Item {
y: passwordInput.visible ? passwordInput.y + passwordInput.height + 20 : passwordInput.y
anchors.horizontalCenter: parent.horizontalCenter
text: connected ? "Disconnect" : "Connect"
- onClicked: {
- networkView.currentIndex = index
- if (connected) {
- wifiManager.disconnect()
- } else {
- networkView.activeNetwork = networkView.currentItem
- wifiManager.connect(network, passwordInput.text);
- }
- }
+ onClicked: connected ? wifiManager.disconnect()
+ : wifiManager.connect(network, passwordInput.text);
}
}
}
@@ -153,20 +152,28 @@ Item {
model: wifiManager.networks
delegate: listDelegate
- property variant activeNetwork: ""
- property variant networkState: wifiManager.networkState
+ property string networkStateText: ""
+ property string currentNetworkSsid: ""
+ property variant expandedDelegate: 0
+ property bool hasExpandedDelegate: expandedDelegate != 0
- onNetworkStateChanged: {
- if (activeNetwork) {
- var ssid = activeNetwork.networkModel.ssid
- var state = ""
- if (networkState == WifiManager.ObtainingIPAddress)
- state = " (obtaining ip..)"
- else if (networkState == WifiManager.DhcpRequestFailed)
- state = " (dhcp request failed)"
- else if (networkState == WifiManager.Connected)
- state = " (connected)"
- activeNetwork.ssidText = ssid + state
+ Connections {
+ target: wifiManager
+ onNetworkStateChanged: {
+ networkView.currentNetworkSsid = network.ssid
+ var networkStateText = ""
+ var state = wifiManager.networkState
+ if (state == WifiManager.ObtainingIPAddress)
+ networkStateText = " (obtaining ip..)"
+ else if (state == WifiManager.DhcpRequestFailed)
+ networkStateText = " (dhcp request failed)"
+ else if (state == WifiManager.Connected)
+ networkStateText = " (connected)"
+ else if (state == WifiManager.Authenticating)
+ networkStateText = " (authenticating..)"
+ else if (state == WifiManager.HandshakeFailed)
+ networkStateText = " (wrong password)"
+ networkView.networkStateText = networkStateText
}
}
}