forked from Shinonome/dots-hyprland
wactioncenter: night light page
This commit is contained in:
+157
@@ -0,0 +1,157 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import Qt5Compat.GraphicalEffects
|
||||
import Quickshell
|
||||
import Quickshell.Bluetooth
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.services.network
|
||||
import qs.modules.common
|
||||
import qs.modules.common.functions
|
||||
import qs.modules.common.widgets
|
||||
import qs.modules.waffle.looks
|
||||
import qs.modules.waffle.actionCenter
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
Component.onCompleted: {
|
||||
if (Bluetooth.defaultAdapter.enabled)
|
||||
Bluetooth.defaultAdapter.discovering = true;
|
||||
}
|
||||
Component.onDestruction: {
|
||||
Bluetooth.defaultAdapter.discovering = false;
|
||||
}
|
||||
|
||||
PageColumn {
|
||||
anchors.fill: parent
|
||||
|
||||
BodyRectangle {
|
||||
implicitHeight: 400
|
||||
implicitWidth: 50
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 4
|
||||
spacing: 4
|
||||
|
||||
HeaderRow {
|
||||
id: headerRow
|
||||
Layout.fillWidth: true
|
||||
title: Translation.tr("Eye protection")
|
||||
}
|
||||
|
||||
StyledFlickable {
|
||||
id: flickable
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
|
||||
contentHeight: contentLayout.implicitHeight
|
||||
contentWidth: width
|
||||
clip: true
|
||||
|
||||
bottomMargin: 12
|
||||
|
||||
NightLightOptions {
|
||||
id: contentLayout
|
||||
width: flickable.width
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Separator {}
|
||||
|
||||
FooterRectangle {}
|
||||
}
|
||||
|
||||
component NightLightOptions: ColumnLayout {
|
||||
spacing: 10
|
||||
|
||||
SectionText {
|
||||
text: Translation.tr("Night Light")
|
||||
}
|
||||
|
||||
ToggleItem {
|
||||
name: Translation.tr("Automatic")
|
||||
description: Translation.tr("Turn on from sunset to sunrise")
|
||||
iconName: "auto"
|
||||
checked: Config.options.light.night.automatic
|
||||
onCheckedChanged: {
|
||||
Config.options.light.night.automatic = checked;
|
||||
}
|
||||
}
|
||||
|
||||
ToggleItem {
|
||||
name: Translation.tr("Enable")
|
||||
description: Translation.tr("More comfortable viewing at night")
|
||||
iconName: WIcons.nightLightIcon
|
||||
checked: Hyprsunset.active
|
||||
onCheckedChanged: {
|
||||
Hyprsunset.toggle(checked);
|
||||
}
|
||||
}
|
||||
|
||||
IntensityEntry {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
SectionText {
|
||||
text: Translation.tr("Anti-flashbang (experimental)")
|
||||
}
|
||||
|
||||
ToggleItem {
|
||||
name: Translation.tr("Enable")
|
||||
description: Translation.tr("Balance brightness based on content")
|
||||
iconName: "flash-off"
|
||||
checked: Config.options.light.antiFlashbang.enable
|
||||
onCheckedChanged: {
|
||||
Config.options.light.antiFlashbang.enable = checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
component IntensityEntry: RowLayout {
|
||||
spacing: 10
|
||||
|
||||
FluentIcon {
|
||||
id: iconWidget
|
||||
Layout.leftMargin: 12
|
||||
Layout.topMargin: 4
|
||||
Layout.bottomMargin: 4
|
||||
Layout.alignment: Qt.AlignTop
|
||||
icon: "temperature"
|
||||
implicitSize: 18
|
||||
}
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
// Layout.leftMargin: 40
|
||||
Layout.rightMargin: 12
|
||||
spacing: 4
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 0
|
||||
WText {
|
||||
Layout.fillWidth: true
|
||||
text: Translation.tr("Intensity")
|
||||
font.pixelSize: Looks.font.pixelSize.large
|
||||
}
|
||||
WText {
|
||||
Layout.fillWidth: true
|
||||
text: Translation.tr("Adjust the color temperature")
|
||||
color: Looks.colors.subfg
|
||||
}
|
||||
}
|
||||
WSlider {
|
||||
Layout.fillWidth: true
|
||||
from: 6500
|
||||
to: 1200
|
||||
value: Config.options.light.night.colorTemperature
|
||||
onMoved: Config.options.light.night.colorTemperature = value
|
||||
tooltipContent: Math.round((value - from) / (to - from) * 100)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user