// 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 } } } } }