400c800deb
Include a page that allows (de)selecting and configuring plugins This is one of the last missing pieces for feature parity with the KCM.
105 lines
3.3 KiB
QML
105 lines
3.3 KiB
QML
import QtQuick 2.2
|
|
import QtQuick.Controls 2.5
|
|
import org.kde.kirigami 2.4 as Kirigami
|
|
import org.kde.kdeconnect 1.0
|
|
|
|
ListView {
|
|
|
|
Component.onCompleted: {
|
|
root.leftPadding = 0
|
|
root.rightPadding = 0
|
|
root.topPadding = 0
|
|
root.bottomPadding = 0
|
|
}
|
|
|
|
property string device
|
|
|
|
property var action: Kirigami.Action {
|
|
icon.name: "list-add"
|
|
text: i18n("Add command")
|
|
onTriggered: addDialog.open()
|
|
}
|
|
|
|
model: CommandsModel {
|
|
id: commandModel
|
|
deviceId: device
|
|
}
|
|
|
|
delegate: Kirigami.SwipeListItem {
|
|
width: parent.width
|
|
enabled: true
|
|
|
|
Label {
|
|
text: i18n("%1 <br> <i>%2</i>", name, command)
|
|
}
|
|
|
|
actions: [
|
|
Kirigami.Action {
|
|
icon.name: "delete"
|
|
onTriggered: commandModel.removeCommand(index)
|
|
}
|
|
]
|
|
}
|
|
|
|
Dialog {
|
|
id: addDialog
|
|
title: "Add command"
|
|
|
|
standardButtons: Dialog.Save | Dialog.Cancel
|
|
|
|
Kirigami.FormLayout {
|
|
TextField {
|
|
id: nameField
|
|
Kirigami.FormData.label: i18n("Name:")
|
|
}
|
|
TextField {
|
|
id: commandField
|
|
Kirigami.FormData.label: i18n("Command:")
|
|
}
|
|
|
|
ComboBox {
|
|
Kirigami.FormData.label: i18n("Sample commands:")
|
|
textRole: "name"
|
|
model: ListModel {
|
|
id: sampleCommands
|
|
ListElement {
|
|
name: "Sample command"
|
|
command: ""
|
|
}
|
|
ListElement {
|
|
name: "Suspend"
|
|
command: "systemctl suspend"
|
|
}
|
|
ListElement {
|
|
name: "Maximum Brightness"
|
|
command: "qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl org.kde.Solid.PowerManagement.Actions.BrightnessControl.setBrightness `qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl org.kde.Solid.PowerManagement.Actions.BrightnessControl.brightnessMax`"
|
|
}
|
|
ListElement {
|
|
name: "Lock Screen"
|
|
command: "loginctl lock-session"
|
|
}
|
|
ListElement {
|
|
name: "Unlock Screen"
|
|
command: "loginctl unlock-session"
|
|
}
|
|
ListElement {
|
|
name: "Close All Vaults"
|
|
command: "qdbus org.kde.kded5 /modules/plasmavault closeAllVaults"
|
|
}
|
|
ListElement {
|
|
name: "Forcefully Close All Vaults"
|
|
command: "qdbus org.kde.kded5 /modules/plasmavault forceCloseAllVaults"
|
|
}
|
|
}
|
|
onActivated: {
|
|
if (index > 0) {
|
|
nameField.text = sampleCommands.get(index).name
|
|
commandField.text = sampleCommands.get(index).command
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
onAccepted: commandModel.addCommand(nameField.text, commandField.text)
|
|
}
|
|
}
|