mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
Having the KCMs that are mobile specific here makes more sense than in the settings application. Historically plasma-settings had a faster release cycle than Plasma, but the application is now moving to the Plasma release schedule and so it makes sense do this now.
230 lines
8.6 KiB
QML
230 lines
8.6 KiB
QML
// SPDX-FileCopyrightText: 2022 Devin Lin <espidev@gmail.com>
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
import QtQuick 2.12
|
|
import QtQuick.Layouts 1.2
|
|
import QtQuick.Controls 2.12 as Controls
|
|
|
|
import org.kde.kirigami 2.12 as Kirigami
|
|
import org.kde.plasma.networkmanagement 0.2 as PlasmaNM
|
|
import org.kde.kcm 1.2
|
|
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
|
|
|
|
import cellularnetworkkcm 1.0
|
|
|
|
Kirigami.ScrollablePage {
|
|
id: simPage
|
|
title: i18n("SIM") + " " + displayId
|
|
|
|
property Sim sim: null
|
|
|
|
property string displayId: sim ? sim.displayId : ""
|
|
property bool simEnabled: sim ? sim.enabled : false
|
|
property bool isRoaming: sim ? (sim.modem ? sim.modem.isRoaming : false) : false
|
|
|
|
property bool simLocked: sim ? sim.locked : false
|
|
property string simImsi: sim ? sim.imsi : ""
|
|
property string simEid: sim ? sim.eid : ""
|
|
property string operatorCode: sim ? (sim.modem ? sim.modem.details.operatorCode : "") : ""
|
|
property string operatorName: sim ? (sim.modem ? sim.modem.details.operatorName : "") : ""
|
|
property string simOperatorIdentifier: sim ? sim.operatorIdentifier : ""
|
|
property string simOperatorName: sim ? sim.operatorName : ""
|
|
property string simIdentifier: sim ? sim.simIdentifier : ""
|
|
property var simEmergencyNumbers: sim ? sim.emergencyNumbers : []
|
|
|
|
leftPadding: 0
|
|
rightPadding: 0
|
|
topPadding: Kirigami.Units.gridUnit
|
|
bottomPadding: Kirigami.Units.gridUnit
|
|
|
|
PlasmaNM.EnabledConnections {
|
|
id: enabledConnections
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: 0
|
|
width: simPage.width
|
|
|
|
Kirigami.InlineMessage {
|
|
Layout.fillWidth: true
|
|
Layout.margins: Kirigami.Units.largeSpacing
|
|
Layout.bottomMargin: visible && !messagesList.visible ? Kirigami.Units.largeSpacing : 0
|
|
visible: !simEnabled
|
|
type: Kirigami.MessageType.Error
|
|
text: qsTr("This SIM slot is empty, a SIM card needs to be inserted in order for it to be used.")
|
|
}
|
|
|
|
MessagesList {
|
|
id: messagesList
|
|
Layout.fillWidth: true
|
|
Layout.margins: Kirigami.Units.largeSpacing
|
|
model: kcm.messages
|
|
}
|
|
|
|
MobileForm.FormCard {
|
|
Layout.fillWidth: true
|
|
|
|
contentItem: ColumnLayout {
|
|
spacing: 0
|
|
|
|
MobileForm.FormSwitchDelegate {
|
|
id: dataRoamingCheckBox
|
|
text: i18n("Data Roaming")
|
|
description: i18n("Allow your device to use networks other than your carrier.")
|
|
enabled: simEnabled
|
|
checked: isRoaming
|
|
onCheckedChanged: sim.modem.isRoaming = checked
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator { above: dataRoamingCheckBox; below: apnButton }
|
|
|
|
MobileForm.FormButtonDelegate {
|
|
id: apnButton
|
|
icon.name: "globe"
|
|
text: i18n("Modify APNs")
|
|
description: i18n("Configure access point names for your carrier.")
|
|
enabled: simEnabled && enabledConnections.wwanEnabled
|
|
onClicked: kcm.push("ProfileList.qml", { "modem": sim.modem });
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator { above: apnButton; below: networksButton }
|
|
|
|
MobileForm.FormButtonDelegate {
|
|
id: networksButton
|
|
icon.name: "network-mobile-available"
|
|
text: i18n("Networks")
|
|
description: i18n("Select a network operator.")
|
|
enabled: simEnabled
|
|
onClicked: kcm.push("AvailableNetworks.qml", { "modem": sim.modem, "sim": sim });
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator { above: networksButton; below: simLockButton }
|
|
|
|
MobileForm.FormButtonDelegate {
|
|
id: simLockButton
|
|
icon.name: "unlock"
|
|
text: i18n("SIM Lock")
|
|
description: i18n("Modify SIM lock settings.")
|
|
enabled: simEnabled
|
|
onClicked: kcm.push("SimLockPage.qml", { "sim": sim });
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator { above: simLockButton; below: modemDetailsButton }
|
|
|
|
MobileForm.FormButtonDelegate {
|
|
id: modemDetailsButton
|
|
icon.name: "network-modem"
|
|
text: i18n("Modem Details")
|
|
description: i18n("View the details of the modem this SIM is connected to.")
|
|
onClicked: kcm.push("ModemPage.qml", { "modem": sim.modem })
|
|
}
|
|
}
|
|
}
|
|
|
|
MobileForm.FormCard {
|
|
Layout.fillWidth: true
|
|
Layout.topMargin: Kirigami.Units.largeSpacing
|
|
|
|
contentItem: ColumnLayout {
|
|
spacing: 0
|
|
|
|
MobileForm.FormCardHeader {
|
|
title: i18n("SIM Details")
|
|
}
|
|
|
|
MobileForm.FormTextDelegate {
|
|
id: lockedText
|
|
text: i18n("Locked")
|
|
description: simLocked ? i18n("Yes") : i18n("No")
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator {}
|
|
|
|
MobileForm.FormTextDelegate {
|
|
id: imsiText
|
|
text: i18n("IMSI")
|
|
description: simImsi
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator {}
|
|
|
|
MobileForm.FormTextDelegate {
|
|
id: eidText
|
|
text: i18n("EID")
|
|
description: simEid
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator {}
|
|
|
|
MobileForm.FormTextDelegate {
|
|
id: opCodeModemText
|
|
text: i18n("Operator Code (modem)")
|
|
description: operatorCode
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator {}
|
|
|
|
MobileForm.FormTextDelegate {
|
|
id: opNameModemText
|
|
text: i18n("Operator Name (modem)")
|
|
description: operatorName
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator {}
|
|
|
|
MobileForm.FormTextDelegate {
|
|
id: opCodeSimText
|
|
text: i18n("Operator Code (provided by SIM)")
|
|
description: simOperatorIdentifier
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator {}
|
|
|
|
MobileForm.FormTextDelegate {
|
|
id: opNameSimText
|
|
text: i18n("Operator Name (provided by SIM)")
|
|
description: simOperatorName
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator {}
|
|
|
|
MobileForm.FormTextDelegate {
|
|
id: simIdText
|
|
text: i18n("SIM ID")
|
|
description: simIdentifier
|
|
}
|
|
|
|
MobileForm.FormDelegateSeparator {}
|
|
|
|
MobileForm.AbstractFormDelegate {
|
|
id: emergencyNumbersText
|
|
Layout.fillWidth: true
|
|
|
|
background: Item {}
|
|
contentItem: ColumnLayout {
|
|
Layout.fillWidth: true
|
|
spacing: Kirigami.Units.smallSpacing
|
|
|
|
Controls.Label {
|
|
Layout.fillWidth: true
|
|
text: i18n("Emergency Numbers")
|
|
elide: Text.ElideRight
|
|
}
|
|
|
|
Repeater {
|
|
model: simEmergencyNumbers
|
|
|
|
Controls.Label {
|
|
Layout.fillWidth: true
|
|
text: modelData
|
|
color: Kirigami.Theme.disabledTextColor
|
|
font: Kirigami.Theme.smallFont
|
|
elide: Text.ElideRight
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|