summaryrefslogtreecommitdiffstats
path: root/src/settingsui/network/NetworkListView.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/settingsui/network/NetworkListView.qml')
-rw-r--r--src/settingsui/network/NetworkListView.qml155
1 files changed, 155 insertions, 0 deletions
diff --git a/src/settingsui/network/NetworkListView.qml b/src/settingsui/network/NetworkListView.qml
new file mode 100644
index 0000000..c42d7e1
--- /dev/null
+++ b/src/settingsui/network/NetworkListView.qml
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Device Utilities module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.0
+import QtQml 2.0
+import QtDeviceUtilities.NetworkSettings 1.0
+import QtDemoLauncher.QtButtonImageProvider 1.0
+import QtQuick.Controls 2.1
+
+ListView {
+ id: list
+ clip: true
+ property bool connecting: false
+
+ Component.onCompleted: NetworkSettingsManager.services.type = NetworkSettingsType.Unknown;
+ model: NetworkSettingsManager.services
+
+ delegate: Item {
+ id: networkDelegate
+ width: list.width
+ height: expanded ? list.height * 0.15 + list.height * 0.05 : list.height * 0.15
+ property bool expanded: false
+ MouseArea {
+ anchors.fill: parent
+ onClicked: networkDelegate.expanded = !networkDelegate.expanded
+ }
+ Rectangle {
+ id: img
+ height: parent.height * 0.6
+ width: height
+ anchors.left: parent.left
+ anchors.leftMargin: parent.width * 0.075
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ Column {
+ anchors.left: img.right
+ anchors.leftMargin: parent.width * 0.025
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width * 0.5
+ Text {
+ id: networkName
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: list.height * 0.06
+ color: connected ? "#41cd52" : "white"
+ text: name
+ font.family: appFont
+ font.styleName: connected ? "SemiBold" : "Regular"
+ }
+ Row {
+ id: ipRow
+ height: networkDelegate.height * 0.275 * opacity
+ opacity: networkDelegate.expanded ? 1 : 0.0
+ visible: opacity > 0
+ spacing: networkDelegate.width * 0.0075
+ Behavior on opacity { NumberAnimation { duration: 200} }
+ Text {
+ id: ipAddressLabel
+ height: parent.height
+ anchors.verticalCenter: parent.verticalCenter
+ text: qsTr("IP Address:")
+ color: connected ? "#41cd52" : "white"
+ font.pixelSize: height * 0.8
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignLeft
+ font.family: appFont
+ font.styleName: connected ? "SemiBold" : "Regular"
+ }
+ Text {
+ id: ipAddress
+ width: root.width * 0.15
+ height: parent.height
+ anchors.verticalCenter: parent.verticalCenter
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignLeft
+ color: connected ? "#41cd52" : "white"
+ visible: ipRow.opacity > 0
+ text: connected ? NetworkSettingsManager.services.itemFromRow(index).ipv4.address : qsTr("Not connected")
+ font.family: appFont
+ font.styleName: connected ? "SemiBold" : "Regular"
+ }
+ }
+ }
+ QtButton {
+ id: connectButton
+ height: list.height * 0.1
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ fillColor: connected ? "#9d9faa" : "#41cd52"
+ borderColor: "transparent"
+ text: connected ? qsTr("DISCONNECT") : qsTr("CONNECT")
+ opacity: expanded || connected ? 1.0 : 0.0
+ visible: opacity > 0.0
+ Behavior on opacity { NumberAnimation { duration: 200 } }
+ onClicked: {
+ if (connected) {
+ NetworkSettingsManager.services.itemFromRow(index).disconnectService();
+ } else {
+ var service = NetworkSettingsManager.services.itemFromRow(index)
+ if (service) {
+ list.connecting = true
+ service.connectService();
+ }
+ }
+ }
+ }
+ Rectangle {
+ id: delegateBottom
+ width: networkDelegate.width
+ color: "#9d9faa"
+ height: 2
+ anchors.bottom: networkDelegate.bottom
+ anchors.horizontalCenter: networkDelegate.horizontalCenter
+ }
+ Behavior on height { NumberAnimation { duration: 200} }
+
+ Connections {
+ target: NetworkSettingsManager.userAgent
+ onShowUserCredentialsInput : {
+ settingsLoader.source = "qrc:/network/PassphraseEnter.qml"
+ list.connecting = false
+ }
+ onError: {
+ list.connecting = false
+ console.log("ERROR OCCURRED")
+ }
+ }
+ }
+ focus: true
+}