Warning, /plasma/plasma-bigscreen/kcms/bigscreen-settings/ui/main.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2020 Aditya Mehra <aix.m@outlook.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 0006 */ 0007 0008 import QtQuick.Layouts 1.14 0009 import QtQuick 2.14 0010 import QtQuick.Window 2.14 0011 import QtQuick.Controls 2.14 0012 import org.kde.plasma.core 2.0 as PlasmaCore 0013 import org.kde.kirigami as Kirigami 0014 import org.kde.kcmutils as KCM 0015 import org.kde.mycroft.bigscreen 1.0 as BigScreen 0016 import "delegates" as Delegates 0017 0018 KCM.SimpleKCM { 0019 id: root 0020 0021 title: i18n("Appearance") 0022 background: null 0023 leftPadding: Kirigami.Units.smallSpacing 0024 topPadding: 0 0025 rightPadding: Kirigami.Units.smallSpacing 0026 bottomPadding: 0 0027 0028 Component.onCompleted: { 0029 desktopThemeView.forceActiveFocus(); 0030 } 0031 0032 function setTheme(packageName){ 0033 kcm.themeName = packageName 0034 } 0035 0036 function setOption(type, result){ 0037 if(type == "coloredTile"){ 0038 kcm.setUseColoredTiles(result); 0039 } 0040 if(type == "exapandableTile"){ 0041 kcm.setUseExpandingTiles(result); 0042 } 0043 if(type == "mycroftIntegration"){ 0044 kcm.setMycroftIntegrationActive(result); 0045 } 0046 if(type == "pmInhibition"){ 0047 kcm.setPmInhibitionActive(result); 0048 } 0049 } 0050 0051 contentItem: FocusScope { 0052 0053 Rectangle { 0054 id: headerAreaTop 0055 anchors.left: parent.left 0056 anchors.right: parent.right 0057 anchors.leftMargin: -Kirigami.Units.largeSpacing 0058 anchors.rightMargin: -Kirigami.Units.largeSpacing 0059 height: parent.height * 0.075 0060 z: 10 0061 gradient: Gradient { 0062 GradientStop { position: 0.1; color: Qt.rgba(0, 0, 0, 0.5) } 0063 GradientStop { position: 0.9; color: Qt.rgba(0, 0, 0, 0.25) } 0064 } 0065 0066 Kirigami.Heading { 0067 level: 1 0068 anchors.fill: parent 0069 anchors.topMargin: Kirigami.Units.largeSpacing 0070 anchors.leftMargin: Kirigami.Units.largeSpacing * 2 0071 anchors.bottomMargin: Kirigami.Units.largeSpacing 0072 color: Kirigami.Theme.textColor 0073 text: "Bigscreen Settings" 0074 } 0075 } 0076 0077 Item { 0078 id: footerMain 0079 anchors.left: parent.left 0080 anchors.right: parent.right 0081 anchors.leftMargin: -Kirigami.Units.largeSpacing 0082 anchors.bottom: parent.bottom 0083 implicitHeight: Kirigami.Units.gridUnit * 2 0084 0085 Button { 0086 id: kcmcloseButton 0087 implicitHeight: Kirigami.Units.gridUnit * 2 0088 width: deviceTimeSettingsArea.opened ? (root.width + Kirigami.Units.largeSpacing) - deviceTimeSettingsArea.width : root.width + Kirigami.Units.largeSpacing 0089 KeyNavigation.up: desktopThemeView 0090 KeyNavigation.down: mycroftIntegrationDelegate 0091 0092 background: Rectangle { 0093 color: kcmcloseButton.activeFocus ? Kirigami.Theme.highlightColor : Kirigami.Theme.backgroundColor 0094 } 0095 0096 contentItem: Item { 0097 RowLayout { 0098 anchors.centerIn: parent 0099 Kirigami.Icon { 0100 Layout.preferredWidth: Kirigami.Units.iconSizes.small 0101 Layout.preferredHeight: Kirigami.Units.iconSizes.small 0102 source: "window-close" 0103 } 0104 Label { 0105 text: i18n("Exit") 0106 } 0107 } 0108 } 0109 0110 onClicked: { 0111 Window.window.close() 0112 } 0113 0114 Keys.onReturnPressed: { 0115 Window.window.close() 0116 } 0117 } 0118 } 0119 0120 Item { 0121 anchors.left: parent.left 0122 anchors.leftMargin: Kirigami.Units.largeSpacing 0123 anchors.top: headerAreaTop.bottom 0124 anchors.topMargin: Kirigami.Units.largeSpacing * 2 0125 anchors.bottom: footerMain.top 0126 width: deviceTimeSettingsArea.opened ? parent.width - deviceTimeSettingsArea.width : parent.width 0127 clip: true 0128 0129 ColumnLayout { 0130 id: contentLayout 0131 width: parent.width 0132 property Item currentSection 0133 y: currentSection ? (currentSection.y > parent.height / 2 ? -currentSection.y + Kirigami.Units.gridUnit * 3 : 0) : 0 0134 anchors.left: parent.left 0135 anchors.leftMargin: Kirigami.Units.largeSpacing 0136 0137 Behavior on y { 0138 NumberAnimation { 0139 duration: Kirigami.Units.longDuration * 2 0140 easing.type: Easing.InOutQuad 0141 } 0142 } 0143 0144 Kirigami.Heading { 0145 id: launcherLookHeader 0146 text: i18n("Launcher Appearance") 0147 layer.enabled: true 0148 color: Kirigami.Theme.textColor 0149 } 0150 0151 Flickable { 0152 id: topContentAreaLayout 0153 Layout.fillWidth: true 0154 Layout.preferredHeight: topContentArea.implicitHeight 0155 contentWidth: topContentArea.implicitWidth 0156 contentHeight: height 0157 0158 Behavior on contentX { 0159 NumberAnimation { 0160 duration: Kirigami.Units.longDuration * 2 0161 easing.type: Easing.InOutQuad 0162 } 0163 } 0164 0165 RowLayout { 0166 id: topContentArea 0167 height: parent.height 0168 0169 Delegates.LocalSettingDelegate { 0170 id: mycroftIntegrationDelegate 0171 implicitWidth: desktopThemeView.view.cellWidth * 3 0172 implicitHeight: desktopThemeView.view.cellHeight 0173 isChecked: kcm.mycroftIntegrationActive() ? 1 : 0 0174 name: "Mycroft Integration" 0175 customType: "mycroftIntegration" 0176 KeyNavigation.up: kcmcloseButton 0177 KeyNavigation.right: pmInhibitionDelegate 0178 KeyNavigation.down: desktopThemeView 0179 onActiveFocusChanged: { 0180 if(activeFocus){ 0181 contentLayout.currentSection = topContentArea 0182 topContentAreaLayout.contentX = mycroftIntegrationDelegate.x 0183 } 0184 } 0185 } 0186 0187 Delegates.LocalSettingDelegate { 0188 id: pmInhibitionDelegate 0189 implicitWidth: desktopThemeView.view.cellWidth * 3 0190 implicitHeight: desktopThemeView.view.cellHeight 0191 isChecked: kcm.pmInhibitionActive() ? 1 : 0 0192 name: i18n("Power Inhibition") 0193 customType: "pmInhibition" 0194 KeyNavigation.up: kcmcloseButton 0195 KeyNavigation.right: coloredTileDelegate 0196 KeyNavigation.left: mycroftIntegrationDelegate 0197 KeyNavigation.down: desktopThemeView 0198 onActiveFocusChanged: { 0199 if(activeFocus){ 0200 contentLayout.currentSection = topContentArea 0201 topContentAreaLayout.contentX = pmInhibitionDelegate.x 0202 } 0203 } 0204 } 0205 0206 Delegates.LocalSettingDelegate { 0207 id: coloredTileDelegate 0208 implicitWidth: desktopThemeView.view.cellWidth * 3 0209 implicitHeight: desktopThemeView.view.cellHeight 0210 isChecked: kcm.useColoredTiles() ? 1 : 0 0211 name: i18n("Colored Tiles") 0212 customType: "coloredTile" 0213 KeyNavigation.up: kcmcloseButton 0214 KeyNavigation.left: pmInhibitionDelegate 0215 KeyNavigation.right: expandableTileDelegate 0216 KeyNavigation.down: desktopThemeView 0217 onActiveFocusChanged: { 0218 if(activeFocus){ 0219 contentLayout.currentSection = topContentArea 0220 topContentAreaLayout.contentX = coloredTileDelegate.x 0221 } 0222 } 0223 } 0224 0225 Delegates.LocalSettingDelegate { 0226 id: expandableTileDelegate 0227 implicitWidth: desktopThemeView.cellWidth * 3 0228 implicitHeight: desktopThemeView.cellHeight 0229 isChecked: kcm.useExpandingTiles() ? 1 : 0 0230 name: i18n("Expanding Tiles") 0231 customType: "exapandableTile" 0232 KeyNavigation.up: kcmcloseButton 0233 KeyNavigation.left: coloredTileDelegate 0234 KeyNavigation.right: timeDateSettingsDelegate 0235 KeyNavigation.down: desktopThemeView 0236 onActiveFocusChanged: { 0237 if(activeFocus){ 0238 contentLayout.currentSection = topContentArea 0239 topContentAreaLayout.contentX = expandableTileDelegate.x 0240 } 0241 } 0242 } 0243 0244 Delegates.TimeDelegate { 0245 id: timeDateSettingsDelegate 0246 implicitWidth: desktopThemeView.cellWidth * 3 0247 implicitHeight: desktopThemeView.cellHeight 0248 name: i18n("Adjust Date & Time") 0249 KeyNavigation.up: kcmcloseButton 0250 KeyNavigation.left: expandableTileDelegate 0251 KeyNavigation.down: desktopThemeView 0252 onActiveFocusChanged: { 0253 if(activeFocus){ 0254 contentLayout.currentSection = topContentArea 0255 topContentAreaLayout.contentX = timeDateSettingsDelegate.x 0256 } 0257 } 0258 } 0259 } 0260 } 0261 0262 Item { 0263 Layout.fillWidth: true 0264 Layout.preferredHeight: Kirigami.Units.largeSpacing * 2 0265 } 0266 0267 BigScreen.TileView { 0268 id: desktopThemeView 0269 Layout.fillWidth: true 0270 Layout.fillHeight: true 0271 Layout.alignment: Qt.AlignTop 0272 focus: true 0273 model: kcm.themeListModel 0274 view.cacheBuffer: parent.width * 2 0275 title: i18n("General Appearance") 0276 navigationUp: mycroftIntegrationDelegate 0277 navigationDown: kcmcloseButton 0278 enabled: !deviceTimeSettingsArea.opened 0279 delegate: Delegates.ThemeDelegate { 0280 text: model.display 0281 } 0282 0283 onActiveFocusChanged: { 0284 if(activeFocus){ 0285 contentLayout.currentSection = desktopThemeView 0286 } 0287 } 0288 0289 Behavior on x { 0290 NumberAnimation { 0291 duration: Kirigami.Units.longDuration * 2 0292 easing.type: Easing.InOutQuad 0293 } 0294 } 0295 } 0296 } 0297 } 0298 0299 DeviceTimeSettings { 0300 id: deviceTimeSettingsArea 0301 anchors.top: parent.top 0302 anchors.bottom: parent.bottom 0303 anchors.right: parent.right 0304 anchors.rightMargin: -Kirigami.Units.smallSpacing 0305 0306 property bool opened: false 0307 0308 width: parent.width / 3.5 0309 visible: opened 0310 enabled: opened 0311 } 0312 } 0313 } 0314