hide sensors in the application indicator
[psensor.git] / src / main.c
index d16174e..539d402 100644 (file)
@@ -97,13 +97,14 @@ static void print_help()
 
        puts("");
 
-       puts(_("  -u, --url=URL       "
-              "the URL of the psensor-server, example: http://hostname:3131"));
-       puts(_("  --use-libatasmart   "
-              "use atasmart library for disk monitoring "
-              "instead of hddtemp daemon"));
-       puts(_("  -n, --new-instance  "
-              "force the creation of a new Psensor application"));
+       puts(_(
+"  -u, --url=URL       the URL of the psensor-server,\n"
+"                      example: http://hostname:3131"));
+       puts(_(
+"  --use-libatasmart   use atasmart library for disk monitoring instead of\n"
+"                      hddtemp daemon"));
+       puts(_(
+"  -n, --new-instance  force the creation of a new Psensor application"));
        puts("");
 
        puts(_("  -d, --debug=LEVEL   "
@@ -117,23 +118,20 @@ static void print_help()
 }
 
 /*
-  Updates the size of the sensor values if different than the
-  configuration.
* Updates the size of the sensor values if different than the
* configuration.
  */
-void
+static void
 update_psensor_values_size(struct psensor **sensors, struct config *cfg)
 {
-       struct psensor **cur;
+       struct psensor **cur, *s;
 
-       cur = sensors;
-       while (*cur) {
-               struct psensor *s = *cur;
+       for (cur = sensors; *cur; cur++) {
+               s = *cur;
 
                if (s->values_max_length != cfg->sensor_values_max_length)
                        psensor_values_resize(s,
                                              cfg->sensor_values_max_length);
-
-               cur++;
        }
 }
 
@@ -241,7 +239,7 @@ gboolean ui_refresh_thread(gpointer data)
 static void cb_alarm_raised(struct psensor *sensor, void *data)
 {
 #ifdef HAVE_LIBNOTIFY
-       if (sensor->enabled)
+       if (sensor->alarm_enabled)
                ui_notify(sensor, (struct ui_psensor *)data);
 #endif
 }
@@ -291,16 +289,16 @@ associate_cb_alarm_raised(struct psensor **sensors, struct ui_psensor *ui)
                s->cb_alarm_raised = cb_alarm_raised;
                s->cb_alarm_raised_data = ui;
 
-               s->alarm_high_thresold
-                       = config_get_sensor_alarm_high_thresold(s->id);
-               s->alarm_low_thresold
-                       = config_get_sensor_alarm_low_thresold(s->id);
+               s->alarm_high_threshold
+                       = config_get_sensor_alarm_high_threshold(s->id);
+               s->alarm_low_threshold
+                       = config_get_sensor_alarm_low_threshold(s->id);
 
-               if (is_temp_type(s->type)) {
+               if (is_temp_type(s->type) || is_fan_type(s->type)) {
                        s->alarm_enabled
                            = config_get_sensor_alarm_enabled(s->id);
                } else {
-                       s->alarm_high_thresold = 0;
+                       s->alarm_high_threshold = 0;
                        s->alarm_enabled = 0;
                }
 
@@ -324,6 +322,8 @@ static void associate_preferences(struct psensor **sensors)
                        s->name = n;
                }
 
+               s->appindicator_enabled = config_is_appindicator_enabled(s->id);
+
                sensor_cur++;
        }
 }
@@ -454,8 +454,8 @@ static struct psensor **create_sensors_list(const char *url,
                rsensor_init();
                sensors = get_remote_sensors(url, 600);
 #else
-               log_err(_("Psensor has not been compiled"
-                         " with remote sensor support."));
+               log_err(_("Psensor has not been compiled with remote "
+                         "sensor support."));
                exit(EXIT_FAILURE);
 #endif
        } else {
@@ -602,16 +602,16 @@ int main(int argc, char **argv)
        ui_appindicator_init(&ui);
 #endif
 
-       /*
-        * show the window as soon as all gtk events have been processed
-        * in order to ensure that the status icon is attempted to be
-        * drawn before. If not, there is no way to detect that it is
-        * visible.
-       */
-       g_idle_add((GSourceFunc)initial_window_show, &ui);
-
        gdk_notify_startup_complete();
 
+       /*
+        * hack, did not find a cleaner solution.
+        * wait 2s to ensure that the status icon is attempted to be
+        * drawn before determining whether the main window must be
+        * show.
+        */
+       g_timeout_add(2000, (GSourceFunc)initial_window_show, &ui);
+
        /* main loop */
        gtk_main();