diff options
-rw-r--r-- | basicsuite/launchersettings/BrightnessController.qml | 2 | ||||
-rw-r--r-- | basicsuite/launchersettings/NetworkController.qml | 2 | ||||
-rw-r--r-- | basicsuite/launchersettings/NetworkList.qml (renamed from experimental/Wifi/main.qml) | 80 | ||||
-rw-r--r-- | basicsuite/launchersettings/PoweroffAction.qml | 2 | ||||
-rw-r--r-- | basicsuite/launchersettings/RebootAction.qml | 2 | ||||
-rw-r--r-- | basicsuite/launchersettings/WifiController.qml | 58 | ||||
-rw-r--r-- | basicsuite/launchersettings/WifiGroupBox.qml | 92 | ||||
-rw-r--r-- | basicsuite/launchersettings/main.qml | 38 |
8 files changed, 221 insertions, 55 deletions
diff --git a/basicsuite/launchersettings/BrightnessController.qml b/basicsuite/launchersettings/BrightnessController.qml index 8ac6118..777fa30 100644 --- a/basicsuite/launchersettings/BrightnessController.qml +++ b/basicsuite/launchersettings/BrightnessController.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: For any questions to Digia, please use the contact form at ** http://qt.digia.com/ ** diff --git a/basicsuite/launchersettings/NetworkController.qml b/basicsuite/launchersettings/NetworkController.qml index 1962843..85a8de6 100644 --- a/basicsuite/launchersettings/NetworkController.qml +++ b/basicsuite/launchersettings/NetworkController.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: For any questions to Digia, please use the contact form at ** http://qt.digia.com/ ** diff --git a/experimental/Wifi/main.qml b/basicsuite/launchersettings/NetworkList.qml index 0f4862c..1f26537 100644 --- a/experimental/Wifi/main.qml +++ b/basicsuite/launchersettings/NetworkList.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: For any questions to Digia, please use the contact form at ** http://qt.digia.com/ ** @@ -41,33 +41,15 @@ import QtQuick 2.0 import Qt.labs.wifi 0.1 -Rectangle -{ - id: root - - color: Qt.rgba(Math.random(), Math.random(), Math.random(), 1); - - QWifiManager { - id: wifiManager; - - Component.onCompleted: start(); - - onReadyChanged: { - print("QML: QWifiManager is now connected..."); - } - - onOnlineChanged: print(online ? "QML: WifiManager is online" : "QML: WifiManager is not online..."); - - //scanning: ready && connectedSSID == ""; - scanning: ready - } - +Item { Component { id: listDelegate - Rectangle { id: delegateBackground property bool expanded: false + property bool connected: wifiManager.connectedSSID == network.ssid + property variant networkModel: model + property alias ssidText: ssidLabel.text height: expanded ? 300 : 70 clip: true // ### fixme @@ -77,8 +59,7 @@ Rectangle gradient: Gradient { GradientStop { position: 0; color: "white" } - GradientStop { position: 67 / delegateBackground.height; color: "lightgray" } - GradientStop { position: 1; color: "gray" } + GradientStop { position: 1; color: "lightgray" } } Text { @@ -86,9 +67,9 @@ Rectangle anchors.top: parent.top anchors.left: parent.left anchors.margins: 10 - font.pixelSize: 24 + font.pixelSize: 20 font.bold: true - text: network.ssid + (wifiManager.connectedSSID == network.ssid ? " (connected)" : ""); + text: network.ssid + (connected ? " (connected)" : ""); } Text { @@ -145,10 +126,10 @@ Rectangle TextInput { id: passwordInput - //echoMode: TextInput.PasswordEchoOnEdit y: 100 width: 300 height: 50 + text: "" anchors.horizontalCenter: parent.horizontalCenter font.pixelSize: 18 } @@ -160,6 +141,7 @@ Rectangle anchors.horizontalCenter: parent.horizontalCenter width: passwordInput.width height: passwordInputBackground.height + enabled: wifiManager.networkState != WifiManager.ObtainingIPAddress gradient: Gradient { GradientStop { position: 0; color: "white" } @@ -171,12 +153,20 @@ Rectangle Text { anchors.centerIn: parent font.pixelSize: 24 - text: "Connect" + text: connected ? "Disconnect" : "Connect" } MouseArea { id: buttonMouse anchors.fill: parent - onClicked: wifiManager.connect(network, passwordInput.text); + onClicked: { + networkView.currentIndex = index + if (connected) { + wifiManager.disconnect() + } else { + networkView.activeNetwork = networkView.currentItem + wifiManager.connect(network, passwordInput.text); + } + } } } @@ -184,16 +174,26 @@ Rectangle } ListView { - anchors.fill: root + id: networkView + anchors.fill: parent model: wifiManager.networks - delegate: listDelegate; - } - - Image { - source: wifiManager.online ? "http://img3.imageshack.us/img3/9870/magepicture.jpg" : "" - anchors.bottom: parent.bottom - - width: parent.width - height: sourceSize.height * (width / sourceSize.width); + delegate: listDelegate + + property variant activeNetwork: "" + property variant networkState: wifiManager.networkState + + 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 + } + } } } diff --git a/basicsuite/launchersettings/PoweroffAction.qml b/basicsuite/launchersettings/PoweroffAction.qml index 14c100d..8c14b79 100644 --- a/basicsuite/launchersettings/PoweroffAction.qml +++ b/basicsuite/launchersettings/PoweroffAction.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: For any questions to Digia, please use the contact form at ** http://qt.digia.com/ ** diff --git a/basicsuite/launchersettings/RebootAction.qml b/basicsuite/launchersettings/RebootAction.qml index 476bdaf..e6f57ca 100644 --- a/basicsuite/launchersettings/RebootAction.qml +++ b/basicsuite/launchersettings/RebootAction.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: For any questions to Digia, please use the contact form at ** http://qt.digia.com/ ** diff --git a/basicsuite/launchersettings/WifiController.qml b/basicsuite/launchersettings/WifiController.qml new file mode 100644 index 0000000..3725478 --- /dev/null +++ b/basicsuite/launchersettings/WifiController.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: For any questions to Digia, please use the contact form at +** http://qt.digia.com/ +** +** This file is part of the examples of the Qt Enterprise Embedded. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 2.0 +import Qt.labs.wifi 0.1 as Wifi + +QtObject { + function createWifiGroupBox() + { + if (Wifi.Interface.wifiSupported()) { + var component = Qt.createComponent("WifiGroupBox.qml"); + var wifi = component.createObject(wifiOptions.contentItem); + if (wifi == null) { + wifiOptions.visible = false + print("Error creating WifiGroupBox"); + } + } else { + wifiOptions.visible = false + } + } +} diff --git a/basicsuite/launchersettings/WifiGroupBox.qml b/basicsuite/launchersettings/WifiGroupBox.qml new file mode 100644 index 0000000..f58c129 --- /dev/null +++ b/basicsuite/launchersettings/WifiGroupBox.qml @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: For any questions to Digia, please use the contact form at +** http://qt.digia.com/ +** +** This file is part of the examples of the Qt Enterprise Embedded. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 2.0 +import QtQuick.Controls 1.0 +import QtQuick.Layouts 1.0 + +import Qt.labs.wifi 0.1 + +ColumnLayout { + + anchors.fill:parent + + WifiManager { + id: wifiManager + scanning: backendReady + } + + ColumnLayout { + anchors.fill: parent + + RowLayout { + + Button { + id: wifiOnOffButton + text: (wifiManager.backendReady) ? "Switch Off" : "Switch On" + onClicked: { + if (wifiManager.backendReady) { + if (networkList.visible) + networkList.visible = false + wifiManager.stop() + } else { + wifiManager.start() + } + } + } + + Button { + id: listNetworksButton + visible: wifiManager.backendReady + text: (networkList.visible) ? "Hide wifi networks" + : "List available wifi networks" + onClicked: networkList.visible = !networkList.visible + } + } + + NetworkList { + id: networkList + implicitHeight: 400 + Layout.fillWidth: true + visible: false + clip: true + } + } +} diff --git a/basicsuite/launchersettings/main.qml b/basicsuite/launchersettings/main.qml index 7cd510c..41054fd 100644 --- a/basicsuite/launchersettings/main.qml +++ b/basicsuite/launchersettings/main.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: For any questions to Digia, please use the contact form at ** http://qt.digia.com/ ** @@ -44,7 +44,7 @@ import QtQuick.Controls 1.0 import QtQuick.Layouts 1.0 Rectangle { - id: root; + id: root gradient: Gradient { GradientStop { position: 0; color: "white" } @@ -76,16 +76,19 @@ Rectangle { source: "NetworkController.qml" } - Flickable { + Loader { + id: wifiControllerLoader + source: "WifiController.qml" + } + + ScrollView { + anchors.top: parent.top anchors.horizontalCenter: parent.horizontalCenter anchors.margins: margin anchors.topMargin: 50 height: parent.height - width: mainLayout.width - - contentHeight: mainLayout.height - contentWidth: mainLayout.width + width: mainLayout.width + 40 ColumnLayout { id: mainLayout @@ -95,12 +98,12 @@ Rectangle { GroupBox { id: powerOptions - title: "Power Options" + title: "Power" Layout.fillWidth: true RowLayout { - id: powerButtonColumn + id: powerButtonRow anchors.fill: parent @@ -123,7 +126,7 @@ Rectangle { GroupBox { id: displayOptions - title: "Display Options" + title: "Display" Layout.fillWidth: true @@ -156,7 +159,7 @@ Rectangle { GroupBox { id: networkOptions - title: "Network Options" + title: "Network" Layout.fillWidth: true @@ -187,6 +190,19 @@ Rectangle { } } + + GroupBox { + id: wifiOptions + title: "Wifi" + Layout.fillWidth: true + } + + Component.onCompleted: { + if (wifiControllerLoader.item != undefined) + wifiControllerLoader.item.createWifiGroupBox() + else + wifiOptions.visible = false + } } } } |