mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-06-11 00:47:22 +00:00
126 lines
4.5 KiB
QML
126 lines
4.5 KiB
QML
|
|
// SPDX-FileCopyrightText: 2026 Marco Allegretti
|
||
|
|
// SPDX-License-Identifier: EUPL-1.2
|
||
|
|
|
||
|
|
import QtQuick
|
||
|
|
import QtQuick.Controls
|
||
|
|
import QtQuick.Layouts
|
||
|
|
|
||
|
|
import org.kde.kirigami as Kirigami
|
||
|
|
import org.kde.kirigamiaddons.formcard as FormCard
|
||
|
|
import org.kde.plasma.mobileinitialstart.initialstart
|
||
|
|
|
||
|
|
InitialStartModule {
|
||
|
|
name: i18n("Experience")
|
||
|
|
|
||
|
|
contentItem: Item {
|
||
|
|
id: root
|
||
|
|
|
||
|
|
readonly property real cardWidth: Math.min(Kirigami.Units.gridUnit * 30, root.width - Kirigami.Units.gridUnit * 2)
|
||
|
|
|
||
|
|
function profileLabel(profile) {
|
||
|
|
switch (profile) {
|
||
|
|
case "mobile":
|
||
|
|
return i18n("Touch home")
|
||
|
|
case "desktop":
|
||
|
|
return i18n("Desktop windows")
|
||
|
|
case "gaming":
|
||
|
|
return i18n("Gamepad gaming")
|
||
|
|
case "hybrid":
|
||
|
|
return i18n("Adaptive docked")
|
||
|
|
default:
|
||
|
|
return profile
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
ScrollView {
|
||
|
|
anchors {
|
||
|
|
fill: parent
|
||
|
|
topMargin: Kirigami.Units.gridUnit
|
||
|
|
}
|
||
|
|
|
||
|
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
||
|
|
contentWidth: -1
|
||
|
|
|
||
|
|
ColumnLayout {
|
||
|
|
width: root.width
|
||
|
|
spacing: Kirigami.Units.gridUnit
|
||
|
|
|
||
|
|
Label {
|
||
|
|
Layout.leftMargin: Kirigami.Units.gridUnit
|
||
|
|
Layout.rightMargin: Kirigami.Units.gridUnit
|
||
|
|
Layout.alignment: Qt.AlignTop
|
||
|
|
Layout.fillWidth: true
|
||
|
|
horizontalAlignment: Text.AlignHCenter
|
||
|
|
wrapMode: Text.Wrap
|
||
|
|
text: i18n("Choose how SHIFT should start after setup.")
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormCard {
|
||
|
|
maximumWidth: root.cardWidth
|
||
|
|
Layout.fillWidth: true
|
||
|
|
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
|
||
|
|
|
||
|
|
FormCard.FormRadioDelegate {
|
||
|
|
text: i18n("Touch home")
|
||
|
|
description: i18n("Maximized apps for phones and small tablets.")
|
||
|
|
onClicked: SetupState.applyExperienceDefaults("mobile")
|
||
|
|
|
||
|
|
Binding on checked {
|
||
|
|
value: SetupState.experienceProfile === "mobile"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormRadioDelegate {
|
||
|
|
text: i18n("Desktop windows")
|
||
|
|
description: i18n("Windows, tiling, dock, and Overview.")
|
||
|
|
onClicked: SetupState.applyExperienceDefaults("desktop")
|
||
|
|
|
||
|
|
Binding on checked {
|
||
|
|
value: SetupState.experienceProfile === "desktop"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormRadioDelegate {
|
||
|
|
text: i18n("Gamepad gaming")
|
||
|
|
description: i18n("Game Center layout for handheld PCs.")
|
||
|
|
onClicked: SetupState.applyExperienceDefaults("gaming")
|
||
|
|
|
||
|
|
Binding on checked {
|
||
|
|
value: SetupState.experienceProfile === "gaming"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormRadioDelegate {
|
||
|
|
text: i18n("Adaptive docked")
|
||
|
|
description: i18n("Auto-hide panels for tablets and foldables.")
|
||
|
|
onClicked: SetupState.applyExperienceDefaults("hybrid")
|
||
|
|
|
||
|
|
Binding on checked {
|
||
|
|
value: SetupState.experienceProfile === "hybrid"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormCard {
|
||
|
|
maximumWidth: root.cardWidth
|
||
|
|
Layout.fillWidth: true
|
||
|
|
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
|
||
|
|
|
||
|
|
FormCard.FormTextDelegate {
|
||
|
|
text: i18n("Current selection")
|
||
|
|
description: i18n("%1. Windows: %2, Gaming: %3, Tiling: %4",
|
||
|
|
root.profileLabel(SetupState.experienceProfile),
|
||
|
|
SetupState.convergenceModeEnabled ? i18n("on") : i18n("off"),
|
||
|
|
SetupState.gamingModeEnabled ? i18n("on") : i18n("off"),
|
||
|
|
SetupState.dynamicTilingEnabled ? i18n("on") : i18n("off"))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
Item {
|
||
|
|
Layout.fillHeight: true
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|