Warning, /plasma/plasma-workspace/applets/brightness/package/contents/ui/PopupDialog.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2011 Viranch Mehta <viranch.mehta@gmail.com> 0003 SPDX-FileCopyrightText: 2013-2016 Kai Uwe Broulik <kde@privat.broulik.de> 0004 SPDX-FileCopyrightText: 2023 Natalie Clarius <natalie.clarius@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 import QtQuick 0010 import QtQuick.Layouts 0011 0012 import org.kde.plasma.components as PlasmaComponents3 0013 import org.kde.plasma.extras as PlasmaExtras 0014 import org.kde.kirigami as Kirigami 0015 0016 PlasmaExtras.Representation { 0017 id: dialog 0018 0019 property bool isBrightnessAvailable 0020 property bool isScreenBrightnessAvailable 0021 property bool isKeyboardBrightnessAvailable 0022 0023 KeyNavigation.down: screenBrightnessSlider.Visible ? screenBrightnessSlider : screenBrightnessSlider.KeyNavigation.down 0024 0025 contentItem: PlasmaComponents3.ScrollView { 0026 id: scrollView 0027 0028 focus: false 0029 0030 function positionViewAtItem(item) { 0031 if (!PlasmaComponents3.ScrollBar.vertical.visible) { 0032 return; 0033 } 0034 const rect = brightnessList.mapFromItem(item, 0, 0, item.width, item.height); 0035 if (rect.y < scrollView.contentItem.contentY) { 0036 scrollView.contentItem.contentY = rect.y; 0037 } else if (rect.y + rect.height > scrollView.contentItem.contentY + scrollView.height) { 0038 scrollView.contentItem.contentY = rect.y + rect.height - scrollView.height; 0039 } 0040 } 0041 0042 contentItem: Column { 0043 id: brightnessList 0044 0045 spacing: Kirigami.Units.smallSpacing * 2 0046 0047 readonly property Item firstHeaderItem: { 0048 if (screenBrightnessSlider.visible) { 0049 return screenBrightnessSlider; 0050 } else if (keyboardBrightnessSlider.visible) { 0051 return keyboardBrightnessSlider; 0052 } 0053 return null; 0054 } 0055 readonly property Item lastHeaderItem: { 0056 if (keyboardBrightnessSlider.visible) { 0057 return keyboardBrightnessSlider; 0058 } else if (screenBrightnessSlider.visible) { 0059 return screenBrightnessSlider; 0060 } 0061 return null; 0062 } 0063 0064 BrightnessItem { 0065 id: screenBrightnessSlider 0066 0067 width: scrollView.availableWidth 0068 0069 icon.name: "video-display-brightness" 0070 text: i18n("Display Brightness") 0071 type: BrightnessItem.Type.Screen 0072 visible: dialog.isScreenBrightnessAvailable 0073 value: brightnesscontrol.screenBrightness 0074 maximumValue: brightnesscontrol.maximumScreenBrightness 0075 0076 KeyNavigation.up: dialog.KeyNavigation.up 0077 KeyNavigation.down: keyboardBrightnessSlider.visible ? keyboardBrightnessSlider : keyboardBrightnessSlider.KeyNavigation.down 0078 KeyNavigation.backtab: dialog.KeyNavigation.backtab 0079 KeyNavigation.tab: KeyNavigation.down 0080 0081 stepSize: brightnesscontrol.maximumScreenBrightness/100 0082 0083 onMoved: brightnesscontrol.screenBrightness = value 0084 onActiveFocusChanged: if (activeFocus) scrollView.positionViewAtItem(this) 0085 0086 // Manually dragging the slider around breaks the binding 0087 Connections { 0088 target: brightnesscontrol 0089 function onScreenBrightnessChanged() { 0090 screenBrightnessSlider.value = brightnesscontrol.screenBrightness; 0091 } 0092 } 0093 } 0094 0095 BrightnessItem { 0096 id: keyboardBrightnessSlider 0097 0098 width: scrollView.availableWidth 0099 0100 icon.name: "input-keyboard-brightness" 0101 text: i18n("Keyboard Brightness") 0102 type: BrightnessItem.Type.Keyboard 0103 showPercentage: false 0104 value: brightnesscontrol.keyboardBrightness 0105 maximumValue: brightnesscontrol.maximumKeyboardBrightness 0106 visible: dialog.isKeyboardBrightnessAvailable 0107 0108 KeyNavigation.up: screenBrightnessSlider.visible ? screenBrightnessSlider : screenBrightnessSlider.KeyNavigation.up 0109 KeyNavigation.down: nightColorItem 0110 KeyNavigation.backtab: KeyNavigation.up 0111 KeyNavigation.tab: KeyNavigation.down 0112 0113 onMoved: brightnesscontrol.keyboardBrightness = value 0114 onActiveFocusChanged: if (activeFocus) scrollView.positionViewAtItem(this) 0115 0116 // Manually dragging the slider around breaks the binding 0117 Connections { 0118 target: brightnesscontrol 0119 function onKeyboardBrightnessChanged() { 0120 keyboardBrightnessSlider.value = brightnesscontrol.keyboardBrightness; 0121 } 0122 } 0123 } 0124 0125 NightColorItem { 0126 id: nightColorItem 0127 0128 width: scrollView.availableWidth 0129 0130 KeyNavigation.up: keyboardBrightnessSlider.visible ? keyboardBrightnessSlider : keyboardBrightnessSlider.KeyNavigation.up 0131 0132 text: i18n("Night Light") 0133 } 0134 0135 } 0136 } 0137 } 0138