[gnome-control-center] display: Add 'NightLightSupported' property support



commit 44293e9db2c74bc8b17a99abc42fa72b6a697d4f
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Thu Feb 24 12:30:23 2022 +0100

    display: Add 'NightLightSupported' property support

 panels/display/cc-display-config-manager-dbus.c | 17 +++++++++++++++++
 panels/display/cc-display-config-manager.c      |  6 ++++++
 panels/display/cc-display-config-manager.h      |  3 +++
 3 files changed, 26 insertions(+)
---
diff --git a/panels/display/cc-display-config-manager-dbus.c b/panels/display/cc-display-config-manager-dbus.c
index 392140101..678b696db 100644
--- a/panels/display/cc-display-config-manager-dbus.c
+++ b/panels/display/cc-display-config-manager-dbus.c
@@ -33,6 +33,7 @@ struct _CcDisplayConfigManagerDBus
   GVariant *current_state;
 
   gboolean apply_allowed;
+  gboolean night_light_supported;
 };
 
 G_DEFINE_TYPE (CcDisplayConfigManagerDBus,
@@ -169,6 +170,12 @@ bus_gotten (GObject      *object,
   else
     g_warning ("Missing property 'ApplyMonitorsConfigAllowed' on DisplayConfig API");
 
+  variant = g_dbus_proxy_get_cached_property (proxy, "NightLightSupported");
+  if (variant)
+    self->night_light_supported = g_variant_get_boolean (variant);
+  else
+    g_warning ("Missing property 'NightLightSupported' on DisplayConfig API");
+
   get_current_state (self);
 }
 
@@ -176,6 +183,7 @@ static void
 cc_display_config_manager_dbus_init (CcDisplayConfigManagerDBus *self)
 {
   self->apply_allowed = TRUE;
+  self->night_light_supported = TRUE;
   self->cancellable = g_cancellable_new ();
   g_bus_get (G_BUS_TYPE_SESSION, self->cancellable, bus_gotten, self);
 }
@@ -205,6 +213,14 @@ cc_display_config_manager_dbus_get_apply_allowed (CcDisplayConfigManager *pself)
   return self->apply_allowed;
 }
 
+static gboolean
+cc_display_config_manager_dbus_get_night_light_supported (CcDisplayConfigManager *pself)
+{
+  CcDisplayConfigManagerDBus *self = CC_DISPLAY_CONFIG_MANAGER_DBUS (pself);
+
+  return self->night_light_supported;
+}
+
 static void
 cc_display_config_manager_dbus_class_init (CcDisplayConfigManagerDBusClass *klass)
 {
@@ -215,6 +231,7 @@ cc_display_config_manager_dbus_class_init (CcDisplayConfigManagerDBusClass *klas
 
   parent_class->get_current = cc_display_config_manager_dbus_get_current;
   parent_class->get_apply_allowed = cc_display_config_manager_dbus_get_apply_allowed;
+  parent_class->get_night_light_supported = cc_display_config_manager_dbus_get_night_light_supported;
 }
 
 CcDisplayConfigManager *
diff --git a/panels/display/cc-display-config-manager.c b/panels/display/cc-display-config-manager.c
index 3d683c53d..f231edd69 100644
--- a/panels/display/cc-display-config-manager.c
+++ b/panels/display/cc-display-config-manager.c
@@ -65,3 +65,9 @@ cc_display_config_manager_get_apply_allowed (CcDisplayConfigManager *self)
 {
   return CC_DISPLAY_CONFIG_MANAGER_GET_CLASS (self)->get_apply_allowed (self);
 }
+
+gboolean
+cc_display_config_manager_get_night_light_supported (CcDisplayConfigManager *self)
+{
+  return CC_DISPLAY_CONFIG_MANAGER_GET_CLASS (self)->get_night_light_supported (self);
+}
diff --git a/panels/display/cc-display-config-manager.h b/panels/display/cc-display-config-manager.h
index 64f0775e9..ab1e84f85 100644
--- a/panels/display/cc-display-config-manager.h
+++ b/panels/display/cc-display-config-manager.h
@@ -35,12 +35,15 @@ struct _CcDisplayConfigManagerClass
 
   CcDisplayConfig * (*get_current) (CcDisplayConfigManager *self);
   gboolean (* get_apply_allowed) (CcDisplayConfigManager *self);
+  gboolean (* get_night_light_supported) (CcDisplayConfigManager *self);
 };
 
 CcDisplayConfig * cc_display_config_manager_get_current (CcDisplayConfigManager *self);
 
 gboolean cc_display_config_manager_get_apply_allowed (CcDisplayConfigManager *self);
 
+gboolean cc_display_config_manager_get_night_light_supported (CcDisplayConfigManager *self);
+
 void _cc_display_config_manager_emit_changed (CcDisplayConfigManager *self);
 
 G_END_DECLS


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]