Deliberate, never automatic. The autonomous gate it replaces recycled the tunnel 652 times in 90 minutes and could not be switched off, because 'nmcli connection down' fired the dispatcher that brought it back up. Reads NM for state rather than tracking a bool. No privilege needed: polkit already lets the seat user activate a system connection. Registered in the ii-phone chooser as well as ii-base, or the phone overlay wins and the delegate never appears.
295 lines
9.7 KiB
QML
295 lines
9.7 KiB
QML
pragma ComponentBehavior: Bound
|
|
import qs.services
|
|
import qs.modules.common
|
|
import qs.modules.common.widgets
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
import Quickshell
|
|
import Quickshell.Bluetooth
|
|
|
|
DelegateChooser {
|
|
id: root
|
|
property bool editMode: false
|
|
required property real baseCellWidth
|
|
required property real baseCellHeight
|
|
required property real spacing
|
|
required property int startingIndex
|
|
property int dragIndex: -1
|
|
signal openAudioOutputDialog()
|
|
signal openAudioInputDialog()
|
|
signal openBluetoothDialog()
|
|
signal openNightLightDialog()
|
|
signal openWifiDialog()
|
|
|
|
role: "type"
|
|
|
|
DelegateChoice { roleValue: "antiFlashbang"; AndroidAntiFlashbangToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
onOpenMenu: {
|
|
root.openNightLightDialog()
|
|
}
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "audio"; AndroidAudioToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
onOpenMenu: {
|
|
root.openAudioOutputDialog()
|
|
}
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "bluetooth"; AndroidBluetoothToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
onOpenMenu: {
|
|
root.openBluetoothDialog()
|
|
}
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "cloudflareWarp"; AndroidCloudflareWarpToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "colorPicker"; AndroidColorPickerToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "darkMode"; AndroidDarkModeToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "easyEffects"; AndroidEasyEffectsToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "gameMode"; AndroidGameModeToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "idleInhibitor"; AndroidIdleInhibitorToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "mic"; AndroidMicToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
onOpenMenu: {
|
|
root.openAudioInputDialog()
|
|
}
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "musicRecognition"; AndroidMusicRecognition {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "network"; AndroidNetworkToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
onOpenMenu: {
|
|
root.openWifiDialog()
|
|
}
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "nightLight"; AndroidNightLightToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
onOpenMenu: {
|
|
root.openNightLightDialog()
|
|
}
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "notifications"; AndroidNotificationToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "onScreenKeyboard"; AndroidOnScreenKeyboardToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "powerProfile"; AndroidPowerProfileToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "vpn"; AndroidVpnToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
|
|
DelegateChoice { roleValue: "screenSnip"; AndroidScreenSnipToggle {
|
|
required property int index
|
|
required property var modelData
|
|
buttonIndex: root.startingIndex + index
|
|
buttonData: modelData
|
|
editMode: root.editMode
|
|
dragIndex: root.dragIndex
|
|
expandedSize: modelData.size > 1
|
|
baseCellWidth: root.baseCellWidth
|
|
baseCellHeight: root.baseCellHeight
|
|
cellSpacing: root.spacing
|
|
cellSize: modelData.size
|
|
} }
|
|
}
|