made count visible setting change dynamic
[psensor.git] / src / main.c
index 1a6d774..defc60d 100644 (file)
@@ -53,8 +53,6 @@
 #include <ui_status.h>
 #include <ui_unity.h>
 
-
-
 static const char *program_name;
 
 static void print_version(void)
@@ -187,6 +185,7 @@ static gboolean ui_refresh_thread(gpointer data)
        struct config *cfg;
        gboolean ret;
        struct ui_psensor *ui = (struct ui_psensor *)data;
+       int use_celsius;
 
        ret = TRUE;
        cfg = ui->config;
@@ -200,9 +199,11 @@ static gboolean ui_refresh_thread(gpointer data)
        if (is_appindicator_supported() || is_status_supported())
                indicators_update(ui);
 
-       ui_unity_launcher_entry_update(ui->sensors,
-                                      !cfg->unity_launcher_count_disabled,
-                                      cfg->temperature_unit == CELSIUS);
+       if (config_get_temperature_unit() == CELSIUS)
+               use_celsius = 1;
+       else
+               use_celsius = 0;
+       ui_unity_launcher_entry_update(ui->sensors);
 
        if (ui->graph_update_interval != cfg->graph_update_interval) {
                ui->graph_update_interval = cfg->graph_update_interval;
@@ -226,71 +227,40 @@ static void cb_alarm_raised(struct psensor *sensor, void *data)
        }
 }
 
-static void associate_colors(struct psensor **sensors)
-{
-       GdkRGBA rgba;
-       /* copied from the default colors of the gtk color color
-        * chooser. */
-       const char *default_colors[27] = {
-               "#ef2929",  /* Scarlet Red */
-               "#fcaf3e",  /* Orange */
-               "#fce94f",  /* Butter */
-               "#8ae234",  /* Chameleon */
-               "#729fcf",  /* Sky Blue */
-               "#ad7fa8",  /* Plum */
-               "#e9b96e",  /* Chocolate */
-               "#888a85",  /* Aluminum 1 */
-               "#eeeeec",  /* Aluminum 2 */
-               "#cc0000",
-               "#f57900",
-               "#edd400",
-               "#73d216",
-               "#3465a4",
-               "#75507b",
-               "#c17d11",
-               "#555753",
-               "#d3d7cf",
-               "#a40000",
-               "#ce5c00",
-               "#c4a000",
-               "#4e9a06",
-               "#204a87",
-               "#5c3566",
-               "#8f5902",
-               "#2e3436",
-               "#babdb6"
-       };
-       int i;
-       struct psensor **cur;
-       struct color c;
-
-       for (cur = sensors, i = 0; *cur; cur++, i++) {
-               gdk_rgba_parse(&rgba, default_colors[i % 27]);
-               c.red = rgba.red;
-               c.green = rgba.green;
-               c.blue = rgba.blue;
-
-               (*cur)->color = config_get_sensor_color((*cur)->id, &c);
-       }
-}
-
 static void
 associate_cb_alarm_raised(struct psensor **sensors, struct ui_psensor *ui)
 {
-       struct psensor **sensor_cur = sensors;
+       bool ret;
+       struct psensor *s;
+       double d, high_temp;
 
-       while (*sensor_cur) {
-               struct psensor *s = *sensor_cur;
+       high_temp = config_get_default_high_threshold_temperature();
+
+       while (*sensors) {
+               s = *sensors;
 
                s->cb_alarm_raised = cb_alarm_raised;
                s->cb_alarm_raised_data = ui;
 
-               s->alarm_high_threshold
-                       = config_get_sensor_alarm_high_threshold(s->id);
-               s->alarm_low_threshold
-                       = config_get_sensor_alarm_low_threshold(s->id);
+               ret = config_get_sensor_alarm_high_threshold
+                       (s->id, &s->alarm_high_threshold);
 
-               sensor_cur++;
+               if (!ret) {
+                       if (s->max == UNKNOWN_DBL_VALUE) {
+                               if (s->type & SENSOR_TYPE_TEMP)
+                                       s->alarm_high_threshold = high_temp;
+                       } else {
+                               s->alarm_high_threshold = s->max;
+                       }
+               }
+
+               ret = config_get_sensor_alarm_low_threshold
+                       (s->id, &s->alarm_low_threshold);
+
+               if (!ret && s->min != UNKNOWN_DBL_VALUE)
+                       s->alarm_low_threshold = s->min;
+
+               sensors++;
        }
 }
 
@@ -453,7 +423,6 @@ static struct psensor **create_sensors_list(const char *url)
        }
 
        associate_preferences(sensors);
-       associate_colors(sensors);
 
        return sensors;
 }
@@ -567,6 +536,7 @@ int main(int argc, char **argv)
        g_timeout_add(1000 * ui.graph_update_interval, ui_refresh_thread, &ui);
 
        ui_appindicator_init(&ui);
+       ui_unity_init();
 
        gdk_notify_startup_complete();