added default-sensor-alarm-enabled support.
authorJean-Philippe Orsini <jeanfi@gmail.com>
Mon, 10 Nov 2014 11:50:06 +0000 (12:50 +0100)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Mon, 10 Nov 2014 11:50:06 +0000 (12:50 +0100)
NEWS
src/cfg.c
src/psensor.gschema.xml

diff --git a/NEWS b/NEWS
index 228e2de..dc7790e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -14,7 +14,8 @@ v1.1.4
 * Fixed string not translatable. (Closes: #138076).
 * Added a default high threshold for temperature.
 * Made help2man optional.
-* New dconf setting +default-high-threshold-temperature+.
+* New dconf settings +default-high-threshold-temperature+,
+  and +default-sensor-alarm-enabled+.
 
 v1.1.3
 ------
index 7fb6446..f0fbd8a 100644 (file)
--- a/src/cfg.c
+++ b/src/cfg.c
@@ -121,6 +121,8 @@ static const char *KEY_PROVIDER_UDISKS2_ENABLED = "provider-udisks2-enabled";
 
 static const char *KEY_DEFAULT_HIGH_THRESHOLD_TEMPERATURE
 = "default-high-threshold-temperature";
+static const char *KEY_DEFAULT_SENSOR_ALARM_ENABLED
+= "default-sensor-alarm-enabled";
 
 static GSettings *settings;
 
@@ -361,6 +363,11 @@ double config_get_default_high_threshold_temperature(void)
        return get_double(KEY_DEFAULT_HIGH_THRESHOLD_TEMPERATURE);
 }
 
+static bool config_get_default_sensor_alarm_enabled(void)
+{
+       return get_bool(KEY_DEFAULT_SENSOR_ALARM_ENABLED);
+}
+
 static void init(void)
 {
        log_fct_enter();
@@ -633,12 +640,24 @@ static bool sensor_get_double(const char *sid, const char *att, double *d)
        return true;
 }
 
-static bool sensor_get_bool(const char *sid, const char *att)
+static bool sensor_get_bool(const char *sid, const char *att, bool dft)
 {
        GKeyFile *kfile;
+       GError *err;
+       bool ret;
 
        kfile = get_sensor_key_file();
-       return g_key_file_get_boolean(kfile, sid, att, NULL);
+       err = NULL;
+
+       ret = g_key_file_get_boolean(kfile, sid, att, &err);
+
+       if (err && err->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND)
+               ret = dft;
+
+       if (err)
+               g_error_free(err);
+
+       return ret;
 }
 
 static void sensor_set_bool(const char *sid, const char *att, bool enabled)
@@ -754,7 +773,7 @@ GdkRGBA *config_get_sensor_color(const char *sid)
 
 bool config_is_sensor_graph_enabled(const char *sid)
 {
-       return sensor_get_bool(sid, ATT_SENSOR_GRAPH_ENABLED);
+       return sensor_get_bool(sid, ATT_SENSOR_GRAPH_ENABLED, false);
 }
 
 void config_set_sensor_graph_enabled(const char *sid, bool enabled)
@@ -784,7 +803,9 @@ void config_set_sensor_alarm_low_threshold(const char *sid, int threshold)
 
 bool config_is_appindicator_enabled(const char *sid)
 {
-       return !sensor_get_bool(sid, ATT_SENSOR_APPINDICATOR_MENU_DISABLED);
+       return !sensor_get_bool(sid,
+                               ATT_SENSOR_APPINDICATOR_MENU_DISABLED,
+                               false);
 }
 
 void config_set_appindicator_enabled(const char *sid, bool enabled)
@@ -806,7 +827,7 @@ void config_set_sensor_position(const char *sid, int pos)
 
 bool config_get_sensor_alarm_enabled(const char *sid)
 {
-       return sensor_get_bool(sid, ATT_SENSOR_ALARM_ENABLED);
+       return sensor_get_bool(sid, ATT_SENSOR_ALARM_ENABLED, false);
 }
 
 void config_set_sensor_alarm_enabled(const char *sid, bool enabled)
@@ -816,7 +837,9 @@ void config_set_sensor_alarm_enabled(const char *sid, bool enabled)
 
 bool config_is_sensor_enabled(const char *sid)
 {
-       return !sensor_get_bool(sid, ATT_SENSOR_HIDE);
+       return !sensor_get_bool(sid,
+                               ATT_SENSOR_HIDE,
+                               config_get_default_sensor_alarm_enabled());
 }
 
 void config_set_sensor_enabled(const char *sid, bool enabled)
@@ -826,7 +849,9 @@ void config_set_sensor_enabled(const char *sid, bool enabled)
 
 bool config_is_appindicator_label_enabled(const char *sid)
 {
-       return sensor_get_bool(sid, ATT_SENSOR_APPINDICATOR_LABEL_ENABLED);
+       return sensor_get_bool(sid,
+                              ATT_SENSOR_APPINDICATOR_LABEL_ENABLED,
+                              false);
 }
 
 void config_set_appindicator_label_enabled(const char *sid, bool enabled)
index 08a46ca..671a998 100644 (file)
       <description>Default high threshold for the thermal sensors
       (celsius).</description>
     </key>
+    <key name="default-sensor-alarm-enabled" type="b">
+      <default>false</default>
+      <summary>Whether sensor alarm is enabled by default.</summary>
+      <description>Whether sensor alarm is enabled by
+      default.</description>
+    </key>
     <!-- sensors information providers -->
     <key name="provider-lmsensors-enabled" type="b">
       <default>true</default>