From c62e79f8b8ed19ce89f648aa00b6193a302fda0a Mon Sep 17 00:00:00 2001 From: ECQZXC Date: Thu, 6 Mar 2025 16:59:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=89=B2=E6=B8=A9=E8=B0=83=E8=8A=82?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=94=A8=E6=88=B7=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 色温调节支持用户自定义 Log: 色温调节支持用户自定义 --- display/color_temp.go | 7 +++-- display/display_dbusutil.go | 51 +++++++++++++++++++++++-------------- display/manager_ifc.go | 6 ++++- 3 files changed, 42 insertions(+), 22 deletions(-) diff --git a/display/color_temp.go b/display/color_temp.go index 530693bb..9affd2fa 100644 --- a/display/color_temp.go +++ b/display/color_temp.go @@ -8,7 +8,6 @@ import ( "bufio" "bytes" "errors" - configManager "github.com/linuxdeepin/go-dbus-factory/org.desktopspec.ConfigManager" "math" "os" "os/exec" @@ -18,6 +17,8 @@ import ( "sync" "time" + configManager "github.com/linuxdeepin/go-dbus-factory/org.desktopspec.ConfigManager" + "github.com/godbus/dbus/v5" geoclue2 "github.com/linuxdeepin/go-dbus-factory/system/org.freedesktop.geoclue2" "github.com/linuxdeepin/go-lib/dbusutil" @@ -544,8 +545,10 @@ func (m *Manager) setCustomColorTempTimePeriod(timePeriod string) error { re := regexp.MustCompile(pattern) var err error if re.MatchString(timePeriod) { - m.CustomColorTempTimePeriod = timePeriod err = setGlobalDconfValue(DSettingsAppID, DSettingsDisplayName, "", DSettingsKeyCustomModeTime, dbus.MakeVariant(timePeriod)) + if err == nil { + m.setPropCustomColorTempTimePeriod(timePeriod) + } } else { err = errors.New("The timeperiod parameter is invalid") } diff --git a/display/display_dbusutil.go b/display/display_dbusutil.go index 04de6fb5..dd923b39 100644 --- a/display/display_dbusutil.go +++ b/display/display_dbusutil.go @@ -170,6 +170,32 @@ func (v *Manager) emitPropChangedMaxBacklightBrightness(value uint32) error { return v.service.EmitPropertyChanged(v, "MaxBacklightBrightness", value) } +func (v *Manager) setPropColorTemperatureEnabled(value bool) (changed bool) { + if v.ColorTemperatureEnabled != value { + v.ColorTemperatureEnabled = value + v.emitPropChangedColorTemperatureEnabled(value) + return true + } + return false +} + +func (v *Manager) emitPropChangedColorTemperatureEnabled(value bool) error { + return v.service.EmitPropertyChanged(v, "ColorTemperatureEnabled", value) +} + +func (v *Manager) setPropSupportColorTemperature(value bool) (changed bool) { + if v.SupportColorTemperature != value { + v.SupportColorTemperature = value + v.emitPropChangedSupportColorTemperature(value) + return true + } + return false +} + +func (v *Manager) emitPropChangedSupportColorTemperature(value bool) error { + return v.service.EmitPropertyChanged(v, "SupportColorTemperature", value) +} + func (v *Manager) setPropColorTemperatureMode(value int32) (changed bool) { if v.ColorTemperatureMode != value { v.ColorTemperatureMode = value @@ -196,30 +222,17 @@ func (v *Manager) emitPropChangedColorTemperatureManual(value int32) error { return v.service.EmitPropertyChanged(v, "ColorTemperatureManual", value) } -func (v *Manager) setPropColorTemperatureEnabled(value bool) (changed bool) { - if v.ColorTemperatureEnabled != value { - v.ColorTemperatureEnabled = value - v.emitPropChangedColorTemperatureEnabled(value) - return true - } - return false -} - -func (v *Manager) emitPropChangedColorTemperatureEnabled(value bool) error { - return v.service.EmitPropertyChanged(v, "ColorTemperatureEnabled", value) -} - -func (v *Manager) setPropSupportColorTemperature(value bool) (changed bool) { - if v.SupportColorTemperature != value { - v.SupportColorTemperature = value - v.emitPropChangedSupportColorTemperature(value) +func (v *Manager) setPropCustomColorTempTimePeriod(value string) (changed bool) { + if v.CustomColorTempTimePeriod != value { + v.CustomColorTempTimePeriod = value + v.emitPropChangedCustomColorTempTimePeriod(value) return true } return false } -func (v *Manager) emitPropChangedSupportColorTemperature(value bool) error { - return v.service.EmitPropertyChanged(v, "SupportColorTemperature", value) +func (v *Manager) emitPropChangedCustomColorTempTimePeriod(value string) error { + return v.service.EmitPropertyChanged(v, "CustomColorTempTimePeriod", value) } func (v *Monitor) setPropID(value uint32) (changed bool) { diff --git a/display/manager_ifc.go b/display/manager_ifc.go index 0b981b98..e71e5a45 100644 --- a/display/manager_ifc.go +++ b/display/manager_ifc.go @@ -318,5 +318,9 @@ func (m *Manager) SupportSetColorTemperature() (bool, *dbus.Error) { func (m *Manager) SetCustomColorTempTimePeriod(timePeriod string) *dbus.Error { err := m.setCustomColorTempTimePeriod(timePeriod) - return dbusutil.ToError(err) + if err != nil { + logger.Warning(err) + return dbusutil.ToError(err) + } + return nil }