summaryrefslogtreecommitdiffstats
path: root/app/wifi/Wifi.qml
diff options
context:
space:
mode:
Diffstat (limited to 'app/wifi/Wifi.qml')
-rw-r--r--app/wifi/Wifi.qml175
1 files changed, 175 insertions, 0 deletions
diff --git a/app/wifi/Wifi.qml b/app/wifi/Wifi.qml
new file mode 100644
index 0000000..85e8b60
--- /dev/null
+++ b/app/wifi/Wifi.qml
@@ -0,0 +1,175 @@
+/*
+ * Copyright (C) 2016 The Qt Company Ltd.
+ * Copyright (C) 2018 Konsulko Group
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import QtQuick 2.6
+import QtQuick.Layouts 1.1
+import QtQuick.Controls 2.0
+import AGL.Demo.Controls 1.0
+import ".."
+
+SettingPage {
+ id: root
+ icon: '/wifi/images/HMI_Settings_WifiIcon.svg'
+ title: 'Wifi'
+ checkable: true
+ checked: network.wifiEnabled
+ readonly property bool isWifi: true
+
+ onCheckedChanged: {
+ network.power(checked)
+ }
+
+ Component {
+ id: wifiDevice
+ MouseArea {
+ height: 120
+ width: ListView.view.width
+ Image {
+ anchors.left: parent.left
+ id: icon
+ source: {
+ var svg
+ if (strength < 30)
+ svg = "1Bar"
+ else if (strength < 50)
+ svg = "2Bars"
+ else if (strength < 70)
+ svg = "3Bars"
+ else
+ svg = "Full"
+ if (security === "Open") {
+ return 'images/HMI_Settings_Wifi_%1.svg'.arg(svg)
+ } else {
+ return 'images/HMI_Settings_Wifi_Locked_%1.svg'.arg(svg)
+ }
+ }
+ }
+ Column {
+ anchors.left: icon.right
+ anchors.leftMargin: 5
+ Label {
+ id: networkNameText
+ text: ssid
+ color: '#66FF99'
+ font.pixelSize: 48
+ font.bold: sstate === "ready"
+ || sstate === "online"
+ }
+ Label {
+ visible: sstate === "ready"
+ || sstate === "online"
+ text: "connected, " + address
+ font.pixelSize: 18
+ color: "white"
+ }
+ }
+
+ onClicked: {
+ if ((sstate === "ready") || sstate === "online") {
+ console.log("Disconnecting from ", ssid, " (", service, ")")
+ networkNameText.font.italic = 1
+ network.disconnect(service)
+ } else {
+ console.log("Connecting to ", ssid, " (", service, ")")
+ networkNameText.font.italic = 1
+ network.connect(service)
+ }
+ }
+
+ Image {
+ source: '../images/HMI_Settings_DividingLine.svg'
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: -15
+ visible: model.index > 0
+ }
+ }
+ }
+
+ ListView {
+ id: view
+ anchors.fill: parent
+ anchors.margins: 100
+ model: WifiNetworkModel
+ delegate: wifiDevice
+ clip: true
+ }
+
+ MouseArea {
+ id: dialog
+ anchors.fill: parent
+ visible: false
+ z: 1
+ onVisibleChanged: {
+ if (visible) {
+ password.forceActiveFocus()
+ } else {
+ password.text = ''
+ }
+ }
+
+ ColumnLayout {
+ anchors.fill: parent
+ Item {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredHeight: 1
+ Rectangle {
+ anchors.fill: parent
+ color: 'black'
+ opacity: 0.5
+ }
+ RowLayout {
+ anchors.centerIn: parent
+ TextField {
+ id: password
+ property int reqid: 0
+ placeholderText: 'Password'
+ }
+ Button {
+ text: 'Connect'
+ highlighted: true
+ onClicked: {
+ network.input(password.reqid, password.text)
+ dialog.visible = false
+ }
+ }
+ Button {
+ text: 'Cancel'
+ onClicked: dialog.visible = false
+ }
+ }
+ }
+
+ Keyboard {
+ id: keyboard
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredHeight: 1
+ target: activeFocusControl
+ }
+ }
+ }
+
+ Connections {
+ target: network
+ onInputRequest: {
+ password.reqid = id
+ dialog.visible = true
+ }
+ }
+}