mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
209 lines
7.5 KiB
QML
209 lines
7.5 KiB
QML
|
|
// SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
|
||
|
|
// SPDX-License-Identifier: LGPL-2.0-or-later
|
||
|
|
|
||
|
|
import QtQuick
|
||
|
|
import QtQuick.Window
|
||
|
|
import QtQuick.Layouts
|
||
|
|
import QtQuick.Controls as QQC2
|
||
|
|
|
||
|
|
import org.kde.kirigami 2.20 as Kirigami
|
||
|
|
|
||
|
|
import org.kde.private.mobile.homescreen.folio 1.0 as Folio
|
||
|
|
import org.kde.kirigamiaddons.formcard 1.0 as FormCard
|
||
|
|
|
||
|
|
import '../delegate'
|
||
|
|
|
||
|
|
Kirigami.ApplicationWindow {
|
||
|
|
id: root
|
||
|
|
flags: Qt.FramelessWindowHint
|
||
|
|
|
||
|
|
pageStack.globalToolBar.style: Kirigami.ApplicationHeaderStyle.ToolBar
|
||
|
|
pageStack.globalToolBar.showNavigationButtons: Kirigami.ApplicationHeaderStyle.NoNavigationButtons;
|
||
|
|
|
||
|
|
signal requestConfigureMenu()
|
||
|
|
|
||
|
|
pageStack.initialPage: Kirigami.ScrollablePage {
|
||
|
|
id: page
|
||
|
|
opacity: root.opacity
|
||
|
|
|
||
|
|
titleDelegate: RowLayout {
|
||
|
|
QQC2.ToolButton {
|
||
|
|
Layout.leftMargin: -Kirigami.Units.gridUnit + Kirigami.Units.smallSpacing
|
||
|
|
icon.name: "arrow-left"
|
||
|
|
onClicked: root.close()
|
||
|
|
}
|
||
|
|
|
||
|
|
Kirigami.Heading {
|
||
|
|
level: 1
|
||
|
|
text: page.title
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
title: i18n("Homescreen Settings")
|
||
|
|
|
||
|
|
topPadding: 0
|
||
|
|
bottomPadding: 0
|
||
|
|
leftPadding: 0
|
||
|
|
rightPadding: 0
|
||
|
|
|
||
|
|
ColumnLayout {
|
||
|
|
FormCard.FormHeader {
|
||
|
|
title: i18n("Icons")
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormCard {
|
||
|
|
Kirigami.Theme.inherit: false
|
||
|
|
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
|
||
|
|
|
||
|
|
Item {
|
||
|
|
Layout.preferredHeight: Folio.HomeScreenState.pageCellHeight
|
||
|
|
Layout.fillWidth: true
|
||
|
|
|
||
|
|
AbstractDelegate {
|
||
|
|
anchors.centerIn: parent
|
||
|
|
implicitHeight: Folio.HomeScreenState.pageCellHeight
|
||
|
|
implicitWidth: Folio.HomeScreenState.pageCellWidth
|
||
|
|
name: i18n('Application')
|
||
|
|
|
||
|
|
contentItem: DelegateAppIcon {
|
||
|
|
height: Folio.FolioSettings.delegateIconSize
|
||
|
|
width: Folio.FolioSettings.delegateIconSize
|
||
|
|
source: 'applications-system'
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormCard {
|
||
|
|
id: iconsCard
|
||
|
|
readonly property bool isVerticalOrientation: Folio.HomeScreenState.pageOrientation === Folio.HomeScreenState.RegularPosition ||
|
||
|
|
Folio.HomeScreenState.pageOrientation === Folio.HomeScreenState.RotateUpsideDown
|
||
|
|
|
||
|
|
readonly property string numOfRowsText: i18n("Number of rows")
|
||
|
|
readonly property string numOfColumnsText: i18n("Number of columns")
|
||
|
|
|
||
|
|
FormCard.FormSpinBoxDelegate {
|
||
|
|
id: iconSizeSpinBox
|
||
|
|
label: i18n("Size of icons on homescreen")
|
||
|
|
from: 16
|
||
|
|
to: 128
|
||
|
|
value: Folio.FolioSettings.delegateIconSize
|
||
|
|
onValueChanged: {
|
||
|
|
if (value !== Folio.FolioSettings.delegateIconSize) {
|
||
|
|
Folio.FolioSettings.delegateIconSize = value;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormSpinBoxDelegate {
|
||
|
|
id: rowsSpinBox
|
||
|
|
label: iconsCard.isVerticalOrientation ? iconsCard.numOfRowsText : iconsCard.numOfColumnsText
|
||
|
|
from: 3
|
||
|
|
to: 10
|
||
|
|
value: Folio.FolioSettings.homeScreenRows
|
||
|
|
onValueChanged: {
|
||
|
|
if (value !== Folio.FolioSettings.homeScreenRows) {
|
||
|
|
Folio.FolioSettings.homeScreenRows = value;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormSpinBoxDelegate {
|
||
|
|
id: columnsSpinBox
|
||
|
|
label: iconsCard.isVerticalOrientation ? iconsCard.numOfColumnsText : iconsCard.numOfRowsText
|
||
|
|
from: 3
|
||
|
|
to: 10
|
||
|
|
value: Folio.FolioSettings.homeScreenColumns
|
||
|
|
onValueChanged: {
|
||
|
|
if (value !== Folio.FolioSettings.homeScreenColumns) {
|
||
|
|
Folio.FolioSettings.homeScreenColumns = value;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormSectionText {
|
||
|
|
text: i18n("The rows and columns will swap depending on the screen rotation.")
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormHeader {
|
||
|
|
title: i18n("Labels")
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormCard {
|
||
|
|
FormCard.FormSwitchDelegate {
|
||
|
|
id: showLabelsOnHomeScreen
|
||
|
|
text: i18n("Show labels on homescreen")
|
||
|
|
checked: Folio.FolioSettings.showPagesAppLabels
|
||
|
|
onCheckedChanged: {
|
||
|
|
if (checked != Folio.FolioSettings.showPagesAppLabels) {
|
||
|
|
Folio.FolioSettings.showPagesAppLabels = checked;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormDelegateSeparator { above: showLabelsOnHomeScreen; below: showLabelsInFavourites }
|
||
|
|
|
||
|
|
FormCard.FormSwitchDelegate {
|
||
|
|
id: showLabelsInFavourites
|
||
|
|
text: i18n("Show labels in favorites bar")
|
||
|
|
checked: Folio.FolioSettings.showFavouritesAppLabels
|
||
|
|
onCheckedChanged: {
|
||
|
|
if (checked != Folio.FolioSettings.showFavouritesAppLabels) {
|
||
|
|
Folio.FolioSettings.showFavouritesAppLabels = checked;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormHeader {
|
||
|
|
title: i18n("Favorites Bar")
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormCard {
|
||
|
|
FormCard.FormSwitchDelegate {
|
||
|
|
text: i18n('Show background')
|
||
|
|
icon.name: 'draw-rectangle'
|
||
|
|
checked: Folio.FolioSettings.showFavouritesBarBackground
|
||
|
|
onCheckedChanged: {
|
||
|
|
if (checked !== Folio.FolioSettings.showFavouritesBarBackground) {
|
||
|
|
Folio.FolioSettings.showFavouritesBarBackground = checked;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormHeader {
|
||
|
|
title: i18n("General")
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormCard {
|
||
|
|
FormCard.FormButtonDelegate {
|
||
|
|
id: containmentSettings
|
||
|
|
text: i18n('Switch Homescreen')
|
||
|
|
icon.name: 'settings-configure'
|
||
|
|
onClicked: root.requestConfigureMenu()
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormDelegateSeparator { above: containmentSettings; below: exportSettings }
|
||
|
|
|
||
|
|
FormCard.FormButtonDelegate {
|
||
|
|
id: exportSettings
|
||
|
|
enabled: false
|
||
|
|
text: 'Export layout (in development)'
|
||
|
|
icon.name: 'document-export'
|
||
|
|
}
|
||
|
|
|
||
|
|
FormCard.FormDelegateSeparator { above: exportSettings; below: importSettings }
|
||
|
|
|
||
|
|
FormCard.FormButtonDelegate {
|
||
|
|
id: importSettings
|
||
|
|
enabled: false
|
||
|
|
text: 'Import layout (in development)'
|
||
|
|
icon.name: 'document-import'
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|