DisplayTab: toggle ddcutil, disabled by default

This commit is contained in:
Ly-sec
2025-11-03 18:21:37 +01:00
parent 5cce13c730
commit 3ad7271871
10 changed files with 115 additions and 7 deletions
+32 -3
View File
@@ -113,12 +113,17 @@ ColumnLayout {
to: 1
value: brightnessMonitor ? brightnessMonitor.brightness : 0.5
stepSize: 0.01
enabled: brightnessMonitor ? brightnessMonitor.brightnessControlAvailable : false
onMoved: value => {
if (brightnessMonitor.method === "internal") {
if (brightnessMonitor && brightnessMonitor.brightnessControlAvailable) {
brightnessMonitor.setBrightness(value)
}
}
onPressedChanged: (pressed, value) => brightnessMonitor.setBrightness(value)
onPressedChanged: (pressed, value) => {
if (brightnessMonitor && brightnessMonitor.brightnessControlAvailable) {
brightnessMonitor.setBrightness(value)
}
}
Layout.fillWidth: true
}
@@ -127,17 +132,29 @@ ColumnLayout {
Layout.preferredWidth: 55
horizontalAlignment: Text.AlignRight
Layout.alignment: Qt.AlignVCenter
opacity: brightnessMonitor && !brightnessMonitor.brightnessControlAvailable ? 0.5 : 1.0
}
Item {
Layout.preferredWidth: 30
Layout.fillHeight: true
NIcon {
icon: brightnessMonitor.method == "internal" ? "device-laptop" : "device-desktop"
icon: brightnessMonitor && brightnessMonitor.method == "internal" ? "device-laptop" : "device-desktop"
anchors.centerIn: parent
opacity: brightnessMonitor && !brightnessMonitor.brightnessControlAvailable ? 0.5 : 1.0
}
}
}
// Show message when brightness control is not available
NText {
visible: brightnessMonitor && !brightnessMonitor.brightnessControlAvailable
text: !Settings.data.brightness.enableDdcSupport ? I18n.tr("settings.display.monitors.brightness-unavailable.ddc-disabled") : I18n.tr("settings.display.monitors.brightness-unavailable.generic")
pointSize: Style.fontSizeS
color: Color.mOnSurfaceVariant
Layout.fillWidth: true
wrapMode: Text.WordWrap
}
}
}
}
@@ -163,6 +180,18 @@ ColumnLayout {
checked: Settings.data.brightness.enforceMinimum
onToggled: checked => Settings.data.brightness.enforceMinimum = checked
}
NToggle {
Layout.fillWidth: true
label: I18n.tr("settings.display.monitors.external-brightness.label")
description: I18n.tr("settings.display.monitors.external-brightness.description")
checked: Settings.data.brightness.enableDdcSupport
onToggled: checked => {
Settings.data.brightness.enableDdcSupport = checked
// DDC detection will run on next monitor change when enabled
// Monitors will stop using DDC immediately when disabled
}
}
}
NDivider {