Warning, /plasma/plasma-mobile/initialstart/modules/wifi/package/contents/ui/main.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2017 Martin Kacej <m.kacej@atlas.sk> 0002 // SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org> 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 import QtQuick 0006 import QtQuick.Controls 0007 import QtQuick.Layouts 0008 0009 import org.kde.kirigami 2.20 as Kirigami 0010 import org.kde.kirigamiaddons.formcard 1.0 as FormCard 0011 import org.kde.plasma.networkmanagement as PlasmaNM 0012 import org.kde.plasma.mobileinitialstart.wifi 1.0 as WiFi 0013 0014 Item { 0015 id: root 0016 property string name: i18n("Network") 0017 0018 readonly property real cardWidth: Math.min(Kirigami.Units.gridUnit * 30, root.width - Kirigami.Units.gridUnit * 2) 0019 0020 PlasmaNM.Handler { 0021 id: handler 0022 } 0023 0024 PlasmaNM.EnabledConnections { 0025 id: enabledConnections 0026 } 0027 0028 PlasmaNM.NetworkModel { 0029 id: connectionModel 0030 } 0031 0032 PlasmaNM.MobileProxyModel { 0033 id: mobileProxyModel 0034 sourceModel: connectionModel 0035 showSavedMode: false 0036 } 0037 0038 ConnectDialog { 0039 id: connectionDialog 0040 } 0041 0042 Component.onCompleted: handler.requestScan() 0043 0044 Timer { 0045 id: scanTimer 0046 interval: 10200 0047 repeat: true 0048 running: parent.visible 0049 0050 onTriggered: handler.requestScan() 0051 } 0052 0053 ColumnLayout { 0054 anchors { 0055 fill: parent 0056 topMargin: Kirigami.Units.gridUnit 0057 bottomMargin: Kirigami.Units.largeSpacing 0058 } 0059 0060 width: root.width 0061 spacing: Kirigami.Units.gridUnit 0062 0063 Label { 0064 Layout.leftMargin: Kirigami.Units.gridUnit 0065 Layout.rightMargin: Kirigami.Units.gridUnit 0066 Layout.alignment: Qt.AlignTop 0067 Layout.fillWidth: true 0068 0069 wrapMode: Text.Wrap 0070 horizontalAlignment: Text.AlignHCenter 0071 text: i18n("Connect to a WiFi network for network access.") 0072 } 0073 0074 FormCard.FormCard { 0075 id: savedCard 0076 maximumWidth: root.cardWidth 0077 visible: enabledConnections.wirelessEnabled && count > 0 0078 0079 // number of visible entries 0080 property int count: 0 0081 function updateCount() { 0082 count = 0; 0083 for (let i = 0; i < connectedRepeater.count; i++) { 0084 let item = connectedRepeater.itemAt(i); 0085 if (item && item.shouldDisplay) { 0086 count++; 0087 } 0088 } 0089 } 0090 0091 Repeater { 0092 id: connectedRepeater 0093 model: mobileProxyModel 0094 delegate: ConnectionItemDelegate { 0095 editMode: false 0096 0097 // connected or saved 0098 property bool shouldDisplay: (Uuid != "") || ConnectionState === PlasmaNM.Enums.Activated 0099 onShouldDisplayChanged: savedCard.updateCount() 0100 0101 // separate property for visible since visible is false when the whole card is not visible 0102 visible: (Uuid != "") || ConnectionState === PlasmaNM.Enums.Activated 0103 } 0104 } 0105 } 0106 0107 FormCard.FormCard { 0108 Layout.fillHeight: true 0109 maximumWidth: root.cardWidth 0110 visible: enabledConnections.wirelessEnabled 0111 0112 ListView { 0113 id: listView 0114 0115 clip: true 0116 Layout.fillWidth: true 0117 Layout.fillHeight: true 0118 model: mobileProxyModel 0119 0120 delegate: ConnectionItemDelegate { 0121 width: ListView.view.width 0122 editMode: false 0123 height: visible ? implicitHeight : 0 0124 visible: !((Uuid != "") || ConnectionState === PlasmaNM.Enums.Activated) 0125 } 0126 } 0127 } 0128 } 0129 } 0130 0131