diff options
Diffstat (limited to 'src/settingsui/network/NetworkSettings.qml')
-rw-r--r-- | src/settingsui/network/NetworkSettings.qml | 78 |
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 + } + } } } |