X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fcfg.c;h=14267dce35f6ee44beaddae39eb56816eca37e8a;hb=30280f0093e8aea4bc8af8a46c2e529e8ec61ac9;hp=7fb64462f779a3fb520713c0e26110629f309498;hpb=bcc60f94fc788d774205bcf824b655ae2fb4e6fc;p=psensor.git diff --git a/src/cfg.c b/src/cfg.c index 7fb6446..14267dc 100644 --- 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; @@ -326,22 +328,22 @@ static void set_slog_interval(int interval) set_int(KEY_SLOG_INTERVAL, interval); } -static bool is_window_decoration_enabled(void) +bool config_is_window_decoration_enabled(void) { return !get_bool(KEY_INTERFACE_WINDOW_DECORATION_DISABLED); } -static bool is_window_keep_below_enabled(void) +bool config_is_window_keep_below_enabled(void) { return get_bool(KEY_INTERFACE_WINDOW_KEEP_BELOW_ENABLED); } -static void set_window_decoration_enabled(bool enabled) +void config_set_window_decoration_enabled(bool enabled) { set_bool(KEY_INTERFACE_WINDOW_DECORATION_DISABLED, !enabled); } -static void set_window_keep_below_enabled(bool enabled) +void config_set_window_keep_below_enabled(bool enabled) { set_bool(KEY_INTERFACE_WINDOW_KEEP_BELOW_ENABLED, enabled); } @@ -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(); @@ -412,8 +419,6 @@ struct config *config_load(void) c->graph_bg_alpha = get_graph_background_alpha(); c->alpha_channel_enabled = is_alpha_channel_enabled(); c->sensorlist_position = get_sensorlist_position(); - c->window_decoration_enabled = is_window_decoration_enabled(); - c->window_keep_below_enabled = is_window_keep_below_enabled(); c->slog_enabled = is_slog_enabled(); c->slog_interval = config_get_slog_interval(); @@ -431,8 +436,6 @@ struct config *config_load(void) if (c->graph_monitoring_duration < 1) c->graph_monitoring_duration = 10; - c->menu_bar_disabled = get_bool(KEY_INTERFACE_MENU_BAR_DISABLED); - c->unity_launcher_count_disabled = get_bool(KEY_INTERFACE_UNITY_LAUNCHER_COUNT_DISABLED); @@ -453,8 +456,6 @@ struct config *config_load(void) c->window_h = 200; } - c->temperature_unit = get_int(KEY_INTERFACE_TEMPERATURE_UNIT); - c->sensor_values_max_length = compute_values_max_length(c); return c; @@ -467,8 +468,6 @@ void config_save(const struct config *c) set_foreground_color(c->graph_fgcolor); set_graph_background_alpha(c->graph_bg_alpha); set_sensorlist_position(c->sensorlist_position); - set_window_decoration_enabled(c->window_decoration_enabled); - set_window_keep_below_enabled(c->window_keep_below_enabled); set_slog_enabled(c->slog_enabled); set_slog_interval(c->slog_interval); @@ -478,8 +477,6 @@ void config_save(const struct config *c) set_int(KEY_SENSOR_UPDATE_INTERVAL, c->sensor_update_interval); - set_bool(KEY_INTERFACE_MENU_BAR_DISABLED, c->menu_bar_disabled); - set_bool(KEY_INTERFACE_UNITY_LAUNCHER_COUNT_DISABLED, c->unity_launcher_count_disabled); @@ -494,8 +491,6 @@ void config_save(const struct config *c) set_int(KEY_INTERFACE_WINDOW_H, c->window_h); set_int(KEY_INTERFACE_WINDOW_DIVIDER_POS, c->window_divider_pos); - - set_int(KEY_INTERFACE_TEMPERATURE_UNIT, c->temperature_unit); } const char *get_psensor_user_dir(void) @@ -559,10 +554,12 @@ static GKeyFile *get_sensor_key_file(void) | G_KEY_FILE_KEEP_TRANSLATIONS, &err); - if (!ret) + if (!ret) { log_warn(_("Failed to load configuration file %s: %s"), path, err->message); + g_error_free(err); + } } return key_file; @@ -626,19 +623,39 @@ static bool sensor_get_double(const char *sid, const char *att, double *d) err = NULL; v = g_key_file_get_double(kfile, sid, att, &err); - if (err) + if (err) { + log_err(err->message); + + g_error_free(err); + return false; + } *d = v; 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) { + if (err->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND) + ret = dft; + else + log_err(err->message); + + g_error_free(err); + } + + return ret; } static void sensor_set_bool(const char *sid, const char *att, bool enabled) @@ -754,7 +771,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 +801,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 +825,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 +835,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 +847,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) @@ -909,7 +932,32 @@ void config_set_udisks2_enable(bool b) set_bool(KEY_PROVIDER_UDISKS2_ENABLED, b); } -int config_get_sensor_unit(void) +enum temperature_unit config_get_temperature_unit(void) { return get_int(KEY_INTERFACE_TEMPERATURE_UNIT); } + +void config_set_temperature_unit(enum temperature_unit u) +{ + set_int(KEY_INTERFACE_TEMPERATURE_UNIT, u); +} + +bool config_is_menu_bar_enabled(void) +{ + return !get_bool(KEY_INTERFACE_MENU_BAR_DISABLED); +} + +void config_set_menu_bar_enabled(bool enabled) +{ + set_bool(KEY_INTERFACE_MENU_BAR_DISABLED, !enabled); +} + +bool config_is_count_visible(void) +{ + return !get_bool(KEY_INTERFACE_UNITY_LAUNCHER_COUNT_DISABLED); +} + +void config_set_count_visible(bool visible) +{ + set_bool(KEY_INTERFACE_UNITY_LAUNCHER_COUNT_DISABLED, !visible); +}