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 }