mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
initialstart: Add system navigation module
Add a module to initialstart that allows users to select the type of system navigation they would like (gesture or button).
This commit is contained in:
parent
88462a3b4b
commit
6c1622cf6a
4 changed files with 156 additions and 0 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
plasma_install_package(finished org.kde.plasma.mobileinitialstart.finished mobileinitialstart)
|
plasma_install_package(finished org.kde.plasma.mobileinitialstart.finished mobileinitialstart)
|
||||||
|
plasma_install_package(systemnavigation org.kde.plasma.mobileinitialstart.systemnavigation mobileinitialstart)
|
||||||
add_subdirectory(cellular)
|
add_subdirectory(cellular)
|
||||||
add_subdirectory(prepare)
|
add_subdirectory(prepare)
|
||||||
add_subdirectory(time)
|
add_subdirectory(time)
|
||||||
|
|
|
||||||
101
initialstart/modules/systemnavigation/contents/ui/main.qml
Normal file
101
initialstart/modules/systemnavigation/contents/ui/main.qml
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
// SPDX-FileCopyrightText: 2025 Devin Lin <devin@kde.org>
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
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
|
||||||
|
import org.kde.plasma.private.mobileshell.shellsettingsplugin as ShellSettings
|
||||||
|
|
||||||
|
InitialStartModule {
|
||||||
|
name: i18n("System Navigation")
|
||||||
|
|
||||||
|
contentItem: Item {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
readonly property real cardWidth: Math.min(Kirigami.Units.gridUnit * 30, root.width - Kirigami.Units.gridUnit * 2)
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
anchors {
|
||||||
|
fill: parent
|
||||||
|
topMargin: Kirigami.Units.gridUnit
|
||||||
|
bottomMargin: Kirigami.Units.gridUnit
|
||||||
|
}
|
||||||
|
|
||||||
|
width: root.width
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Label {
|
||||||
|
Layout.leftMargin: Kirigami.Units.gridUnit
|
||||||
|
Layout.rightMargin: Kirigami.Units.gridUnit
|
||||||
|
Layout.alignment: Qt.AlignTop
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
text: i18n("Choose a method to navigate around the system.")
|
||||||
|
}
|
||||||
|
|
||||||
|
FormCard.FormCard {
|
||||||
|
maximumWidth: root.cardWidth
|
||||||
|
Layout.topMargin: Kirigami.Units.gridUnit
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
FormCard.FormRadioDelegate {
|
||||||
|
text: i18n("Gesture navigation")
|
||||||
|
description: i18n("Swipe up from the bottom to see running applications. Flick to go to the home screen.")
|
||||||
|
onClicked: {
|
||||||
|
if (checked && ShellSettings.Settings.navigationPanelEnabled) {
|
||||||
|
ShellSettings.Settings.navigationPanelEnabled = false;
|
||||||
|
}
|
||||||
|
checked = Qt.binding(function () { return !ShellSettings.Settings.navigationPanelEnabled; });
|
||||||
|
}
|
||||||
|
|
||||||
|
Binding on checked {
|
||||||
|
value: !ShellSettings.Settings.navigationPanelEnabled
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FormCard.FormCard {
|
||||||
|
maximumWidth: root.cardWidth
|
||||||
|
Layout.topMargin: Kirigami.Units.largeSpacing
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
FormCard.FormRadioDelegate {
|
||||||
|
text: i18n("Button navigation")
|
||||||
|
description: i18n("Use buttons on a navigation bar to navigate the system.")
|
||||||
|
onClicked: {
|
||||||
|
if (checked && !ShellSettings.Settings.navigationPanelEnabled) {
|
||||||
|
ShellSettings.Settings.navigationPanelEnabled = true;
|
||||||
|
}
|
||||||
|
checked = Qt.binding(function () { return ShellSettings.Settings.navigationPanelEnabled; });
|
||||||
|
}
|
||||||
|
|
||||||
|
Binding on checked {
|
||||||
|
value: ShellSettings.Settings.navigationPanelEnabled
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
Layout.topMargin: Kirigami.Units.gridUnit
|
||||||
|
Layout.leftMargin: Kirigami.Units.gridUnit
|
||||||
|
Layout.rightMargin: Kirigami.Units.gridUnit
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
text: i18n("This can later be changed in the settings.")
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Layout.fillHeight: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
53
initialstart/modules/systemnavigation/metadata.json
Normal file
53
initialstart/modules/systemnavigation/metadata.json
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
{
|
||||||
|
"KPackageStructure": "KPackage/GenericQML",
|
||||||
|
"KPlugin": {
|
||||||
|
"Authors": [
|
||||||
|
{
|
||||||
|
"Email": "devin@kde.org",
|
||||||
|
"Name": "Devin Lin",
|
||||||
|
"Name[ar]": "ديفين لين",
|
||||||
|
"Name[az]": "Devin Lin",
|
||||||
|
"Name[ca@valencia]": "Devin Lin",
|
||||||
|
"Name[ca]": "Devin Lin",
|
||||||
|
"Name[cs]": "Devin Lin",
|
||||||
|
"Name[de]": "Devin Lin",
|
||||||
|
"Name[en_GB]": "Devin Lin",
|
||||||
|
"Name[eo]": "Devin Lin",
|
||||||
|
"Name[es]": "Devin Lin",
|
||||||
|
"Name[eu]": "Devin Lin",
|
||||||
|
"Name[fi]": "Devin Lin",
|
||||||
|
"Name[fr]": "Devin Lin",
|
||||||
|
"Name[gl]": "Devin Lin",
|
||||||
|
"Name[he]": "דווין לין",
|
||||||
|
"Name[hu]": "Devin Lin",
|
||||||
|
"Name[ia]": "Devin Lin",
|
||||||
|
"Name[is]": "Devin Lin",
|
||||||
|
"Name[it]": "Devin Lin",
|
||||||
|
"Name[ka]": "Devin Lin",
|
||||||
|
"Name[ko]": "Devin Lin",
|
||||||
|
"Name[lv]": "Devin Lin",
|
||||||
|
"Name[nl]": "Devin Lin",
|
||||||
|
"Name[nn]": "Devin Lin",
|
||||||
|
"Name[pa]": "ਡੇਵਿਨ ਲਿਨ",
|
||||||
|
"Name[pl]": "Devin Lin",
|
||||||
|
"Name[pt]": "Devin Lin",
|
||||||
|
"Name[pt_BR]": "Devin Lin",
|
||||||
|
"Name[ru]": "Devin Lin",
|
||||||
|
"Name[sa]": "डेविन् लिन्",
|
||||||
|
"Name[sk]": "Devin Lin",
|
||||||
|
"Name[sl]": "Devin Lin",
|
||||||
|
"Name[sv]": "Devin Lin",
|
||||||
|
"Name[tr]": "Devin Lin",
|
||||||
|
"Name[uk]": "Devin Lin",
|
||||||
|
"Name[x-test]": "xxDevin Linxx",
|
||||||
|
"Name[zh_CN]": "Devin Lin",
|
||||||
|
"Name[zh_TW]": "Devin Lin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Description": "System navigation initialstart module for Plasma Mobile",
|
||||||
|
"Id": "org.kde.plasma.mobileinitialstart.systemnavigation",
|
||||||
|
"License": "GPL-2.0+",
|
||||||
|
"Name": "System Navigation",
|
||||||
|
"Website": "https://kde.org"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -15,6 +15,7 @@ const QList<QString> WIZARD_MODULE_ORDER = {QStringLiteral("org.kde.plasma.mobil
|
||||||
QStringLiteral("org.kde.plasma.mobileinitialstart.time"),
|
QStringLiteral("org.kde.plasma.mobileinitialstart.time"),
|
||||||
QStringLiteral("org.kde.plasma.mobileinitialstart.wifi"),
|
QStringLiteral("org.kde.plasma.mobileinitialstart.wifi"),
|
||||||
QStringLiteral("org.kde.plasma.mobileinitialstart.cellular"),
|
QStringLiteral("org.kde.plasma.mobileinitialstart.cellular"),
|
||||||
|
QStringLiteral("org.kde.plasma.mobileinitialstart.systemnavigation"),
|
||||||
QStringLiteral("org.kde.plasma.mobileinitialstart.finished")};
|
QStringLiteral("org.kde.plasma.mobileinitialstart.finished")};
|
||||||
|
|
||||||
Wizard::Wizard(QObject *parent, QQmlEngine *engine)
|
Wizard::Wizard(QObject *parent, QQmlEngine *engine)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue