summaryrefslogtreecommitdiffstats
path: root/src/settingsui/network/NetworkSettings.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/settingsui/network/NetworkSettings.qml')
-rw-r--r--src/settingsui/network/NetworkSettings.qml78
1 files changed, 72 insertions, 6 deletions
diff --git a/src/settingsui/network/NetworkSettings.qml b/src/settingsui/network/NetworkSettings.qml
index b3a6350..719ce77 100644
--- a/src/settingsui/network/NetworkSettings.qml
+++ b/src/settingsui/network/NetworkSettings.qml
@@ -30,13 +30,79 @@ import QtQuick 2.6
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.2
import QtDeviceUtilities.NetworkSettings 1.0
+import QtDeviceUtilities.BluetoothSettings 1.0
+import "../common"
Item {
- NetworkListView {
- id: networkList
- anchors.top: parent.top
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.bottom: parent.bottom
+ id: root
+ property string title: qsTr("Network Settings")
+
+ Column {
+ id: networkSettingsColumn
+ spacing: pluginMain.spacing
+ anchors.margins: viewSettings.pageMargin
+
+ Row {
+ spacing: root.width * 0.025
+ leftPadding: pluginMain.margin
+ Text {
+ text: qsTr("Wi-Fi")
+ anchors.verticalCenter: parent.verticalCenter
+ font.pixelSize: pluginMain.subTitleFontSize
+ font.family: appFont
+ color: "white"
+ }
+
+ CustomSwitch {
+ id: wifiSwitch
+ indicatorWidth: root.width * 0.15
+ indicatorHeight: root.height * 0.06
+ property bool wiFiAvailable: NetworkSettingsManager.interface(NetworkSettingsType.Wifi, 0) !== null
+ enabled: wiFiAvailable && !wifiSwitchTimer.running
+ onCheckedChanged: {
+ // Power on/off all WiFi interfaces
+ for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) {
+ NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i).powered = checked
+ wifiSwitchTimer.start()
+ }
+ }
+ Component.onCompleted: {
+ // If any of the WiFi interfaces is powered on, switch is checked
+ var checkedStatus = false;
+ for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) {
+ if (NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i).powered) {
+ checkedStatus = true;
+ break;
+ }
+ }
+ checked = checkedStatus;
+ }
+
+ // At least 1s between switching on/off
+ Timer {
+ id: wifiSwitchTimer
+ interval: 1000
+ running: false
+ }
+ }
+ }
+
+ Text {
+ text: qsTr("Network list:")
+ font.pixelSize: pluginMain.subTitleFontSize
+ font.family: appFont
+ font.styleName: "SemiBold"
+ color: "white"
+ }
+
+ Row {
+ id: listViewRow
+ leftPadding: pluginMain.margin
+ NetworkListView {
+ id: networkList
+ width: root.width - listViewRow.leftPadding
+ height: root.height - listViewRow.y - networkSettingsColumn.anchors.margins
+ }
+ }
}
}