mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
See also: https://pointieststick.com/2023/06/14/call-to-action-easy-porting-opportunity-in-plasma/
100 lines
3.5 KiB
QML
100 lines
3.5 KiB
QML
// SPDX-FileCopyrightText: 2017 Martin Kacej <m.kacej@atlas.sk>
|
|
// SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
import QtQuick 2.15
|
|
import QtQuick.Layouts 1.15
|
|
import QtQuick.Controls 2.15 as Controls
|
|
|
|
import org.kde.plasma.networkmanagement 0.2 as PlasmaNM
|
|
import org.kde.kirigami 2.2 as Kirigami
|
|
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
|
|
import org.kde.ksvg 1.0 as KSvg
|
|
|
|
MobileForm.AbstractFormDelegate {
|
|
topPadding: Kirigami.Units.smallSpacing
|
|
bottomPadding: Kirigami.Units.smallSpacing
|
|
|
|
property var map : []
|
|
property bool predictableWirelessPassword: !Uuid && Type == PlasmaNM.Enums.Wireless &&
|
|
(SecurityType == PlasmaNM.Enums.StaticWep ||
|
|
SecurityType == PlasmaNM.Enums.WpaPsk ||
|
|
SecurityType == PlasmaNM.Enums.Wpa2Psk ||
|
|
SecurityType == PlasmaNM.Enums.SAE)
|
|
|
|
onClicked: {
|
|
changeState()
|
|
}
|
|
|
|
function changeState() {
|
|
if (Uuid || !predictableWirelessPassword) {
|
|
if (ConnectionState == PlasmaNM.Enums.Deactivated) {
|
|
if (!predictableWirelessPassword && !Uuid) {
|
|
handler.addAndActivateConnection(DevicePath, SpecificPath);
|
|
} else {
|
|
handler.activateConnection(ConnectionPath, DevicePath, SpecificPath);
|
|
}
|
|
} else{
|
|
//show popup
|
|
}
|
|
} else if (predictableWirelessPassword) {
|
|
connectionDialog.headingText = i18n("Connect to") + " " + ItemUniqueName;
|
|
connectionDialog.devicePath = DevicePath;
|
|
connectionDialog.specificPath = SpecificPath;
|
|
connectionDialog.securityType = SecurityType;
|
|
connectionDialog.openAndClear();
|
|
}
|
|
}
|
|
|
|
contentItem: RowLayout {
|
|
spacing: Kirigami.Units.gridUnit
|
|
|
|
Item {
|
|
Layout.preferredWidth: Kirigami.Units.gridUnit
|
|
Layout.preferredHeight: Kirigami.Units.gridUnit
|
|
|
|
KSvg.SvgItem {
|
|
id: connectionSvgIcon
|
|
elementId: mobileProxyModel.showSavedMode ? "network-wireless-connected-100" : ConnectionIcon
|
|
|
|
svg: KSvg.Svg {
|
|
multipleImages: true
|
|
imagePath: "icons/network"
|
|
colorSet: Kirigami.Theme.colorSet
|
|
}
|
|
}
|
|
|
|
Controls.BusyIndicator {
|
|
id: connectingIndicator
|
|
|
|
anchors {
|
|
horizontalCenter: connectionSvgIcon.horizontalCenter
|
|
verticalCenter: connectionSvgIcon.verticalCenter
|
|
}
|
|
running: ConnectionState == PlasmaNM.Enums.Activating
|
|
visible: running
|
|
}
|
|
}
|
|
|
|
Controls.Label {
|
|
id: connectionNameLabel
|
|
|
|
Layout.fillWidth: true
|
|
elide: Text.ElideRight
|
|
text: ItemUniqueName
|
|
textFormat: Text.PlainText
|
|
}
|
|
|
|
Controls.ToolButton {
|
|
icon.name: "network-connect"
|
|
visible: ConnectionState != PlasmaNM.Enums.Activated
|
|
onClicked: changeState()
|
|
}
|
|
|
|
Controls.ToolButton {
|
|
icon.name: "network-disconnect"
|
|
visible: ConnectionState == PlasmaNM.Enums.Activated
|
|
onClicked: handler.deactivateConnection(ConnectionPath, DevicePath)
|
|
}
|
|
}
|
|
}
|